Интересные задачи верстки

Интересные задачи верстки и клиентского программирования

Штатный bitrix:sale.order.ajax очень сложно кастомизировать. Я думаю никто не будет со мной спорить. Битриксовцы подумали над процедурой заказа, о том как заказ должен выглядеть в идеале, а потом реализовали придуманную процедуру в продукте. Все сделано хорошо, однако если у заказчика представления по процедуре заказа отличаются от штатной реализации, то изменить шаблон компонента bitrix:sale.order.ajax практически нереально. Собственно сами битриксовцы на одной из конференций предложили писать отдельный компонент заказа. В этой статье я покажу один из вариантов по реализации такого компонента. И может быть попутно поясню непонятные моменты по созданию заказа на API. Само API по созданию заказа получилось прям отличное, несмотря на сложности кастомизации sale.order.ajax. Если вдруг разработчики читают эту статью, то спасибо вам, прямо приятно работать 🙂

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

(далее…)


добавил Шубин Александр 14 Ноябрь, 2017
Рубрика: bitrix, Уроки

В этой статье я расскажу несколько возможных вариантов настройки локального окружения для php разработки с использованием docker. Изначально я планировал написать более широкую статью, и расписать как локальную часть разработки, то есть установку всего на компьютере конкретного разработчика, так и устройство удаленного dev сервера на котором происходит тестирование проекта и сливается код от нескольких программистов. Но статья выходит слишком большая, поэтому в данной статье мы рассмотрим только локальное окружение.

В статье я больше буду акцентироваться именно на windows системе (в примере все работает на windows 10). Однако на mac насколько я понимаю все работает примерно так же, там тоже поднимается отдельная виртуалка с докером, на которой уже запускаются контейнеры. На линуксе контейнеры запускаются безо всяких виртуалок, прям на месте, так что для линуксоидов все будет даже еще проще чем описано в статье. Не стоит рассматривать описанное в статье окружение как готовый рецепт, пусть все работает при правильной реализации, но это просто пример, только один из возможных вариантов.

Что я вообще хочу от докера при разработке.
Во первых, мне нужна локальная копия сайта, именно на этой локальной копии я буду смотреть как собственно работает код. Эта локальная копия должна открываться по красивому адресу, например если основной рабочий сайт это example.com, то моя локальная копия должна открываться по адресу my.example.com. Безо всяких портов типа my.example.com:8747. Я часто открываю сразу несколько проектов и все открытые проекты не должны конфликтовать, то есть например у меня открыто два окна phpstorm в одном ведется разработка проекта example.com, во втором ведется разработка test.ru, и для каждого из этих проектов одновременно должны работать два локальных сайта my.example.com и my.test.ru.
Во вторых, мне под каждый проект нужны специальные настройки (mbstring, timezone) и расширения php (типа xdebug).
В третьих, мне нужны внешние инструменты типа phpmyadmin для работы с БД проекта или node.js для работы с gulp/webpack.
И наконец в четвертых, все это должно быстро подниматься для новых разработчиков которые подключаются к проекту.

Поехали. Попробуем это все реализовать 🙂

(далее…)


добавил Шубин Александр 12 Июль, 2017
Рубрика: devops

Считаем, что принято решение делать сайт на CMS и в качестве CMS был выбран битрикс. Дизайнер отрисовал картинку, верстальщик сделал html+css+js код и дальше начинает работу серверный программист. С чего начать проект? Как лучше организовать код? Об этом я хочу поговорить в данной статье. Здесь я не ставлю задачу объяснить каждую деталь подробно, не ставлю задачу показать прямо конкретные шаги, вроде выполните первое, выполните второе и т.д. Здесь я постараюсь обрисовать общую картину. Я хочу показать как должен быть устроен проект на битриксе с моей точки зрения. Если у вас есть какие то замечания, дополнения или уточнения, то пишите в комментарии. Было бы любопытно сравнить разные подходы к формированию структуры проекта.

(далее…)


добавил Шубин Александр 25 Июль, 2016
Рубрика: Уроки

Написал простенький скрипт для перевода lang файлов битрикса через яндекс переводчик. Скрипт будет вам полезен если сайт сделан грамотно, и весь текст шаблонов находится там где он должен быть в битриксе, то есть в lang файлах. Если есть текст непосредственно в шаблонах компонентов или в шаблоне сайта (в самом файле шаблона) или еще где-то кроме lang файла, то скрипт на него никак не повлияет. Если вы все же хотите воспользоваться скриптом, то сначала нужно весь текст вынести в lang файлы.

Пару слов по поводу качества перевода. От любого автоматического переводчика не стоит ждать многого. Если вы ждете, что для перевода всего сайта достаточно нажать одну кнопку и все будет идеально, то нет, я вас разочарую, по всем этим переведенным файлам потом придется идти еще раз и нещадно править текст. Почему был выбран перевод от яндекса? Потому что они предоставляют доступ к АПИ бесплатно. Если есть желание, можете купить платный доступ к апи гугла и переписать только функцию «translateString» в скрипте, она на входе получает строку на исходном языке и возвращает переведенную строку, можете сделать в этой функции перевод через любой другой сервис. Впрочем я сомневаюсь, что качество там будет заметно лучше.

(далее…)


добавил Шубин Александр 23 Апрель, 2016
Рубрика: Программы

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


добавил Шубин Александр 19 Июнь, 2013
Рубрика: Верстка

В CMS 1С-Битрикс есть свой встроенный ajax в нескольких компонентах. В этом встроенном ajax есть один существенный минус — страница все равно полностью выполняется.

Кроме встроенного в стандартные компоненты варианта ajax, можно самому написать более правильную реализацию на битриксовской библиотеке. Про встроенную библиотеку можно прочитать у Рамиля Юналиева:
http://yunaliev.ru/2010/02/bitrix-ajax/

Здесь я покажу как мне кажется более правильный вариант ajax, именно организацию работы. Отправлять сами ajax запросы я буду на jquery. Больший акцент я сделаю именно на серверной стороне, но чтобы получился законченный пример клиентскую сторону мы тоже расссмотрим.

Хочется показать какой то живой пример, поэтому мы будем отображать на странице количество и общую сумму товаров в корзине.

(далее…)


добавил Шубин Александр 20 Июль, 2012
Рубрика: AJAX

Когда то давно сделал для себя небольшую программку по массовой перекодировке файлов из UTF-8 в любую кодировку и наоборот из любой кодировки в UTF-8. Перекодируются все файлы с нужными расширениями в папке с декодером и во всех подпапках.

Это был мой первый опыт в ООП. Программа написана на php.
(далее…)


добавил Шубин Александр 18 Июль, 2012
Рубрика: Программы

Примерный план статьи.

  1. Что такое CSS спрайты?
  2. Терминология
  3. Особенности использования спрайтов
  4. Практические примеры

Спрайты — это довольно интересная и простая технология. Сейчас я расскажу о ней немного подробнее.
(далее…)



Как добиться одинаковой высоты колонок при div верстке? На текущий момент я знаю только три способа. Перечислю их в порядке полезности и сложности, те что выше в списке боллее простые для понимания, а те что ниже наиболее функциональные:

  1. Изменение display
  2. Делать огромные margin и padding плюс overflow:hidden
  3. Вложенные колонки

Есть еще вариант с использованием javascript, но выравнивать колонки javascript’ом не наш метод. Если вы знаете способы которые принципиально отличаются от уже названных то пишите в комменты, я их добавлю с указанием ссылки на автора. Теперь подробнее про перечисленные мной способы.
(далее…)