• Как отобразить две цены в блоке?

    @PetrPo
    kelFiz, цену в элементе в тег s обернул? кеш сбросил?
    5e30338a48283751391027.jpeg
  • Как отобразить две цены в блоке?

    @PetrPo
    kelFiz, оооо... о таком можно долго рассуждать, в моем представлении задачу можно считать хорошо выполненной, если то что сделано можно расширить без особых усилий и ущерба уже сделанному))

    Вот завтра тебе понадобится еще добавить, к примеру, цену для не русских лиц из близлежащих стран СНГ и что ты будешь делать? Вот... теперь все что тебе нужно сделать это добавить свойство в инфоблок и код этого свойства в LIST_PROPERTY_PRICE и цена автоматически будет показана, без правки кода (конечно не плохо бы заголовок у цены выводить, но это уже мелочи)...

    Так вот к чему это я, как узнать не захочешь ли ты завтра что-то изменить, то есть от чего отталкиваться чтобы кодом в шаблоне изменить вид отображения этой цены, ну а если по существу есть несколько вариантов решения:
    - можно в поле, где ты цену элемента проставляешь, эту самую цену обернуть в какой-нибудь тег, например s 100 000 (перечеркнутый текст), тогда в шаблоне надо будет в строке
    $arProductPrice[$priceCode] = $item['PROPERTIES'][$priceCode]['VALUE'];

    в VALUE тильду добавить
    $arProductPrice[$priceCode] = $item['PROPERTIES'][$priceCode]['~VALUE'];

    - а можно другой тег с классом например и от этого класса css стили написать
    - можно там же рядом с этим полем у тебя есть описание, добавить туда строку что-то типа OLD_PRICE и от этого описания прописать в шаблоне условие и так же добавить тег с классом, а там уже css-ом хоть красным хоть зачеркнутым, эти варианты плохи тем что придется это с каждым элементом проделывать, но можно достичь гибкости
    - можно в шаблоне проверить если есть SALE_PRICE то проставить для PRICE класс и от него также css написать

    Можно наверное еще придумать, вообщем выбирай)) подскажу как сделать
  • Как отобразить две цены в блоке?

    @PetrPo
    kelFiz, ок, тогда чтобы заработало потом в файле где ты параметры на скрине показывал в своем вопросе
    замени
    "LIST_PROPERTY_PRICE " => "PRICE",
    на
    "LIST_PROPERTY_PRICE " => array("PRICE", "SALE_PRICE"),
  • Как отобразить две цены в блоке?

    @PetrPo
    Ой. косякнул, перезалей код
    <? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
    
    use \Bitrix\Main;
    
    /**
     * @global CMain $APPLICATION
     * @var array $arParams
     * @var array $arResult
     * @var CatalogProductsViewedComponent $component
     * @var CBitrixComponentTemplate $this
     * @var string $templateName
     * @var string $componentPath
     * @var string $templateFolder
     */
    
    $this->setFrameMode(true);
    
    if (isset($arResult['ITEM']))
    {
      $item = $arResult['ITEM'];
      $areaId = $arResult['AREA_ID'];
    
      $productTitle = isset($item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']) && $item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'] != ''
        ? $item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']
        : $item['NAME'];
    
      $imgTitle = isset($item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']) && $item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE'] != ''
        ? $item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']
        : $item['NAME'];
    
      $showSlider = is_array($item['MORE_PHOTO']) && count($item['MORE_PHOTO']) > 0;
    
      $itemHasDetailUrl = isset($item['DETAIL_PAGE_URL']) && $item['DETAIL_PAGE_URL'] != '';
      
      $arProductPrice = array();
      if(isset($arParams['PROPERTY_PRICE']) && $arParams['PROPERTY_PRICE']) {
    	  foreach((array) $arParams['PROPERTY_PRICE']  as $priceCode) {
    		  if(isset($item['PROPERTIES'][$priceCode]) && $item['PROPERTIES'][$priceCode]['VALUE']) {
    			  $arProductPrice[$priceCode] = $item['PROPERTIES'][$priceCode]['VALUE'];
    		  }
    	  }
      }
      //$productPrice = ( !empty($item['PROPERTIES'][$arParams['PROPERTY_PRICE']]['VALUE']) ? $item['PROPERTIES'][$arParams['PROPERTY_PRICE']]['VALUE'] : false );
      
      //echo_r($item);
      ?>
      <div class="product-item-wrap" id="<?=$areaId?>" data-entity="item">
        <div class="product-item">
          <a href="<?=$item['DETAIL_PAGE_URL']?>" class="full"></a>
          <? if ($showSlider) { ?>
          <div class="product-thumb" id="product-thumb-<?=$areaId?>">
          <? 
            foreach ($item['MORE_PHOTO'] as $key => $photo) { 
              if ($key > 4) continue;
          ?>
            <div><a href="<?=$item['DETAIL_PAGE_URL']?>"><img src="<?=$photo['SRC']?>" alt=""></a></div>
          <? 	} ?>
          </div>
          <? } ?>
          <div class="product-body">
            <div class="product-head text-primary">
              <h5 class="product-title"><a href="<?=$item['DETAIL_PAGE_URL']?>"><?=$productTitle?></a></h5>
            </div>
            <div class="product-option">
              <? if (!empty($item['DISPLAY_PROPERTIES'])) { ?>
              <ul class="list-inline">
                <? foreach ($item['DISPLAY_PROPERTIES'] as $code => $displayProperty) { ?>
                <li class="list-inline-item">
                  <span><?=$displayProperty['NAME']?></span>
                  <strong class="text-primary"><?=(is_array($displayProperty['DISPLAY_VALUE']) ? implode(' / ', $displayProperty['DISPLAY_VALUE']) : $displayProperty['DISPLAY_VALUE'])?></strong>
                </li>
                <? } ?>
              </ul>
              <? } ?>
            </div>
            <div class="product-price text-primary">
              <?/*if ($productPrice) { ?>
              <span><? echo number_format($productPrice, 0, '.', ' '); ?> р.</span>
              <? }*/ ?>
    		  <?if($arProductPrice):?>
    				<?foreach($arProductPrice as $productPrice):?>
    					<div><? echo number_format($productPrice, 0, '.', ' '); ?> р.</div>
    				<?endforeach;?>
    		  <?endif;?>
    		  
            </div>
            <? if ($itemHasDetailUrl): ?>
            <a href="<?=$item['DETAIL_PAGE_URL']?>" class="btn btn-outline-primary">Подробнее</a>
            <? endif; ?>
          </div>
        </div>
        <script>
          $(document).ready(function(){    
            $('#product-thumb-<?=$areaId?>').slick({
              slidesToShow: 1,
              slidesToScroll: 1,               
              dots: true,
              arrows:false,
              infinite: true,
              touchMove: true,
              draggable:true,
              lazyLoad: 'ondemand',
              fade:true
            });
          });
        </script>
      </div>
    <?
    }
  • Как отобразить две цены в блоке?

    @PetrPo
    Видишь $productPrice, вот это твоя цена, замени код в шаблоне, надеюсь ты на тестовом сайте делаешь))
    Сбрось кеш и посмотри, сейчас все должно остаться как и прежде, потом отпишись еще немного магии надо сделать будет
    <? if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
    
    use \Bitrix\Main;
    
    /**
     * @global CMain $APPLICATION
     * @var array $arParams
     * @var array $arResult
     * @var CatalogProductsViewedComponent $component
     * @var CBitrixComponentTemplate $this
     * @var string $templateName
     * @var string $componentPath
     * @var string $templateFolder
     */
    
    $this->setFrameMode(true);
    
    if (isset($arResult['ITEM']))
    {
      $item = $arResult['ITEM'];
      $areaId = $arResult['AREA_ID'];
    
      $productTitle = isset($item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']) && $item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE'] != ''
        ? $item['IPROPERTY_VALUES']['ELEMENT_PAGE_TITLE']
        : $item['NAME'];
    
      $imgTitle = isset($item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']) && $item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE'] != ''
        ? $item['IPROPERTY_VALUES']['ELEMENT_PREVIEW_PICTURE_FILE_TITLE']
        : $item['NAME'];
    
      $showSlider = is_array($item['MORE_PHOTO']) && count($item['MORE_PHOTO']) > 0;
    
      $itemHasDetailUrl = isset($item['DETAIL_PAGE_URL']) && $item['DETAIL_PAGE_URL'] != '';
      
      $arProductPrice = array();
      if(isset($arParams['PROPERTY_PRICE']) && $arParams['PROPERTY_PRICE']) {
    	  foreach((array) $arParams['PROPERTY_PRICE']  as $priceCode) {
    		  if(isset($item['PROPERTIES'][$priceCode]) && $item['PROPERTIES'][$priceCode]['VALUE']) {
    			  $arProductPrice[$priceCode] = $item['PROPERTIES'][$priceCode]['VALUE'];
    		  }
    	  }
      }
      //$productPrice = ( !empty($item['PROPERTIES'][$arParams['PROPERTY_PRICE']]['VALUE']) ? $item['PROPERTIES'][$arParams['PROPERTY_PRICE']]['VALUE'] : false );
      
      //echo_r($item);
      ?>
      <div class="product-item-wrap" id="<?=$areaId?>" data-entity="item">
        <div class="product-item">
          <a href="<?=$item['DETAIL_PAGE_URL']?>" class="full"></a>
          <? if ($showSlider) { ?>
          <div class="product-thumb" id="product-thumb-<?=$areaId?>">
          <? 
            foreach ($item['MORE_PHOTO'] as $key => $photo) { 
              if ($key > 4) continue;
          ?>
            <div><a href="<?=$item['DETAIL_PAGE_URL']?>"><img src="<?=$photo['SRC']?>" alt=""></a></div>
          <? 	} ?>
          </div>
          <? } ?>
          <div class="product-body">
            <div class="product-head text-primary">
              <h5 class="product-title"><a href="<?=$item['DETAIL_PAGE_URL']?>"><?=$productTitle?></a></h5>
            </div>
            <div class="product-option">
              <? if (!empty($item['DISPLAY_PROPERTIES'])) { ?>
              <ul class="list-inline">
                <? foreach ($item['DISPLAY_PROPERTIES'] as $code => $displayProperty) { ?>
                <li class="list-inline-item">
                  <span><?=$displayProperty['NAME']?></span>
                  <strong class="text-primary"><?=(is_array($displayProperty['DISPLAY_VALUE']) ? implode(' / ', $displayProperty['DISPLAY_VALUE']) : $displayProperty['DISPLAY_VALUE'])?></strong>
                </li>
                <? } ?>
              </ul>
              <? } ?>
            </div>
            <div class="product-price text-primary">
              <?/*if ($productPrice) { ?>
              <span><? echo number_format($productPrice, 0, '.', ' '); ?> р.</span>
              <? }*/ ?>
    		  <?if($arProductPrice):?>
    				<?foreach($arProductPrice as $productPrice):?>
    					<div><? echo number_format($productPrice, 0, '.', ' '); ?> р.</div>
    				<?endif;?>
    		  <?endif;?>
    		  
            </div>
            <? if ($itemHasDetailUrl): ?>
            <a href="<?=$item['DETAIL_PAGE_URL']?>" class="btn btn-outline-primary">Подробнее</a>
            <? endif; ?>
          </div>
        </div>
        <script>
          $(document).ready(function(){    
            $('#product-thumb-<?=$areaId?>').slick({
              slidesToShow: 1,
              slidesToScroll: 1,               
              dots: true,
              arrows:false,
              infinite: true,
              touchMove: true,
              draggable:true,
              lazyLoad: 'ondemand',
              fade:true
            });
          });
        </script>
      </div>
    <?
    }
  • Как отобразить две цены в блоке?

    @PetrPo
    Сдался что ли)) видишь там есть 'PARAMS' => $generalParams вот внутри catalog.item это дело попадет в массив $arParams['PARAMS'] там будет ключ 'PROPERTY_PRICE' ищи, смотри что с ним происходит
  • Как отобразить две цены в блоке?

    @PetrPo
    <?
                      $APPLICATION->IncludeComponent(
                        'bitrix:catalog.item',
                        'estate',
                        array(
                          'RESULT' => array(
                            'ITEM' => $item,
                            'AREA_ID' => $areaIds[$item['ID']],
                            'TYPE' => $rowData['TYPE'],
                            'BIG_LABEL' => 'N',
                            'BIG_DISCOUNT_PERCENT' => 'N',
                            'BIG_BUTTONS' => 'N',
                            'SCALABLE' => 'N'
                          ),
                          'PARAMS' => $generalParams
                            + array('SKU_PROPS' => $arResult['SKU_PROPS'][$item['IBLOCK_ID']])
                        ),
                        $component,
                        array('HIDE_ICONS' => 'Y')
                      );
                      ?>

    для каждого элемента подключается компонент btirix:catalog.item шаблон estate - на одну папку вверх поднимись, там должен быть catalog.item внутри шаблон estate, кидай его шаблон))
  • Как отобразить две цены в блоке?

    @PetrPo
    блин говорю же в тег code вставляй, вверху на панели есть "Вставить исходный код" в выпадающем списке PHP появитс тег code внутрь него вставляй свой код, по правилам нельзя делать как ты делаешь, мне что самому форматирование делать???
  • Как отобразить две цены в блоке?

    @PetrPo
    Кидай, вставь только под спойлер, темный кружок на панели
    spoiler
    чтобы открывалось
  • Как отобразить две цены в блоке?

    @PetrPo
    kelFiz, справа в редакторе значок видишь </> в выпадашке PHP выбирай потом код вставляй...
    дальше ищи, ты мне опять тоже самое показываешь, это же не весь template
  • Как отобразить две цены в блоке?

    @PetrPo
    Ну я тоже не экстрасенс, чтобы по скриншоту подсказывать)) Опять пальцем в небо
    $generalParams = array(
    'PROPERTY_PRICE' => $arParams['PROPERTY_PRICE']
    )

    Ищи где в шаблоне есть $generalParams['PROPERTY_PRICE']
    P.S. прикладывай код, а не скрин с кодом, больше переписывать не буду
  • Как вывести $arrVALUES на экран?

    @PetrPo
    ссылка, че-то там только примеры какие-то корявые. Вообщем в /php_interface/dbconn.php объяви константу
    define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
    , в своем событии AddMessage2Log($arrVALUES);
  • Как вернуть значение, выбранное в окне поиска элемента?

    @PetrPo
    Ингвар Фон Бьёрк, Ну как сделаешь, опиши поподробнее что и как сделал, может скрины приложи (если не секрет конечно), интересно что это за компонент ты такой пилишь
  • Как вернуть значение, выбранное в окне поиска элемента?

    @PetrPo
    Собственно вопрос: как передать выбранный элемент в поле типа text?

    Опиши нормально, что ты хочешь сделать. Что за поле text? если сделать свойство привязка к элементам и выбрать элемент, он и так вставляется в поле типа text.
    Если посмотришь через консоль на dbclick по элементу вызывается функция SelEl (функция описана прямо на странице) в нее передаются id и name записи. Внутри функции есть el.value = id, где el твое поле полученное через window.opener
  • Fullscreen on\off?

    @PetrPo
    SteepNET, ну менять иконку нет проблем, в jquery есть функции добавления/удаления класса addClass/removeClass
    от этого класса пишешь css (ну или fa-fa-шки свои меняешь, если иконки подходящие есть)
    А с fullscreen и переходом не знаю, все-таки F11 это браузерная опция, а ты javascript-ом оперируешь - то есть тут эмуляция как и вся другая эмуляция, оч. похоже, но не на 100%.
    Попробовал просто при загрузке страницы сделать fullscreen, в консоли
    Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.

    Вкратце только действие пользователя может инициализировать fullscreen. Хороший довод нашел почему так, прикинь у тебя бы вся реклама, которую ты видишь на сайтах, херачилась fullscreen
  • Fullscreen on\off?

    @PetrPo
    Менять <i class="fas fa-expand-arrows-alt fa-lg"></i> в зависимости от состояния, ты имеешь ввиду внешний вид?
    Ну и про то что у тебя fullscreen сваливается при переходе на другую страницу, ты хочешь типа как fullscreen браузера при нажатии F11?
  • Fullscreen on\off?

    @PetrPo
    SteepNET, библиотекой этой не пользовался, не могу судить о ее преимуществах и недостатках.
    По сути, примерно такого кода должно быть достаточно (с jQuery приведу пример, раз уж ты его используешь)
    $(document).ready(function() {
    	$('твой селектор').on('click', function() {
    		if(document.fullscreenElement) {
    			document.exitFullscreen();
    		}
    		else {
    			document.documentElement.requestFullscreen();
    		}		
    	});
    });
  • Где хранится компонент «bitrix:catalog.section.list» и его template «sections_list»?

    @PetrPo
    Этот шаблон хранится там же где и ссылка, как и все остальные

    Ответный вопрос;
    Это же какое неуважение надо иметь, чтобы пользоваться платной системой + платным решением с тех.поддержкой и задавать такие вопросы здесь, даже не попробовав воспользоваться документацией???
    Попробуй документацию почитать и научится пользоваться битриксом
  • Как добавить свой параметр в компонент news?

    @PetrPo
    Алекс, в ответе продублирую, отметь решением
  • Как добавить свой параметр в компонент news?

    @PetrPo
    1. Пересохрани компонент news из публички (тогда параметр проставится сам) или впиши вручную в параметры вызова компонента 'COLUMNS' => 'значение'

    В комментах там же есть вопрос
    Параметр появляется в настройках, но в шаблон не прилетает, что не так делаю?

    ответ
    его надо еще где простой компонент вызывается добавлять. Параметр сам по себе не гуляет между компонентами, в комплексный компонент он пришел, теперь надо его в простой передать
    'NEW' => $arParams['NEW']

    вместо NEW свой параметр ставишь

    Условие в шаблоне не понял что ты пытался сделать написан просто class, лучше через тернарный оператор
    <?=($arParams['COLUMNS'] == 'значение' ? 'class="свой класс"' : '');?>