Василий Наумкин
С нами с 08 декабря 2012; Место в рейтинге пользователей: #1Удобная фильтрация в mSearch2 на мобильной версии (внешний вид)
Доброго всем!
дам очень нужную инструкцию для изменения внешнего вида фильтров на мобильной версии (в десктопной ничего не измениться) в mSearch2 совместно с minishop2
На выходе нас ожидает меню куда спрячутся все фильтра, а сбоку, поверх всего будет закреплена кнопка управляющая этим меню (открыть, закрыть). Работает как в bootstrap 3 так и в bootstrap 4. Внешний вид фильтров настраиваете на свой вкус и цвет.
Впринцыпе данный пример можно использовать где угодно, возможно спрячете меню блога, ну там уже на свое усмотрение. Работает через jquery
дам очень нужную инструкцию для изменения внешнего вида фильтров на мобильной версии (в десктопной ничего не измениться) в mSearch2 совместно с minishop2
На выходе нас ожидает меню куда спрячутся все фильтра, а сбоку, поверх всего будет закреплена кнопка управляющая этим меню (открыть, закрыть). Работает как в bootstrap 3 так и в bootstrap 4. Внешний вид фильтров настраиваете на свой вкус и цвет.
Впринцыпе данный пример можно использовать где угодно, возможно спрячете меню блога, ну там уже на свое усмотрение. Работает через jquery
Аварии на серверах h4 и h5 modhost.pro
Давно не писал интересных заметок, жаль, что повод не очень.
Итак, за последние пару месяцев у нас было 3 проблемы с сервером h4 и 1 с сервером h5. Все аварии по ночам, когда поддержка спит и видит сладкие сны о бесперебойной работе всех сервисов. Последний инцидент был сегодня.
Проблема, как многие уже догадались — в отсутствии свободного места при резервном копировании. Заканчивается место и…
— Отваливается MySQL
— Пользователи видят проблему, не могут войти в админку (пароль-то не проверить, БД не работает)
— Думают, что их взломали (логи сервера с ошибками MySQL смотреть неинтересно) и начинают восстанавливать резервные копии
— А при этом сайт сначала удаляется, но места свободного обычно всё равно не хватает, так что ничего и не восстанавливается
— Дальше отваливается Nginx, когда замечает, что у него пропали конфиги этого удалённого сайта
— Ну и PHP, по той же причине
В общем: паника, разруха, десятки тикетов в поддержке — просыпаешься моментально.
Итак, за последние пару месяцев у нас было 3 проблемы с сервером h4 и 1 с сервером h5. Все аварии по ночам, когда поддержка спит и видит сладкие сны о бесперебойной работе всех сервисов. Последний инцидент был сегодня.
Проблема, как многие уже догадались — в отсутствии свободного места при резервном копировании. Заканчивается место и…
— Отваливается MySQL
— Пользователи видят проблему, не могут войти в админку (пароль-то не проверить, БД не работает)
— Думают, что их взломали (логи сервера с ошибками MySQL смотреть неинтересно) и начинают восстанавливать резервные копии
— А при этом сайт сначала удаляется, но места свободного обычно всё равно не хватает, так что ничего и не восстанавливается
— Дальше отваливается Nginx, когда замечает, что у него пропали конфиги этого удалённого сайта
— Ну и PHP, по той же причине
В общем: паника, разруха, десятки тикетов в поддержке — просыпаешься моментально.
Удаление старых версий пакетов
Многие пользователи знают, что MODX хранит кучу старых версий дополнений, чтобы вы могли откатиться на них в любое время.
Но, это требуется крайне редко, а место пакеты занимают. Их можно удалять вручную, но это довольно утомительно, поэтому я набросал несложный консольный скрипт для автоматического удаления.
Скрипт нужно положить в корневую директорию и запустить. Он выберет все установленные версии, кроме самой последней, и корректно удалит их через родной процессор.
Судя по коду этого процессора, никак повредить системе он не может, потому что деинсталляцию самого пакета не делает, а только удаляет файлы версии. Но, в любом случае, использовать на свой страх и риск!
Но, это требуется крайне редко, а место пакеты занимают. Их можно удалять вручную, но это довольно утомительно, поэтому я набросал несложный консольный скрипт для автоматического удаления.
Скрипт нужно положить в корневую директорию и запустить. Он выберет все установленные версии, кроме самой последней, и корректно удалит их через родной процессор.
Судя по коду этого процессора, никак повредить системе он не может, потому что деинсталляцию самого пакета не делает, а только удаляет файлы версии. Но, в любом случае, использовать на свой страх и риск!
Расширение pdoTools
Представляю законченное решение для работы с файловыми элементами, собранное в пакет. Оно добавляет в pdoTools модификаторы chunk, snippet, template и code. Синтаксис точно такой же, как и в pdoTools — в названии элементов можно вставлять префиксы @FILE, @INLINE, @CODE и т.д. Поэтому вызовы элементов, описанные в прошлой статье, теперь немного изменились.
pdoFetch поиск в TV-полях с разделителем ||
Наверняка много кто использовал в своей практике TV-поля типа «Список» (множественный, одиночный, не важно) или «Тег». Здесь важно именно то, в каком виде в базе данных хранятся данные таких полей, ведь они сохраняют множественные значения. А хранят они их одной общей строкой в той же самой таблице ТВшек (естественно, по одной записи на один документ). К примеру, если мы отметили три значения 100, 1005, 10, в БД это запишется 100||1005||10. И здесь возникает вопрос как потом выполнить поиск по таким полям? Простой LIKE здесь не поможет, так как LIKE %100%, к примеру, найдет и '100||1000' и '1001||1005'. Данного вопроса мы уже касались здесь и подобный вопрос опять возник здесь.
[Office] Версия 1.3.2 вложенные extended поля
Представляю вам новую версию Office, компонента для работы с пользователями на сайте.
Очень много вопросов возникает с extended полями, которые в этой версии были расширены, так что я решил написать максимально понятные примеры по их использованию.
Итак, все неразрешённые поля в профиле пользователя запрещены для заполнения. Они просто обнуляются при обработке формы, поэтому, первым делом, вам нужно разрешить extended в параметре &profileFields:
Там же вам нужно указывать и все остальные поля, которые вы разрешаете менять своим пользователям:
Очень много вопросов возникает с extended полями, которые в этой версии были расширены, так что я решил написать максимально понятные примеры по их использованию.
Итак, все неразрешённые поля в профиле пользователя запрещены для заполнения. Они просто обнуляются при обработке формы, поэтому, первым делом, вам нужно разрешить extended в параметре &profileFields:
[[!OfficeProfile?
&profileFields=`extended`
]]
Там же вам нужно указывать и все остальные поля, которые вы разрешаете менять своим пользователям:
[[!OfficeProfile?
&profileFields=`extended,username,fullname,email`
]]
Добавление модификаторов Fenom
Задался вопросом добавления своих модификатором в парсер Fenom для modx.
Из этого вышел простой модификатор |days, который правильно склоняет «дней», «дня», «день».
вызывать так:
Из этого вышел простой модификатор |days, который правильно склоняет «дней», «дня», «день».
вызывать так:
{$dayscount|days}
Автоматическая генерация оглавления страницы
На днях появился вопрос об автоматическом создании оглавления статьи, а позже где-то проскочил комментарий, мол неплохо бы такое добавить на docs.modx.pro — там же все документы хорошо структурированы.
И действительно, а почему бы не добавить? Выделил полчасика и набросал сниппет makeContents, который генерирует вот такое оглавление:
И действительно, а почему бы не добавить? Выделил полчасика и набросал сниппет makeContents, который генерирует вот такое оглавление:
Модель безопасности в MODX
Модель безопасности в MODX не самая очевидная. Хотя в MODX присутствуют примитивы, присущие, например, модели безопасности SQL, их предназначение в MODX несколько отличается.
При настройке безопасности конечной целью является дать каждому пользователю соответвующий набор привилегий – разрешить ему совершать определенные действия в системе. Действия могут совершаться над различными объектами: страницами (resource), контекстами (context), чанками (chunk), переменными шаблонов (TV) и т.д. Сами действия могут быть очень разными, в простейшем случае это создание, просмотр, редактирование и удаление. Таким образом, задача настройки безопасности сводится к заданию отношений между пользователями, объектами и привилегиями.
При настройке безопасности конечной целью является дать каждому пользователю соответвующий набор привилегий – разрешить ему совершать определенные действия в системе. Действия могут совершаться над различными объектами: страницами (resource), контекстами (context), чанками (chunk), переменными шаблонов (TV) и т.д. Сами действия могут быть очень разными, в простейшем случае это создание, просмотр, редактирование и удаление. Таким образом, задача настройки безопасности сводится к заданию отношений между пользователями, объектами и привилегиями.
Фильтрация по выпадающему списку для mFilter2
Может кому-то пригодится небольшое решение с подключением Bootstrap-select
Пример рабочего select с поиском без правки скрипта, благодаря label:
Пример рабочего select с поиском без правки скрипта, благодаря label: