Блог о Битрикс и WEB-разработке

2 Сентября 2017

  • Комментариев: 0
  • Фильтр со сложной логикой, GetList, Битрикс, Оптимизация кода, оптимизация запросов
Оптимизация при разработке. Один GetList() сразу к трем таблицам (инфоблокам)

Оптимизация при разработке. Один GetList() сразу к трем таблицам (инфоблокам)

При разработке сайта, очень важно уделить особое внимание загруженности своего кода запросами, в частности из серии методов GetList(). Зачастую, особенно те, кто только-только начал свой путь с Битрикс или в силу своей малоопытности, при разработке проекта делают свой код очень веским, длинным, малочитаемым и тяжелым, забивая его запросами к БД в циклах и даже там, где в этом нет никакой необходимости, где можно было обойтись, например маппингом результирующего массива. Плюс к тому ко всему, забывают про кеширование результатов.
Все это приводит к тому, что сайт или проект становятся тяжелыми, трудноподдерживаемыми и тд и тп с рядом вытекающих из этого последствий. Сегодня мы рассмотрим с вами задачу, как оптимизировать выборку информации из трех инфоблоков и довести эту выборку до ОДНОГО GetList ЗАПРОСА.

29 Августа 2017

Конвертируем таблицу XLS в HTML / XLS to HTML converting

Конвертируем таблицу XLS в HTML / XLS to HTML converting

Столкнулся с задачей верстки шаблона печати Новой формы для Битрикс. Форма давольно-таки сложная и виделись на горизонте не один час табличной верстки. Но что-то подсказывало мне, что можно как-то обойтись и без этого. Решил по-гуглить на тему конвертера из формата xls в HTML таблицепонятный формат. Сразу скажу, что все Онлайн-конвертеры из XSL в HTML конвертят довольно криво, а если форма сложная (как например УПД от 2017 года), то тут вообще все давольно печально. Немного по-гуглив, я наткнулся на зарубежный сайт с какими то онлайн-редакторами, и т. д. Отказавшись от онлайн - конвертеров предоставленных в сети интернет, я наткнулся на сервис онлайн-просмотра Excel-документов https://sheet.zoho.com/sheet/excelviewer

25 Августа 2017

  • Комментариев: 0
  • Однобайтовая кодировка Битрикс, mbstring.func_overload, php.ini, восстановление битрикс
Свои настройки php.ini для отдельного домена

Свои настройки php.ini для отдельного домена

При развертывании резервной копии сайта на Битрикс, дойдя до шага восстановления Базы данных, система восстановления выдала ошибку о том, что восстанавливаемый сайт ранее работал в однобайтовой кодировке, а кодировка сервера рассчитана на кодировку UTF-8.

16 Марта 2016

Пишем класс для генерации кастомных шаблонов печати Заказов в Битрикс

Пишем класс для генерации кастомных шаблонов печати Заказов в Битрикс

Кому известно, кому нет, в Битрикс есть весьма неплохая возможность - создавать, помимо предопределенных шаблонов печати, еще и собственные шаблоны печати Информации о заказе. Будь то - счет-фактура, Информация для курьера или какой иной кастомный бланк Организации (Интернет-магазина).
При разработке нового шаблона печати Заказа разработчик сталкивается с рядом "серых" моментов - в основном они сводятся к Нехватке информации, передаваемой  в переменных "на входе" в шаблон.
Сегодня мы это исправим, написав свой вспомогательный класс, принимающий на вход лишь $arOrder и формирующий единый массив $arResult с данными о Заказе, Товарах, Ценах, корзине, пользователе и пользовательских свойств.

10 Марта 2016

Массив в качестве разделителя в функции explode()

Массив в качестве разделителя в функции explode()

Сегодня я расскажу о решении нестандартной задачки, которая встала при написании класса импорта товаров в 1С-Битрикс.
В Файле EXCEL был столбец с полями "Изображения", данные которых было необходимо обработать. В Поле была строка с перечисленными через запятую именами изображений. Вся фишка в том, что нужно было каким-то образом перевести спарсить каждое изображение по отдельности из всей строки. Сделать то это можно и по разделителю-Запятой, но запятая встречалась и в самом наименовании файла изображения. По расширению файлов, Но файлы были разных расширений.
Тогда, хорошенько подумав, было решено собрать массив из строки функцией explode() и с написанием дополнительной функции, позволяющей указать в качестве разделителя - массив допустимых расширений файлов изображений.

