[modHelpers] Версия 1.4.0. Мобильность, очереди...
Всем привет!
В данной версии добавленный функционал коснулся в основном программистов. Но есть пара фич и для работы с сайтом — проверка запроса на «мобильность» и очереди для почтовых уведомлений.
Для отладки добавил функцию print_str(). Работает как print_r, но дополнительно делает ещё ряд манипуляций — объекты переводит в массивы (при наличии метода toArray), массивы оборачивает в тег pre, для null-евых переменных выводит «NULL», для булевых — «TRUE» или «FALSE» вместо 1 и ''. А также может оборачивать вывод тегами HTML или применять шаблон для вывода. Например, выводить желтым шрифтом на синем фоне.
Список добавленных функций:
По очередям. Так как отправка почтового сообщения — операция довольно ресурсоёмкая, лучше выполнять её асинхронно. Например, используя cron. Для работы с очередями в мейлер библиотеки добавлены методы для сохранения писем в очередь и отправки их из очереди.
Кому интересно подробности тут.
В данной версии добавленный функционал коснулся в основном программистов. Но есть пара фич и для работы с сайтом — проверка запроса на «мобильность» и очереди для почтовых уведомлений.
Для отладки добавил функцию print_str(). Работает как print_r, но дополнительно делает ещё ряд манипуляций — объекты переводит в массивы (при наличии метода toArray), массивы оборачивает в тег pre, для null-евых переменных выводит «NULL», для булевых — «TRUE» или «FALSE» вместо 1 и ''. А также может оборачивать вывод тегами HTML или применять шаблон для вывода. Например, выводить желтым шрифтом на синем фоне.
Список добавленных функций:
- is_mobile() — проверяет откуда запрос — с мобильного или нет (спасибо Константину Обухову).
- array_empty() — проверяемая переменная должна быть пустым массивом.
- array_notempty() — проверяемая переменная должна быть непустым массивом.
- array_trim(), array_ltrim() и array_rtrim() — рекурсивная обработка массива функциями trim(), ltrim() и rtrim() соответственно. Можно указывать символы для удаления.
- explode_trim(), explode_ltrim() и explode_rtrim() — объединение 2-х функций: explode() и trim с возможностью указания символов.
- print_str() — Расширяет функцию print_r(). Конвертирует переменную в строку и печатает или выводит её. В качестве агрумента может быть строка, массив, объект, у которого определён метод toArray(). Массив оборачивается в тег pre. Результат можно оборачивать в теги HTML.
- print_d() — выводит значение через функцию print_str() и завершает выполнение сценария. Т.е. print and die.
- echo_nl() — добавляет к выводу символ окончания строки.
- parse() — заменяет плейсхолдеры с строке на переданные значения. Плейсхолдеры должны передаваться в ассоциативном массиве.
- str_starts() — возвращает истину, если строка начинается с указанной подстроки.
- str_ends() — возвращает истину, если строка заканчивается указанной подстрокой.
- str_contains() — возвращает истину, если указанная подстрока содержится в исходной строке.
- str_match() — проверяет, соответствует ли строка указанному паттерну.
- str_limit() — возвращает строку указанной длины и добавляет завершающую строку — по-умолчанию многоточие.
- str_between() — возвращает подстроку, найденную между указанными тегами.
{if is_mobile()}
Секция для мобильных устройств
{else}
Секция для десктопных устройств
{/if}
По очередям. Так как отправка почтового сообщения — операция довольно ресурсоёмкая, лучше выполнять её асинхронно. Например, используя cron. Для работы с очередями в мейлер библиотеки добавлены методы для сохранения писем в очередь и отправки их из очереди.
Кому интересно подробности тут.
Поблагодарить автора
Отправить деньги
Комментарии: 7
Доброго дня!
is_mobile() пока не понимает разницу телефон\планшет, или не планируется?
is_mobile() пока не понимает разницу телефон\планшет, или не планируется?
Привет!
Он и не должен понимать — планшет же не мобильный телефон :)
Наверно есть смысл добавить функцию is_tablet().
Он и не должен понимать — планшет же не мобильный телефон :)
Наверно есть смысл добавить функцию is_tablet().
есть смысл добавить функцию is_tablet()ну, я собственно об этом :)
PS Кто уже минусуест вполне понятный ответ… воистину, не понять мне разум других чеовеков.
Вот этим плагином пользуюсь
В принципе все четко определяется, mobile, tablet, standard. И все три типа устройств сейчас абсолютно актуальны, судя по посещениям (из доступной статистики).
В принципе все четко определяется, mobile, tablet, standard. И все три типа устройств сейчас абсолютно актуальны, судя по посещениям (из доступной статистики).
кстати, is_tablet() не будет реализована?
Да я забыл уже про неё благополучно. :)
П.С. Купил Lenovo Yoga 910. Сижу вот разбираюсь. Так что пару дней меня не беспокоить. :)
П.С. Купил Lenovo Yoga 910. Сижу вот разбираюсь. Так что пару дней меня не беспокоить. :)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.