Выбрать файлы по списку

Периодически возникает необходимость выбрать несколько сотен   файлов по какому-то списку из множества. 
В частности, недавно надо было выбрать 8000 фото товаров из 11 тысяч.  Всю группу файлов я заранее скопировала в одну папку с помощью фильтров. Но папка содержала и другие фото, их надо было отсеять.
Задача была решена с помощью доброго старого bat файла.

(далее…)

Добавляем информацию нелинейно

Иногда часть информации нужно разместить вне компонента где она вычисляется, например — в боковой колонке. В Битриксе передача данных между компонентами затруднена, но есть несколько способов.

  • ShowViewContent Один из них — метод CMain::ShowViewContent.

    В темплейте исходного компоненте перед созданием контента пишем:

    $this->SetViewTarget('sidebar');

    Далее — формирум данные для вывода.
    Завершаем блок командой

    $this-> EndViewTarget();

    В результате наши данные сформированы, но пока нигде не отображаются.
    Для вывода созданного фрагмента в header или footer размещаем вызов контента:

    $APPLICATION->ShowViewContent("sidebar");
  • AddViewContent <?$this->SetViewTarget("sidebar");?> <div class="element-filter"> <!--вывод фильтра --> </div> <?$this->EndViewTarget();?> CMain::AddViewContent( view, content, pos = 500) позволяет вывести контент в пароизвольной области. view — идентификатор буферизируемой области. Идентификатору может соответствовать несколько буферов. Последовательность вывода контента определяется сортировкой pos. Пример: if(!isset($_REQUEST["ajax"])) $this->SetViewTarget("sidebar"); $APPLICATION->IncludeComponent( "bitrix:catalog.smart.filter", "", array(...), false ); if(!isset($_REQUEST["ajax"])) $this->EndViewTarget("sidebar"); в темплейте вызываем через $APPLICATION->ShowViewContent('sidebar');
  • Использование this <h1><?=$APPLICATION->ShowTitle();?><?$APPLICATION->ShowViewContent('mdf_title');?></h1> <?$this->SetViewTarget('mdf_title');?> same text here ... <?$this->EndViewTarget();?>
  • ob_start ob_start(); echo 'SomeText'; $out1 = ob_get_contents(); ob_end_clean(); $APPLICATION->AddViewContent('block_id',$out1);

Размерность характеристик в Вебасисте

В ВА возможны разные типы характеристик — число, строка и т.п..

Но есть не просто «число», а «длина» или «мощность». Эти типы данных при выводе на сайт будут снабжены размерностями после числа мм или см, и их можно, допустим, вводить в метрах, а выводить — в сантиметрах.

(далее…)

Использование API Яндекс-карт

Хочу расписать тут пример вывода списка дилеров через API с динамическим формированием меток.
Вывод будет двух типов — с кластеризацией и без нее.
Скрипт писался для вебасиста, там используются шаблоны Smarty, синтаксис поэтому немного специфический, со всякими literal.

1. Для работы с API яндекс-карт нужно прежде всего получить ключ в кабинете разработчика: https://developer.tech.yandex.ru/keys/

2. https://tech.yandex.ru/maps/jsapi/ — страница сервиса, с примерами и документацией.

3. Пример с кластеризацией точек:

(далее…)