Ubuntu, phpStorm и Xdebug пошаговое руководство

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

Предполагается, что с установкой apache, xdebug и phpstorm в ubuntu вы уже справились, расширение xdebug к php подключили и осталось только настроить их для совместной работы на локальном компьютере.

Читать далее Ubuntu, phpStorm и Xdebug пошаговое руководство

Сжатие js и css с помощью Apache и mod_deflate

Google Page Speed Insights рекомендуют раздавать сжатый (не путать с минифицированным) контент. С помощью mod_deflate это можно легко сделать. Сжимать все подряд я не решился, а вот для js и css-файлов сделал. Десяток строчек в конфигурации хоста и готово! В .htaccess эти правила, кажется, работать не будут. Только в конфигурации сервера или виртуального хоста.

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

Количество символов в SMS

Делал форму отправки SMS и озадачился вопросом о том, сколько символов умещается в одно сообщение. Думаете 160 латинских или 70 русских? А-ха-ха!

В SMS используется 7-битная кодировка, то есть таблица из 127 символов, включающая в себя все латинские символы ASCII и некоторые европейские с греческими, а также знак евро (€).

Но некоторые символы из этого «экранируются» и в итоге считаются за два символа, в общем случае вот этот набор: {}[]\|^~€

Для остальных символов используется кодировка UCS-2, устаревший вариант UTF-16.

Но и тут еще не все.

Читать далее Количество символов в SMS

Переносы слов в темах WordPress

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

Активировал новую тему Twenty Fifteen и первым делом пошел смотреть, как в этот раз обстоит дело с переносами. Все по-прежнему.

Чтобы отменить это безобразие можно отредактировать напрямую CSS самой темы, но при обновлениях все изменения будут уничтожены. Поэтому установил плагин «Собственный CSS» из набора Jetpack и добавил в пользовательский CSS-файл такой код:

Возвращаясь к кэшу в скриптах Webasyst

Вопрос кэширования часто используемых и редко изменяемых данных продолжает волновать пользователей скриптов Webasyst, в частности Shopscript 5. В последнем обновлении фреймворка появились кое-какие-дополнительные возможности. Пока это недокументировано, хотя документация, вроде как, обещана. Кеширование данных сейчас возможно при использовании либо файлового кеша, либо Memcached. Ваш покорный слуга закоммитил еще и адаптер для XCache, но его пока нет в обновлении, распространяемом через приложение «Инсталлер».

Читать далее Возвращаясь к кэшу в скриптах Webasyst

Варианты определения маленьких экранов на Javascript

Возникла задача не запускать виджет веб-чата Zopim на устройствах с маленькими экранами. Нашел один совет от поддержки Zopim, второй придумал сам. Оба неидельны.

Поддержка Zopim предлагает определять операционную систему. Сдается мне, про Windows они не подумали Читать далее Варианты определения маленьких экранов на Javascript

Бейджи автоматически в Shopscript5

Либо я чего-то не нашел, либо в Shopscript 5 действительно нет возможности автоматически добавлять «бейджи» типа «Новинка» или «Скидка». Только вручную. Ну, вручную там можно какие хочешь делать, это понятно. Но самостоятельно следить, чтобы у товара появилась соответствующая наклейка очень грустно. Пришлось добавить пару строк в шаблоне.

Смысл в том, что если товару не назначен никакой бейдж, то назначим его автоматически. Поскольку по задумке авторов скрипта бейдж может быть только один, то и не будем ничего нового придумывать. Если товар создан менее 30 дней назад, то добавим ему бейдж «Новинка», если «зачеркнутая цена» отлична от нуля и меньше чем цена и минимальная цена товара, то добавим бейдж «Скидка».

Включение-выключение автоматического добавлений бейджей, а также срок, в течение которого товар считается новинкой, можно сделать переменными темы (см. по ссылке пункт 6).

Плагин самовывоза для Shopscript5

Сделал плагин самовывоза для Shopscript5 с ограничением на регионы. Бесплатный.

Установить можно из магазина Webasyst или из меню приложения «Инсталлер».

Исходный код доступен на Github и Bitbucket.

Боковое меню для маленьких экранов

Положу опять здесь, чтобы не потерять. Верстка, код и CSS для организации бокового меню, которое на маленьких экранах выезжает слева, сдвигая основной контент. Ну, «в стиле iOS». В отличие от предыдущего уже скрещено с Bootstrap 3.
JS Bin