Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Помогите разобратся с catalog.section

00 голосов
2
Имеется код:
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<?
if (count($arResult['ITEMS']) < 1)
   return;
?>

<div class="catalog-item-list">
<?
foreach ($arResult['ITEMS'] as $key => $arElement):

   $this->AddEditAction($arElement['ID'], $arElement['EDIT_LINK'], CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_EDIT"));
   $this->AddDeleteAction($arElement['ID'], $arElement['DELETE_LINK'], CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CATALOG_ELEMENT_DELETE_CONFIRM')));

   $bHasPicture = is_array($arElement['PREVIEW_IMG']);

   $sticker = "";
   if (array_key_exists("PROPERTIES", $arElement) && is_array($arElement["PROPERTIES"]))
   {
      foreach (Array("SPECIALOFFER", "NEWPRODUCT", "SALELEADER") as $propertyCode)
         if (array_key_exists($propertyCode, $arElement["PROPERTIES"]) && intval($arElement["PROPERTIES"][$propertyCode]["PROPERTY_VALUE_ID"]) > 0)
            $sticker .= "&nbsp;<span class=\"sticker\">".$arElement["PROPERTIES"][$propertyCode]["NAME"]."</span>";
   }

?>
<pre><?php //print_r( $arElement) ?></pre>
   <div class="catalog-item<?if (!$bHasPicture):?> no-picture-mode<?endif;?>" id="<?=$this->GetEditAreaId($arElement['ID']);?>">
      <div class="catalog-item-info">

      <?if($bHasPicture):?>
         <div class="catalog-item-image">
            <a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><img src="<?=$arElement["PREVIEW_IMG"]["SRC"]?>" width="<?=$arElement["PREVIEW_IMG"]["WIDTH"]?>" height="<?=$arElement["PREVIEW_IMG"]["HEIGHT"]?>" alt="<?=$arElement["NAME"]?>" title="<?=$arElement["NAME"]?>" id="catalog_list_image_<?=$arElement['ID']?>" /></a>
         </div>
      <?endif;?>

         <div class="catalog-item-desc">
            <div class="catalog-item-title"><a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a><?=$sticker?></div>
            <div class="catalog-item-preview-text"><?=$arElement['PREVIEW_TEXT']?></div>
         <?if(is_array($arElement["OFFERS"]) && !empty($arElement["OFFERS"])):?>
            <div class="catalog-item-offers">
            <?$i=0;?>
            <?foreach($arElement["OFFERS"] as $arOffer):?>
               <?if($i != 0):?>
               <div class="catalog-detail-line"></div>
               <?endif;?>
               <?$i++;?>
               <div class="catalog-item-links">   
               <?if($arOffer["CAN_BUY"]):?>
                  <a href="<?echo $arOffer["ADD_URL"]?>" class="catalog-item-buy<?/*catalog-item-in-the-cart*/?>" rel="nofollow"  onclick="return addToCart(this, 'catalog_list_image_<?=$arElement['ID']?>', 'list', '<?=GetMessage("CATALOG_IN_CART")?>');" id="catalog_add2cart_link_ofrs_<?=$arOffer['ID']?>"><?echo GetMessage("CATALOG_ADD")?></a>
               <?elseif(count($arResult["PRICES"]) > 0):?>
                  <span class="catalog-item-not-available"><?=GetMessage("CATALOG_NOT_AVAILABLE")?></span>
               <?endif?>
               <?if($arParams["DISPLAY_COMPARE"]):?>
                  <a href="<?echo $arOffer["COMPARE_URL"]?>" class="catalog-item-compare" onclick="return addToCompare(this, '<?=GetMessage("CATALOG_IN_COMPARE")?>');" rel="nofollow" id="catalog_add2compare_link_ofrs_<?=$arOffer['ID']?>"><?echo GetMessage("CATALOG_COMPARE")?></a>
               <?endif?>
               </div>
               <div class="table-offers">
               <?if(!empty($arParams["OFFERS_FIELD_CODE"]) || !empty($arOffer["DISPLAY_PROPERTIES"])):?>
               <table cellspacing="0">
               <?foreach($arParams["OFFERS_FIELD_CODE"] as $field_code):?>
                &nbsp
спросил 16 Авг, 13 от Maximus1 (380 баллов)

2 Ответы

00 голосов
Цитата
LordDon пишет:
1. Какой код отвечает за кнопку "в корзину"?

конкретно в этом коде вот это
Код
<?if ($arElement['CAN_BUY']):?> 
         <a href="<?echo $arElement["ADD_URL"]?>" class="catalog-item-buy<?/*catalog-item-in-the-cart*/?>" rel="nofollow"  onclick="return addToCart(this, 'catalog_list_image_<?=$arElement['ID']?>', 'list', '<?=GetMessage("CATALOG_IN_CART")?>');" id="catalog_add2cart_link_<?=$arElement['ID']?>"><?echo GetMessage("CATALOG_ADD")?></a> 
      <?elseif (count($arResult["PRICES"]) > 0):?> 
         <span class="catalog-item-not-available"><?=GetMessage('CATALOG_NOT_AVAILABLE')?></span> 
      <?endif;?> 

Цитата

2. И как этот код можно использовать в другом компоненте, чтобы отображалась точно такая же кнопка?


не советую использовать конкретно это,лучше почитать, как бывает в общем случае.
ответил 16 Авг, 13 от Texnik (1,860 баллов)
00 голосов
Я почитал как бывает в общем случае, но я все равно не понимаю как например в store.catalog.random добавить кнопку после каждого элемента.
Вот код store.catalog.random:
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<?if(count($arResult["ITEMS"]) > 0): ?>
<div class="catalog-title catalog-red"><div class="catalog-title_text catalog-red"><?=GetMessage("CR_TITLE")?></div></div>
<div class="catalog-hr"> </div>
<div class="catalog-item-cards">
<table class="catalog-item-card" cellspacing="0">
   <tr class="top">
<?   foreach($arResult["ITEMS"] as $key => $arElement):
      if(is_array($arElement)):
         $bPicture = is_array($arElement["PICTURE_PREVIEW"]);
?>
         <td>
            <div class="catalog-item-card<?=$bPicture ? '' : ' no-picture-mode'?>">
<?
         if ($bPicture):
?>
               <div class="item-image">
                  <a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><img border="0" src="<?=$arElement["PICTURE_PREVIEW"]["SRC"]?>" width="<?=$arElement["PICTURE_PREVIEW"]["WIDTH"]?>" height="<?=$arElement["PICTURE_PREVIEW"]["HEIGHT"]?>" alt="<?=$arElement["NAME"]?>" title="<?=$arElement["NAME"]?>" id="catalog_list_image_<?=$arElement['ID']?>" /></a>
               </div>
<?
         
endif;
?>
               <div class="item-info">
                  <p class="item-title">
                     <a href="<?=$arElement["DETAIL_PAGE_URL"]?>"><?=$arElement["NAME"]?></a>
                  </p>
                  <p class="item-desc">

<?
                  if(count($arElement["DISPLAY_PROPERTIES"])):
                     foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty):
                        if($pid != 'MINIMUM_PRICE' && $pid != 'MAXIMUM_PRICE'):
?>                     
<small><?=$arProperty["NAME"]?>: <?
                     if(is_array($arProperty["DISPLAY_VALUE"]))
                        echo implode(" / ", $arProperty["DISPLAY_VALUE"]);
                     else
                        echo $arProperty["DISPLAY_VALUE"];
?>                     </small><br />
<?
   endif;
                  
endforeach;
            
endif;
?>
            
<?=strip_tags($arElement["PREVIEW_TEXT"]);?>

                     <span class="item-desc-overlay"></span>
                  </p>
                  <?if(count($arElement["PRICE"])>0):?>
                  <p class="item-price">

                  <?if ($arElement['bDiscount']):?>
                     <span><?=$arElement['PRICE']['DISCOUNT_PRICE_F']?></span> <s><?=$arElement['PRICE']['PRICE_F']?></s>
                  <?else:?>
                     <span><?=$arElement['PRICE']['PRICE_F']?></span>
                  <?endif;?>
                  </p>

<?if ($arElement['CAN_BUY']):?>
         <a href="<?echo $arElement["ADD_URL"]?>" class="catalog-item-buy<?/*catalog-item-in-the-cart*/?>" rel="nofollow"  onclick="return addToCart(this, 'catalog_list_image_<?=$arElement['ID']?>', 'list', '<?=GetMessage("CATALOG_IN_CART")?>');" id="catalog_add2cart_link_<?=$arElement['ID']?>">В корзину</a>
      <?elseif (count($arResult["PRICES"]) > 0):?>
         <span class="catalog-item-not-available&quo
ответил 23 Окт, 13 от Maximus1 (380 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 14 Янв, 14 от Sherena (100 баллов)
0 голосов
3 ответов
0 голосов
5 ответов
спросил 29 Окт, 13 от Aypuka (340 баллов)
0 голосов
4 ответов
спросил 21 Янв, 14 от eff (160 баллов)