Кирилл
С нами с 02 мая 2019; Место в рейтинге пользователей: #88Дополнительные поля профиля юзера (не extended)
Разрабатываю проект, в котором необходимо было реализовать более простое редактирование дополнительных полей профиля, чем есть из коробки. К слову, неудобное редактирование — это не единственный минус нативного способа расширения профиля полями. Ни для кого не секрет, что фильтрацию по JSON полям нормально не осуществить, только костылями. Фактически, мне надо было получить решение, которое бы расширяло стандартный код MODX, не трогая исходники, дабы сохранить
Пришёл к выводу, что буду расширять стандартную вкладку профиля «Общая информация». При желании можно чуть переписать код в событии OnUserFormPrerender и создать свою вкладку со своими полями.
Делаем колбеки miniShop2 для всех
Всем привет! Так как в miniShop2 есть список колбеков для того, чтобы на определённые действия, совершаемые компонентом, можно было повесить свой код и, тем самым, дополнить работу магазина, то многие разработчики дополнений используют их в своём коде. Я уж не говорю о вебмастерах, которые используют этот инструмент для решения определённых нужд в своих сайтах.
Проблема в том, что код одного компонента, использующего, например miniShop2.Callbacks.Order.getcost, пересекается с другим кодом, другого компонента, использующего этот же колбек. Получается конфликт, который я для себя, в своих пакетах, решаю так:
В чём проблема?
В связи с этим получается проблема. Колбеков мало, а желающих воспользоваться ими — много. Я уже не раз сталкивался с тем, что некоторые компоненты из Modstore не могут работать вместе, т.к. используют одни и те же колбеки, на одних и тех же страницах.Проблема в том, что код одного компонента, использующего, например miniShop2.Callbacks.Order.getcost, пересекается с другим кодом, другого компонента, использующего этот же колбек. Получается конфликт, который я для себя, в своих пакетах, решаю так:
Фильтрация пользователей с помощью mFilter2
Делая очередной тематический каталог организаций, где каждый пользователь это отдельная организация, которая размещает информацию о себе и своих услугах, я обычно применял классическое решение, когда при регистрации пользователя с помощью Office, создается отдельный ресурс и тогда можно без проблем просматривать карточки (ресурсы) организаций, осуществлять поиск и фильтровать их по разным параметрам используя готовые коробочные решения mSearch2 и mFilter2.
Плюсов тут несколько, в основном это возможность применять классические решения, ничего не допиливая. Но есть и минусы — приходится писать плагины, которые отслеживают изменение профиля пользователя и дублируют эти изменения в ресурс, определенные сложности модерирования, проблемы со скоростью сохранения и вывода информации и т.д.
Я решил заморочиться и сделал решение без дублирования информации, на основе таблицы пользователей.
Плюсов тут несколько, в основном это возможность применять классические решения, ничего не допиливая. Но есть и минусы — приходится писать плагины, которые отслеживают изменение профиля пользователя и дублируют эти изменения в ресурс, определенные сложности модерирования, проблемы со скоростью сохранения и вывода информации и т.д.
Я решил заморочиться и сделал решение без дублирования информации, на основе таблицы пользователей.
MODX session и cookie - помогите разобраться
Есть задача — для всех посетителей, при первом заходе на сайт выводить определенный чанк.
При рефреше страниц и при последующем заходе, в течении 1 часа — чанк не выводить.
Нужен скорее сниппет, который сессии или куки будет записывать и затем проверять их.
Я не силен в написании сниппетов( Помогите разобраться, как такое реализовать.
Или может готовое решение есть у кого?
При рефреше страниц и при последующем заходе, в течении 1 часа — чанк не выводить.
Нужен скорее сниппет, который сессии или куки будет записывать и затем проверять их.
Я не силен в написании сниппетов( Помогите разобраться, как такое реализовать.
Или может готовое решение есть у кого?
Расширение любых таблиц MODX
В очередной раз понадобилось изменить таблицу сайта, менять которую не предусмотрено.
Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.
Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.
Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Вывод заказов для Minishop2
Давно использую MODX Revo, но в основном для небольших сайтов. А сейчас решил сделать на нём интернет-магазин. Захотелось сделать на сайте личный кабинет покупателя, где он сможет просматривать свои заказы. Начал искать и не нашёл ни одного решения этого вопроса (может плохо искал?!).
Странно. В итоге написал свой велосипед — сниппет и чанк в котором выводится содержимое.
Странно. В итоге написал свой велосипед — сниппет и чанк в котором выводится содержимое.
Включаем MemCache
MemCahed — это замечательная технология, которая позволяет кэшировать данные не на жесткий диск, а в оперативную память, которая быстрее во много-много раз. И если раньше MODX нужно было дружить с ней, то с версии 2.1 работа с MemCache уже включена в движок, и это нужно только активировать.
В принципе, операция не сложная, но есть один момент, из-за которого я и пишу этот топик.
Все операции, как обычно, написаны для сервера настроенного по этой инструкции.
В принципе, операция не сложная, но есть один момент, из-за которого я и пишу этот топик.
Все операции, как обычно, написаны для сервера настроенного по этой инструкции.
Откуда 302 редирект?
Привет!
Ребят, подскажите один момент…
На сайте откуда то появился 302 редирект. В каталоге перехожу на 3 страницу, обновляю страницу, редиректит на первую. В консоли написано 302 Found…
На обычной странице без mfilter, обычный вывод статей с пагинацией: перехожу на третью страницу и получаю редирект.
При этом, когда перехожу на вторую страницу — редиректа нет!!!
Что за беда? Кто знает?
Сначала сайт делал на digitalocean, там nginx… Потом перенес на sweb, там Apache… Но редирект появляется и на nginx'e.
Помогите понять:) На всякий случай ссылку даю…
Ребят, подскажите один момент…
На сайте откуда то появился 302 редирект. В каталоге перехожу на 3 страницу, обновляю страницу, редиректит на первую. В консоли написано 302 Found…
На обычной странице без mfilter, обычный вывод статей с пагинацией: перехожу на третью страницу и получаю редирект.
При этом, когда перехожу на вторую страницу — редиректа нет!!!
Что за беда? Кто знает?
Сначала сайт делал на digitalocean, там nginx… Потом перенес на sweb, там Apache… Но редирект появляется и на nginx'e.
Помогите понять:) На всякий случай ссылку даю…
Как правильно выставить права на файлы?
Доброе время суток!
Подскажите, пожалуйста, каким файлам нужно присвоить права 777?
Не могу найти в интернете рекомендаций на этот счет. Пока, я на все файлы ставляю 777, а иначе установщик отказывает устанавливать движеок.
Подскажите, пожалуйста, каким файлам нужно присвоить права 777?
Не могу найти в интернете рекомендаций на этот счет. Пока, я на все файлы ставляю 777, а иначе установщик отказывает устанавливать движеок.
Как не хакать сторонние классы
Бывает, что вы используете какой-то сниппет или компонент, и он немного вас не устраивает. Вам нужно поправить буквально пару строк, но вы понимаете, что при обновлении эти измения пропадут.
Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.
Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.