11 Февраля 2016

Я "попал" на Битрикс! или как не "выкинуть" деньги в Маркетплейс

Я "попал" на Битрикс! или как не "выкинуть" деньги в Маркетплейс

Сама по себе идея использования уже готового решения для быстрого старта продаж или заявить о себе, своих продуктах и услугах – давольно не нова и весьма неплоха. Правильный подход к выбору готового решения поспособствует ускорению времени запуска проекта, значительно сэкономив при этом расходы на разработку (сайта, проекта).

Но, к сожалению, очень часто приходится встречать людей, которые приобрели или установили бесплатно готовое решение Битрикс из Маркетплейс(а) с подобным криком души: “Установил, очень много косяков и недочетов. Как вообще такое показывать клиентам?”.

Обычно итог такого “крика души” выливается в доработки купленного “готового” (недоработанного) решения: “Да чтоб меня… Лучше бы я заказал разработку от начала и до конца, контролируя каждый этап!!!”.

Как говорится “Скупой платит дважды”, но тут, друзья, дело уже не в скупости, а во внимательности самого покупателя готового решения.

Давайте рассмотрим некоторые догмы, мифы и советы, которые помогут Вам не сделать (или сделать максимально меньше) ошибок при выборе / покупке готового решения Битрикс в Маркетплейс.

3 Февраля 2016

Особенности выгрузки Торговых предложений в Яндекс.Маркет

Особенности выгрузки Торговых предложений в Яндекс.Маркет

Для того, чтобы Яндекс.Маркет "принял" к себе товар Вашего интернет-магазина, он должен соответствовать ряду требований "Чек-лист для размещения интернет-магазина на Яндекс.Маркете". При экспорте Торговых предложений из Битрикс у многих возникает проблема соответствия этим требованиям.
Дело в том, что Яндексовцы требуют, чтобы Каждое торговое предложение открывалось на Отдельной странице и Соответствующей ценой. А Битриксовцы говорят, что так делать нет смысла, ибо тогда зачем делать, собственно торговые предложения, если их нужно будет создавать как Отдельный товар, а не некую "наследуемость" от основного товара. В итоге при экспорте через Битрикс (стандартным скриптом) получается, что у всех торговых предложений - одинаковые ссылки и при переходе по ним - одинаковая цена (минимальная обычно).

12 Января 2016

Немного о фильтрации элементов в Битрикс

Немного о фильтрации элементов в Битрикс

Очень часто в обращениях сталкивался с вопросами фильтрации элементов Информационного блока по различным свойствам, типам данных, будь то простое свойство, свойство типа "Список" или куда страшнее для кого-то - Дата и время ))
В этом посте я буду выкладывать и ПОСТОЯННО ПОПОЛНЯТЬ коллекцию примеров фильтрации элементов по различным свойствам.
Фильтрация по разным типам свойств в некотором смысле отличается друг от друга, но все же в итоге - все окажется простым )

11 Января 2016

Работа с камерой и видео посредством HTML5

Работа с камерой и видео посредством HTML5

Клиентские интерфейсы на мобильных и десктопных устройствах обеспечиваются все более и более функциональным API. Конечно, и наши мобильные устройства получили доступ к некоторым из них, но все же десктопные устройства порядком отстают, но API медленно-медленно подбираются к ним. Одним из таковых интерфейсов API является getUserMedia, обеспечивая разработчикам доступ к камере пользователя.

Позвольте показать Вам, как получить простой доступ к камере через Ваш браузер!

8 Января 2016

  • Комментариев: 0
  • jQuery, Проиграть музыку jQuery, JS музыка, музыка на страницы, тег audio
Проигрывание звука или музыки при открытии страницы

Проигрывание звука или музыки при открытии страницы

И так, задача заключается в следующем:

При загрузки страницы проиграть один из заранее подготовленных рекламных звуковых роликов или звуковых файлов и отложить действие кода для этого пользователя на одни сутки.

Думаю, пользователь пошлет подальше сайт, на котором при каждой перезагрузки страницы играет 15-ти секундный звуковой ролик =) Поэтому мы будем использовать cookies (куки), в которых будем хранить переменную для определения – проигрывался ли ролик сегодня?


Back to Top