Телеграм: @camouf_ru Почта: mihail@bazarow.ru

Дополнительные картинки в новостях Битрикс, почти фотогалерея.

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
RSS
[ Закрыто ] Дополнительные картинки в новостях Битрикс, почти фотогалерея.
 
Дополнительные картинки в новостях Битрикс, почти фотогалерея.

Частенько стоит задача, по мимо стандартных "Картинка для анонса" и "Детальная картинка", добавить возможность загрузки изображений в новости Битрикс. Чтобы вывести дополнительные картинки в bitrix:news изначально такой возможности не заложено. Исправим это, а заодно и превратим компоненит "Новости и статьи" в что-то вроде фотогалереи с эффектом fancybox и прокруткой картинок колесиком мышки.
 
Не забудте указать свойство MORE_PHOTO для вывода в детальной новости. Это делается в настройках компонента через публичную часть сайта:
 
Зашел по ссылке с примером, фотографии открываются в новом окне  :(
 
Цитата
Timur пишет:
Зашел по ссылке с примером, фотографии открываются в новом окне
Да, там владелец сайта что-то поломал, сайт не поддерживаю потому не знаю что. Можете вот тут посмотреть http://moto-hit.ru/252/8148/
 
Как с помощью функции CFILE::RESIZEIMAGEGET сделать вывод картинки превью и картинки полной новости ?
 
Цитата
Дмитрий Рунов пишет:
Как с помощью функции CFILE::RESIZEIMAGEGET сделать вывод картинки превью и картинки полной новости ?
Плохо представляю при каких условиях это может понадобиться, но попробуйте вместо t["PROPERTIES"]["MORE_PHOTO"]["VALUE"] указать ['DETAIL_PICTURE']['SRC'] - допускаю что не сработает, если однажды с чем-то таким столкнусь, допишу в записку. Но копать примерно в эту сторону
 
Добрый  день,  не могу найти файл  result_modifier.php
 
Цитата
Александр пишет:
Добрый день, не могу найти файл result_modifier.php
Если его нет-то нужно создать вручную
 
Почему мой вопрос удалили?
 
Цитата
Александр пишет:
Почему мой вопрос удалили?
Удалил по причине плохой постановки вопроса. Данный метод рабочий, реализован и проверен мной на нескольких проектах. Видимо Вы где-то ошибаетесь в реализации. Подсказать я Вам не смогу, так как Вы не дали ни полного описания своей реализации ни более менее подробного описания задачи.
 
Цитата
Михаил Базаров пишет:
Цитата
Александр пишет:
Почему мой вопрос удалили?
Удалил по причине плохой постановки вопроса. Данный метод рабочий, реализован и проверен мной на нескольких проектах. Видимо Вы где-то ошибаетесь в реализации. Подсказать я Вам не смогу, так как Вы не дали ни полного описания своей реализации ни более менее подробного описания задачи.
Согласен, возможно я не правильно спросил, попробую еще,  у меня не получается вывести превьюшку на стр с детальной новостью, выводятся там только ссылки "загрузить", если пройти по нет то открывается на весь экран большое фото, в какую сторону копать?
 
Цитата
Гость сайта пишет:
Дополнительные картинки в новостях Битрикс, почти фотогалерея.
Весь вот этот код:
Код
<? 
// additional photos 
$LINE_ELEMENT_COUNT = 2; // number of elements in a row 
if(count($arResult["MORE_PHOTO"])>0):?> 
<a name="more_photo"></a> 
<?foreach($arResult["MORE_PHOTO"] as $PHOTO):?> 
   <img border="0" src="<?=$PHOTO["SRC"]?>"  />
<?endforeach?> 
<?endif?>  
 
как раз и отвечает за-то чтобы вместо загрузить выводилась картинка превью. Точнее они у вас вместе должны появиться. В итоге удаляете из шаблона news.detail кусочек который выводит "Загрузить" и оставляете только этот.

Рядом с template.php подробной новости создаете файл result_modifier.php с содержимым

Код
<? 
   $arResult["MORE_PHOTO"] = array(); 
   if(isset($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"]) && is_array($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"])) 
      { 
      foreach($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] as $FILE) 
         { 
            $FILE = CFile::GetFileArray($FILE); 
            if(is_array($FILE)) 
            $arResult["MORE_PHOTO"][]=$FILE; 
         } 
      } 
?>  
 
Само собой если он уже  есть- то просто добавляете это в него.

Вот и все, а фансибокс или что-то другое это уже по вкусу.
 
