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

Компонент store.catalog.random

00 голосов
7
В интернет-магазине имеется компонент 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>
<?
                  else:
                     $price_from = '';
                     if($arElement['DISPLAY_PROPERTIES']['MAXIMUM_PRICE']['VALUE
спросил 26 Июль, 13 от Maximus1 (380 баллов)

7 Ответы

00 голосов
Неужели никто не может в этом помочь?
Может я неправильно вопрос сформировал, тогда поправите меня пожалуйста.
ответил 26 Июль, 13 от Maximus1 (380 баллов)
00 голосов
выведи массив $arElement посмотри какие у него значения по идеи должна быть ADD_URL потом меняешь значение ссылки и вставляешь в цикле
Код
<?   foreach($arResult["ITEMS"] as $key => $arElement):
в том месте в котором понравится

если что-то непонятно спроси
ответил 22 Сен, 13 от Amentet (2,080 баллов)
00 голосов
Вставляю код кнопки:
Код
<?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>
<?
<a href="<?echo $arOffer["ADD_URL"]?>" class="catalog-item-buy<?/*catalog-item-in-the-cart*/?>" rel="nofollow"  onclick="return addToCart(this, 'catalog_detail_image', 'list', '<?=GetMessage("CATALOG_IN_BASKET")?>');" id="catalog_add2cart_link_ofrs_<?=$arOffer['ID']?>">кнопка</a><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

                  else:
       &nbs
ответил 21 Дек, 13 от Maximus1 (380 баллов)
00 голосов
ты вставил не так
перед выводом кнопки у тебя стоит
Код
<?
поставь после вывода кнопки
как раз на это он и ругался
ответил 05 Апр, 14 от Amentet (2,080 баллов)
00 голосов
Так хорошо, еще бы понять как этот код модифицировать:
Код
<a href="<?echo $arOffer["ADD_URL"]?>" class="catalog-item-buy<?/*catalog-item-in-the-cart*/?>" rel="nofollow"  onclick="return addToCart(this, 'catalog_detail_image', 'list', '<?=GetMessage("CATALOG_IN_BASKET")?>');" id="catalog_add2cart_link_ofrs_<?=$arOffer['ID']?>">В корзину</a><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>


Чтобы он корректно работал
ответил 29 Июль, 14 от Maximus1 (380 баллов)
00 голосов
в конце файла напиши
Код
echo "<pre>";print_r($arResult["ITEMS"]);echo "<pre>";

и напиши что он выведет
хотя сначала вместо
Код
$arOffer
везде в этой ссылке поставь
Код
$arElement

и если не получится напиши что выведет то что я вначале писал
ответил 02 Дек, 14 от Amentet (2,080 баллов)
00 голосов
Переменные исправил, не помогло.
echo "<pre>";print_r($arResult["ITEMS"]);echo "<pre>";
выводит:
Array
(
[0] => Array
(
[ID] => 146
[~ID] => 146
[IBLOCK_ID] => 8
[~IBLOCK_ID] => 8
[CODE] => glue_45ml_lime_attache
[~CODE] => glue_45ml_lime_attache
[IBLOCK_SECTION_ID] => 68
[~IBLOCK_SECTION_ID] => 68
[NAME] => Клей силикатный 45мл Attache
[~NAME] => Клей силикатный 45мл Attache
[PREVIEW_TEXT] => Предназначен для склеивания бумаги, картона, декоративных и поделочных работ
[~PREVIEW_TEXT] => Предназначен для склеивания бумаги, картона, декоративных и поделочных работ
[PREVIEW_TEXT_TYPE] => text
[~PREVIEW_TEXT_TYPE] => text
[DETAIL_TEXT] => Предназначен для склеивания бумаги, картона, декоративных и поделочных работ.

Удобный съемный колпачек предохраняет от пересыхания.

Универсальный дозатор равномерно осуществляет подачу клея.
[~DETAIL_TEXT] => Предназначен для склеивания бумаги, картона, декоративных и поделочных работ.
Удобный съемный колпачек предохраняет от пересыхания.
Универсальный дозатор равномерно осуществляет подачу клея.
[DETAIL_TEXT_TYPE] => text
[~DETAIL_TEXT_TYPE] => text
[PREVIEW_PICTURE] =>
[~PREVIEW_PICTURE] =>
[DETAIL_PICTURE] => 205
[~DETAIL_PICTURE] => 205
[DETAIL_PAGE_URL] => /catalog/products3/clay_liquid_stationery/glue_45ml_lime_attache/
[~DETAIL_PAGE_URL] => /catalog/products3/clay_liquid_stationery/glue_45ml_lime_attache/
[LANG_DIR] => /
[~LANG_DIR] => /
[EXTERNAL_ID] => 146
[~EXTERNAL_ID] => 146
[IBLOCK_TYPE_ID] => catalog
[~IBLOCK_TYPE_ID] => catalog
[IBLOCK_CODE] => products3
[~IBLOCK_CODE] => products3
[IBLOCK_EXTERNAL_ID] =>
[~IBLOCK_EXTERNAL_ID] =>
[LID] => s1
[~LID] => s1
[PICTURE] => Array
(
[ID] => 205
[TIMESTAMP_X] => 03.08.2011 15:00:40
[MODULE_ID] => iblock
[HEIGHT] => 100
[WIDTH] => 100
[FILE_SIZE] => 2790
[CONTENT_TYPE] => image/jpeg
[SUBDIR] => iblock/25b
[FILE_NAME] => 25b924c1ae1bc56e27ddcbcbf23b35f0.jpg
[ORIGINAL_NAME] => 145953_1.jpg
[DESCRIPTION] =>
[SRC] => /upload/iblock/25b/25b924c1ae1bc56e27ddcbcbf23b35f0.jpg
)

[PRICE] => Array
(
[PRICE] => Array
(
[ID] => 107
[CATALOG_GROUP_ID] => 1
[PRICE] => 8.79
[CURRENCY] => RUB
[ELEMENT_IBLOCK_ID] => 8
[CNT] => 2
[VAT_RATE] => 0
[VAT_INCLUDED] => Y
)

[DISCOUNT_PRICE] => 8.79
[DISCOUNT] => Array
(
)

[PRICE_F] => 9 руб
)

[DISPLAY_PROPERTIES] => Array
(
)

[bDiscount] =>
[DESCRIPTION] => Предназначен для склеивания бумаги, картона, декоративных и поделочных работ
[PICTURE_PREVIEW] => Array
(
[SRC] => /upload/resize_cache/iblock/25b/75_225_10240811ca8906714d1a9f41f2f5b358d/25b924c1ae1bc56e27ddcbcbf23b35f0.jpg
[WIDTH] => 75
[HEIGHT] => 75
)

)
)
ответил 26 Март, 15 от Maximus1 (380 баллов)

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

0 голосов
1 ответ
0 голосов
0 ответов
спросил 11 Апр, 14 от Jugoar (480 баллов)
0 голосов
4 ответов
0 голосов
2 ответов