Дмитрий Кораблинов: все записи

0

Битрикс + Twig = Твигрикс

Дмитрий Кораблинов
5 марта 2014 года

Не Битриксом единым…

Когда я начинал свою карьеру веб-разработчика, на многих моих проектах использовалась CMS 1С-Битрикс. Можно долго спорить о ее достоинствах и недостатках, но факт остается фактом: Битрикс продолжает удерживать лидирующие позиции среди коммерческих CMS в рунете.

Но время шло, уровень задач неуклонно возрастал, и однажды я познакомился с платформой, которая определила мои дальнейшие технологические предпочтения и, во многом, сформировала подход к веб-разработке. Речь идет о замечательном фреймворке Symfony2 и всей окружающей инфраструктуре. В частности, одним из наиболее привлекательных инструментов из мира Symfony я считаю Twig — очень красивый, удобный, лаконичный, а главное, неограниченно расширяемый шаблонизатор вывода.

И вот, некоторое время назад, коллеги попросили меня помочь с разработкой одного небольшого, но интересного Битрикс-проекта. Я воспринял это как возможность посмотреть на свой прошлый опыт с новой точки зрения, применить накопленные знания и навыки в несколько ином контексте.

Читать дальше »

Метки: , ,

Оставить комментарий
6

Битрикс-разработка: особенности использования эпилога компонента

Дмитрий Кораблинов
24 февраля 2011 года

Для чего компоненту эпилог?

При использовании компонента в Битриксе часто нужно, чтобы компонент не только выводил данные на страницу, но и выполнял некоторые дополнительные действия: изменение заголовка страницы, добавление элементов навигационной цепочки и т. п. Раньше (при работе с версией Битрикса, младшей чем 9.0) для реализации такого поведения необходимо было модифицировать основной файл компонента (component.php).

В версии 9.0 в шаблон компонента был добавлен файл component_epilog.php — эпилог компонента. Его особенность в том, что он, в отличие от файлов template.php и result_modifier.php, исполняется при каждом вызове компонента, вне зависимости от наличия кеша. Кроме того, в component_epilog.php доступны привычные массивы $arParams и $arResult. В теории это означает, что все дополнительные действия можно выполнить в эпилоге, что заметно упрощает жизнь разработчику.

Эпилог и кеширование

Но, как обычно, теория с практикой немного расходятся. Если с $arParams проблем не возникает (так как по сути это предопределенный массив, который просто «пробрасывается» по всем файлам компонента), то c $arResult есть некоторые нюансы.

Читать дальше »

Метки: , ,

Оставить комментарий
9

Реализация поиска по сайту на основе Google AJAX Search API и jQuery

Дмитрий Кораблинов
21 октября 2009 года

Поиск по сайту — функция, безусловно, очень важная, особенно для больших ресурсов, на которых найти нужную информацию бывает не так просто. Многие современные CMS содержат готовые компоненты для построения системы поиска. Но даже если такого компонента нет под рукой, не надо отчаиваться — крупные поисковые сервисы (в частности, Google) предоставляют API на базе JavaScript и AJAX, которые можно легко подключить к любому сайту.

Описание API поиска от Google можно найти здесь. На первый взгляд все выглядит предельно просто: нужно разместить на странице скрипт из 5-10 строк кода, и ура — вы получаете готовую мощную систему поиска по сайту. Но на мой взгляд, тут есть существенные недостатки — способ, рекомендуемый Google (использование объекта google.search.searchControl), формирует несемантичную и явно избыточную HTML-разметку, которая к тому же «обвешана» дополнительнымы CSS-правилами, которые подойдут не каждому сайту.

Поэтому я хочу описать способ реализации поиска по сайту с использованием этого же API, но на более низком уровне, что позволяет формировать любую HTML-разметку и украшать ее собственными стилями. Для удобства работы с DOM я также буду использовать фреймворк jQuery. Сразу оговорюсь, что я не буду подробно расписывать назначение и возможности используемых объектов из API, об этом можно прочесть в документации. Я только покажу один, достаточно универсальный, вариант использования этих объектов в контексте произвольного сайта. Безусловно, приведенный ниже код — это не вселенская истина, а только лишь основа для реализации собственного решения.

Читать дальше »

Метки: , ,

Оставить комментарий