Цитата
Михаил Базаров пишет:
Цитата
Гость сайта пишет:
Дополнительные картинки в новостях Битрикс, почти фотогалерея.
Весь вот этот код:
Код
 <? 
// additional photos 
$LINE_ELEMENT_COUNT = 2; // number of elements in a row 
if(count($arResult["MORE_PHOTO"])>0):?> 
<a name="more_photo"></a> 
<?foreach($arResult["MORE_PHOTO"] as $PHOTO):?> 
   <img border="0" src="<?=$PHOTO["SRC"]?>"  />
<?endforeach?> 
<?endif?>  
  
как раз и отвечает за-то чтобы вместо загрузить выводилась картинка превью. Точнее они у вас вместе должны появиться. В итоге удаляете из шаблона news.detail кусочек который выводит "Загрузить" и оставляете только этот.

Рядом с template.php подробной новости создаете файл result_modifier.php с содержимым
Код
 <? 
   $arResult["MORE_PHOTO"] = array(); 
   if(isset($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"]) && is_array($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"])) 
      { 
      foreach($arResult["PROPERTIES"]["MORE_PHOTO"]["VALUE"] as $FILE) 
         { 
            $FILE = CFile::GetFileArray($FILE); 
            if(is_array($FILE)) 
            $arResult["MORE_PHOTO"][]=$FILE; 
         } 
      } 
?>  
  
Само собой если он уже есть- то просто добавляете это в него.

Вот и все, а фансибокс или что-то другое это уже по вкусу.
Большое спасибо за ответ, не внимательно читал инструкцию, и огромное спасибо за ваши видео уроки)
 
Добавляем в news.detail:"код скрипта fancybox"Я правильно понимаю, этот код нужно добавить в файл  template.php?
 
Код
Добавляем в news.detail:"код скрипта fancybox"Я правильно понимаю, этот код нужно добавить в файл template.php?
 
Да, прямо в верстку детальной новости. Не обязательно fancybox - у меня для примера, Более красиво получается hightslide- ом
 
Здравствуйте, спасибо за видеоуроки
У меня вот такой вопрос возник: мне необходимо вывести в списке новостей доп.свойство типа "файл", а точнее картинку (нужно для слайдера новостей), предложенный способ в Вашей статье для детальной новости не работает ( но в шаблоне детальной новости у меня работает). Не подскажете как можно это реализовать?
 
Цитата
Павел пишет:
Здравствуйте, спасибо за видеоуроки
У меня вот такой вопрос возник: мне необходимо вывести в списке новостей доп.свойство типа "файл", а точнее картинку (нужно для слайдера новостей), предложенный способ в Вашей статье для детальной новости не работает ( но в шаблоне детальной новости у меня работает). Не подскажете как можно это реализовать?
Данная инструкция для того и нжна, все работает в ней- только что на одном сайте это проделал
 
то есть данная инструкция подойдёт и для шаблона списка новостей?
 
Да, только вместо $arResult используйте $arItem
 
в Ваших кусках кода поменял $arResult на $arItem, но блин так  чуда и не произошло, свойство назвал также MORE_PHOTO, а картинки так и не появились
 
$arResult на $arItem нужно поменять и в файле шаблона, и в файле result_modifier.php ?
 
Везде
 
Простите, но что-то не выходит
Можно ещё поспрашиваю: вот если по шагам, то взял к примеру шаблон списка новостей, в папке шаблона создал файл result_modifier.php с кодом:
Код
<? 
$arItem["MORE_PHOTO"] = array(); 
if(isset($arItem["PROPERTIES"]["MORE_PHOTO"]["VALUE"]) && is_array($arItem["PROPERTIES"]["MORE_PHOTO"]["VALUE"])) 
{ 
foreach($arItem["PROPERTIES"]["MORE_PHOTO"]["VALUE"] as $FILE) 
{ 
$FILE = CFile::GetFileArray($FILE); 
if(is_array($FILE)) 
$arItem["MORE_PHOTO"][]=$FILE; 
} 
} 
?>
 
в файл шаблона добавил код из статьи, приведу весь код шаблона:
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<div class="news-list">
<?if($arParams["DISPLAY_TOP_PAGER"]):?>
   <?=$arResult["NAV_STRING"]?><br />
