[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. Сижу вот разбираюсь. Так что пару дней меня не беспокоить. :)
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.