среда, 10 декабря 2014 г.

Битрикс КП. Получаем список задач с комментариями.

Обожаю КП и задачи по нему, всегда находится место, где надо проводить целое исследование по коду или докам, чтобы понять как написать две строки нужного кода.

Задача на сегодня: быстренько написать инструмент, позволяющий получать отчёты, пригодные для чтения табличными редакторами. Инструмент должен содержать фильтр по социальным группам (к ним можно привязывать таски), период выбора задач (по дате создания задачи) и фильтр по статусу задачи.

воскресенье, 16 ноября 2014 г.

Битрикс. Компонент iblock.vote и кеширование.

Задача: написать модуль для внутреннего использования, который показывал бы список отзывов и позволял добавлять отзывы. Нет, это не очередной велосипед, просто там были свои специфические требования. Но сейчас мы говорим не про это.
При добавлении отзыва надо было давать возможность выставить оценку элементу каталога, для которого писался отзыв. Компонент iblock.vote вполне для этого подходил, только был чуток переписан, чтобы оценка добавлялась не при клике, а уже при добавлении отзыва.

Сами понимаете, что страница элемента каталога (использовался комплексный компонент) кешируется. Компонент добавления отзыва тоже. Итого, включённый в шаблон компонента добавления отзыва компонент iblock.vote - не работал нормально.

В процессе археологических раскопок было выяснено следующее:
1. при очищенном кеше компонент работает
2. при кешированной странице не подключаются стили и скрипты из шаблона компонента.

Из второго пункта было понятно, что нам надо было попробовать включать стили и скрипты отдельно. Включаем мы их в шаблоне catalog.element, причём в component_epilog.php

<?$APPLICATION->SetAdditionalCSS('path_to_template/style.css');?>
<?$APPLICATION->AddHeadScript('path_to_template/script.js');?>


Всё работает, можно танцевать.

вторник, 28 октября 2014 г.

Битрикс. Сбор карты секций для брендов.


В одном из дизайнов пришла страничка, где для бренда собираются показываются секции, подсекции и показываются счётчики.
В проекте используются инфоблоки версии два, для каждого города создан свой Тип ИБ, внутри которого уже и существуют каталоги, и внутри них соответственно секции и подсекции ИБ. Элементы могут находиться где угодно как на верхнем уровне, так и в секциях/подсекциях  (но не одновременно).
Помимо карты секций, у бренда должна быть возможность добавления описания, картинки, ссылки на официальный сайт и некоторых специфичных выключателей.

вторник, 26 августа 2014 г.

Битрикс КП. Запуск бизнес процессов для элементов универсального списка, добавленных через экспорт.

Проблема: при добавлении элементов универсального списка через систему экспорта csv не запускаются приписанные этому списку бизнес-процессы.
Техподы ответили, что проблему можно решить добавлением кода, который сразу после создания элементов определенных ИБ (массив должен быть редактируемым), будет проверять, если ли у текущего элемента запущенный экземпляр бизнес-процесса, если нет, то запускать бизнес-процесс. Вы можете использовать метод CBPDocument::StartWorkflow() в событии OnAfterIBlockElementAdd

Короче, проблему знаем, решите уж как-нибудь сами.

UPD: приведённое решение (и вы сами должны это понимать) не годится для закачек скажем более 50 элементов. продолжение следует...

пятница, 22 августа 2014 г.

Битрикс КП. Копирование универсальных списков и бизнес-процессов.

Прикатило мне очередное интересное задание от насяльникама. Необходимо написать инструмент, позволяющий копировать универсальные списки для социальных групп (без контента, только схему). А также и бизнес-процессы принадлежащие этому списку.
Хто здесь? 0_0
Прикинуться куском обоев не получилось, поэтому пришлось делать. И писать статью, иначе я всё забуду.

Сегодня на обсуждении:
  1. копирование универсальных списков для социальных групп
  2. копирование бизнес-процессов этих списков
Обсуждаемый инструмент можно найти в конце статьи. Правда, вы сами должны понимать, что за сотворённое вами с его помощью я ответственности не несу =)

Далее:
  • БП - бизнес-процесс
  • УС - универсальный список (в рамках статьи подразумеваются УС для социальных групп)
  • ИБ - инфоблок
  • КП - корпоративный портал
  • СГ - социальная группа

четверг, 24 апреля 2014 г.

Яндекс.Карты API. Расстояние от МКАД до указанной точки: увеличиваем точность.


Если вы потыкаете пример из прошлого поста про вычисление расстояния от МКАД, то увидите, что ближайшая точка - не всегда точка нужного съезда, и маршрут рисуется от неё. И как бы правильно мы не расставляли точки съездов, всегда найдётся неправильная точка, которая ближайшая к кликнутой точке, но не является нужным съездом.
Для приблизительных расчётов это нормально, но для пользователей это будет выглядеть некрасиво. А мы хотим вот так
маршрут от мкада (без развязок)


среда, 16 апреля 2014 г.

Яндекс.Карты API. Ищем расстояние от МКАД до указанной точки.

Думаю, что жители подмосковья часто сталкивались с ситуацией, когда за курьерскую доставку отдельно просят денюшку за каждый километр от мкада. Недавно встала задача хоть немного автоматизировать подсчёт расстояния "от мкада" до указанной точки. Причём не по прямой, а по маршруту следования машины. По дорогам то бишь.


Благодаря широким возможностям Yandex.maps API это сделать достаточно просто.

Итак, задача. Показать карту, дать возможность пользователю кликнуть по какому-либо месту на карте, посчитать расстояние от мкада до этой точки.
Главная проблема тут - найти ближайшую точку мкада. Автоматизировать это можно достаточно приблизительно, но нам и не нужна точность до метра.

Сегодня: рисуем Яндекс.карту; учимся рисовать на ней полигоны и метки; ищем ближайшие точки из списка объектов; составляем маршрут и считаем дистанцию между двумя точками.

Ссылки на примеры и доки в конце статьи.
UPD. Продолжение остросюжетного сериала по вычислению расстояний читайте в следующей статье:  Яндекс.Карты API. Расстояние от МКАД до указанной точки: улучшаем точность.

пятница, 10 января 2014 г.

Битрикс. Бизнес-процессы. PHP-код.

Недавно ко мне обратился насяльника с просьбой помочь в написании бизнес-процесса (далее в статье БП) для автоматической отсылки писем клиентам, у которых подходит срок оплаты хостинга.
Для полноценной работы с дизайнером шаблонов БП потребуется администраторский доступ к корп-порталу.
Все картинки в статье кликабельны, а ссылки открываются в новом окне.