<?endif;?>
<?foreach($arResult["ITEMS"] as $arItem):?>
   <?
   $this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
   $this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
   ?>
    
   <div class="news-item" id="<?=$this->GetEditAreaId($arItem['ID']);?>">
      
        <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
         <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
            <a href="<?=$arItem["DETAIL_PAGE_URL"]?>"><img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>"/></a>
         <?else:?>
            <img class="preview_picture" border="0" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" width="<?=$arItem["PREVIEW_PICTURE"]["WIDTH"]?>" height="<?=$arItem["PREVIEW_PICTURE"]["HEIGHT"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" style="float:left" />
         <?endif;?>
      <?endif?>
        
      <?if($arParams["DISPLAY_DATE"]!="N" && $arItem["DISPLAY_ACTIVE_FROM"]):?>
         <span class="news-date-time"><?echo $arItem["DISPLAY_ACTIVE_FROM"]?></span>
      <?endif?>
        
      <?if($arParams["DISPLAY_NAME"]!="N" && $arItem["NAME"]):?>
         <?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
            <a href="<?echo $arItem["DETAIL_PAGE_URL"]?>"><b><?echo $arItem["NAME"]?></b></a><br />
         <?else:?>
            <b><?echo $arItem["NAME"]?></b><br />
         <?endif;?>
      <?endif;?>
        
      <?if($arParams["DISPLAY_PREVIEW_TEXT"]!="N" && $arItem["PREVIEW_TEXT"]):?>
         <p><?echo $arItem["PREVIEW_TEXT"];?></p>
      <?endif;?>
        
      <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
         <div style="clear:both"></div>
      <?endif?>
        
<? 
// additional photos 
$LINE_ELEMENT_COUNT = 2; // number of elements in a row 
if(count($arItem["MORE_PHOTO"])>0):?> 
<?foreach($arItem["MORE_PHOTO"] as $PHOTO):?> 
<? $file = CFile::ResizeImageGet($PHOTO, array('width'=>150, 'height'=>'112'), BX_RESIZE_IMAGE_EXACT, true); ?> 
<div class="more_photo"> 
<a href="<?=$PHOTO["SRC"]?>" name="more_photo"> 
<img border="0" src="<?=$file["src"]?>" width="<?=$file["width"]?>" height="<?=$file["height"]?>" 
alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>" /> 
</a> 
</div> 
<?endforeach?> 
<?endif?>

      <?foreach($arItem["FIELDS"] as $code=>$value):?>
         <small>
         <?=GetMessage("IBLOCK_FIELD_".$code)?>:&nbsp;<?=$value;?>
         </small><br />
      <?endforeach;?>
        
      <?foreach($arItem["DISPLAY_PROPERTIES"] as $pid=>$arProperty):?>
         <small>
         <?=$arProperty["NAME"]?>:&nbsp;
         <?if(is_array($arProperty["DISPLAY_VALUE"])):?>
            <?=implode("&nbsp;/&nbsp;", $arProperty["DISPLAY_VALUE"]);?>
         <?else:?>
            <?=$arProperty["DISPLAY_VALUE"];?>
         <?endif?>
            
         </small><br />
      <?endforeach;?>
        
   </div>
<?endforeach;?>

<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
   <br /><?=$arResult["NAV_STRING"]?>
<?endif;?>
</div>
где может быть ошибка может подскажете?
 
Что сделать чтобы при загрузке на сервер картинок дополнительных они сжимались или обрезались (при загрузке).
Просто я загрузил картинки (хорошего качества), штук так 7-8 и новость не открывается её не возможно отредактировать.
Выскакивает ошибка Fatal error: Out of memory (allocated 109051904) (tried to allocate 13824 bytes)

Я думаю, что не хватает ресурсов хостинга. В php.ini мемори лимит стоял 64 метра, сейчас я поставил 128 - но не помогло.

Картинки большие.  
 
Цитата
Дмитрий пишет:
Что сделать чтобы при загрузке на сервер картинок дополнительных они сжимались или обрезались (при загрузке).
...
Воспользуйтесь API функцией CFile::ResizeImage
Более подробно в документации http://dev.1c-bitrix.ru/api_help/main/reference/cfile/resizeimageget.php
 
Отлично работает. Стоило бы чуть внести правки в материал, например там где говорится о внесении изменений в result_modifer.php уточнить, что его может и не быть))

А так, ОЧЕНЬ СПАСИБО ВАМ!!!)))
 
Цитата
Михаил Базаров пишет:
Цитата
Timur пишет:
Зашел по ссылке с примером, фотографии открываются в новом окне
Да, там владелец сайта что-то поломал, сайт не поддерживаю потому не знаю что. Можете вот тут посмотреть http://moto-hit.ru/252/8148/
К сожалению здесь тоже уже не работает, так же как и на сайте врача. Видимо тут какая-нибудь ошибка. Не могли же два заказчика поломать на двух сайтах именно фенси бокс?
 
Цитата
Денис пишет:
Цитата
Михаил Базаров пишет:
Да, там владелец сайта что-то поломал, сайт не поддерживаю потому не знаю что. Можете вот тут посмотреть http://moto-hit.ru/252/8148/
К сожалению здесь тоже уже не работает, так же как и на сайте врача. Видимо тут какая-нибудь ошибка. Не могли же два заказчика поломать на двух сайтах именно фенси бокс?
Что удивительно, как раз таки могут) Каждый заказчик пытается что-то поправить на сайте и делает только хууже. Этот сайт я поддерживаю- можете посмотреть, все отремонтировано ;)
 
Комментарий удален, ввиду... просто не понятно что имелось ввиду
 
Здравствуйте, вывожу дополнительные изображения в подробном описании новости, всё показывается, но титлы (альт)) одинаковые у всех, как сделать чтобы показывал нужное описание (на каждое изображение своё описание добавлять при добавлении картинки) таким образом:

название картинки 1
[изображение]


название картинки 2
[изображение]


Версия 1С-Битрикс: Управление сайтом 11.5.4.


Спасибо.

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Картинка торгового предложения вместо иконки цвета, в выборе SKU Просмотров: 252 Задача: вместо не информативных иконок цветов нужно вывести детальную картинку торгового п... Массово: применить наценку ко всем товарам каталога с пересчетом от б... Просмотров: 5542 Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все това... Если товар в корзине, поменять кнопку на "В корзине" в новом шаблоне ... Просмотров: 1020 Ранее я уже делал заметку на эту тему. Тогда, мы меняли значение input-а при добавлении то... Вывести имя пользователя добавившего элемент инфоблока в Битрикс Просмотров: 16011 Иногда, необходимо вывести имя пользователя добавившего элемент инфоблока. Например, автор... Вывести множественное свойство типа файл с названием и весом файла в ... Просмотров: 20138 В этой заметке расскажу как красиво вывести множественное свойство типа файл в инфоблоке 1... Вывод элементов с помощью API битрикс Просмотров: 22370 Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Нап... Базовая защита "Битрикс виртуальная машина" от DDoS атак. Просмотров: 5242 Данный способ защиты не панацея, и скорее всего не спасет от профессиональной DDoS атаки, ... Следующая/предыдущая новость/статья при просмотре подробной в Битрикс Просмотров: 17521 Дизайн создается только для наглядного и удобного предоставления содержимого сайта, пользо... Вывести производителей на сайте с отбором его товаров из каталога Просмотров: 18190 Достаточно частая задачка для каталога или интернет-магазина: вывести список производителе... Дополнительные опции/услуги, добавляемые в корзину, в карточке товаро... Просмотров: 278 Задача: в детальной карточке товара сделать возможность добавления услуги или опции, при д... Смена вида карточек товаров в catalog.section с иммитацией AJAX Просмотров: 782 Смену вида карточек товаров, в разделе каталога, можно реализовать с помощью сессии, запис... Отфильтровать товары бренда и вывести по разделам каталога Просмотров: 629 Задача: на странице бренда, который выводится компонентом новостей, нужно показать все тов... Вывести товары из того же раздела в карточке товара Просмотров: 17905 Немножко топорный, но все же вполне действенный способ по выводу внутри подробной карточки... Дополнительные картинки в новостях Битрикс, почти фотогалерея. Просмотров: 48000 Частенько стоит задача, по мимо стандартных "Картинка для анонса" и "Деталь... Сортировка элементов по индексу сортировки значений типа список Просмотров: 10497 Внутри любого компонента есть заранее заложенные поля для сортировки элементов. МОжно сорт... Сгенерировать скидочные купоны, при заказе и отправить на почту Просмотров: 744 Задача: после того как пользователь сделал заказ, нужно сгенерировать одноразовые купоны д... Фотогалерея на базе компонента новостей, с fancybox. Просмотров: 1512 Это заметка обновление к очень старой, уже имеющейся на сайте. Сделаем что-то типа фотогал... Информация о заказах и содержимое корзины текущего пользователя. Просмотров: 11731 В процессе разработки сайта могут понадобиться рецепты приведенные ниже. Использовать можн... Получение местоположений через API Битрикс c поиском по select. Просмотров: 21257 Если нужно получить список городов из модуля "Местоположения" можно воспользоваться API Би... Получить и вывести пользовательские свойства склада в 1С-Битрикс Просмотров: 1299 Задача: вывести пользовательские свойства в подробном описании склада. При этом, есть и мн...