Cachepwd modx что это

Ваш доступ к системе управления заблокирован администратором

Пытаетесь войти в админку MODX и получаете данное сообщение? Рассказываю как снять блокировку. Кстати этим же способом можно восстановить забытый пароль от админки.

Как разблокировать пользователя MODX Revolution

Простое решение

Если не получилось

Примечание: Префикс таблиц modx_ в базе данных может быть другим. Указывайте свой.

В случае неудачи, возможно дополнительно нужно изменить пароль.

Как сменить пароль пользователя MODX Revolution

Откройте базу данных сайта через phpMyAdmin, консоль или другой привычный вам инструмент управления базами данных.

Найдите таблицу modx_users и измените для нужного пользователя значения полей:

То же самое можно выполнить через запрос к базе данных:

Примечание: Префикс таблиц modx_ (для поля modx_users) в базе данных может быть другим. Указывайте свой.

Примечание: Если меняете учетную запись, отличную от администратора, нужно изменить id в начале и конце запроса на id пользователя, которого меняете. Значение поля sudo 1 означает, что пользователь является администратором, для обычных пользователей нужно указывать 0.

Вернитесь на страницу входа в админку MODX, обновите ее, после чего авторизуйтесь под своим логином и паролем password321.

Когда войдете в админку установите свой пароль ПрофильИзменить пароль.

На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

Источник

MODX → modUser

Объёкты modUser представлены в базе данных в виде таблицы modx_users

Родительским классом объектов является modPrincipal

Доступные для получения, записи и изменения поля объекта:

Связи объектов

Объект имеет зависимости. modUser связан со следующими объектами:
modResource (псевдоним CreatedResources). Связь объектов записывается в поля id и createdby.
modResource (псевдоним EditedResources). Связь объектов записывается в поля id и editedby.
modResource (псевдоним DeletedResources). Связь объектов записывается в поля id и deletedby.
modResource (псевдоним PublishedResources). Связь объектов записывается в поля id и publishedby.
modUserMessage (псевдоним SentMessages). Связь объектов записывается в поля id и sender.
modUserMessage (псевдоним ReceivedMessages). Связь объектов записывается в поля id и recipient.
modUserGroup (псевдоним PrimaryGroup). Связь объектов записывается в поля primary_group и id.

При удалении объекта так же будут удалены следующие, связанные с ним сущности:
modUserProfile (псевдоним Profile). Взаимосвязь определяется полями id и internalKey.
modUserSetting (псевдоним UserSettings). Взаимосвязь определяется полями id и user.
modUserGroupMember (псевдоним UserGroupMembers). Взаимосвязь определяется полями id и member.
modActiveUser (псевдоним ActiveUsers). Взаимосвязь определяется полями id и internalKey.

Источник

Фильтры ввода и вывода

Фильтры ввода и вывода в MODx.

Cachepwd modx что это. Смотреть фото Cachepwd modx что это. Смотреть картинку Cachepwd modx что это. Картинка про Cachepwd modx что это. Фото Cachepwd modx что это

Оглавление

Фильтры ввода и вывода в MODx позволяют манипулировать тем, как будут обрабатываться те или иные теги. Они позволяют вам изменять значения прямо внутри ваших шаблонов.

Фильтры ввода

В настоящее время фильтры ввода используются при подготовке к обработке фильтров вывода. Обычно они используются только внутри движка MODx.

Фильтры вывода

В MODx фильтр вывода применяет один или несколько выходных модификаторов. Все они встроены в ядро. Синтаксис выглядит так:

Фильтры могут применяться последовательно. Для этого напишите их подряд (слева направо):

Также фильтры могут применяться для модификации вывода сниппетов. Фильтр нужно прописывать перед всеми параметрами (перед знаком вопроса):

Модификаторы вывода

В таблице представлены некоторые модификаторы и примеры их использования. В примерах модификаторы применяются к плейсхолдерам, но вы должны помнить, что они могут применяться к любым тегам MODx. Убедитесь, что используемый тег выводит хоть что-то, что модификатор будет обрабатывать.

Условные модификаторы вывода

МодификаторОписаниеПример использования
if, inputПередаёт произвольный текст на ввод, для следующего модификатора.[[*id:input=`[[+placeholder]]`:is=`1`:then=`Да`:else=`Нет`]]
orОбъединение нескольких модификаторов связью ИЛИ.[[+numbooks:is=`5`:or:is=`6`:then=`Здесь 5 или 6 книг`:else=`Не уверен, сколько книг`]]
andОбъединение нескольких модификаторов связью И.[[+numbooks:gt=`5`:and:lt=`10`:then=`Здесь от 5 до 10 книг`:else=`Книг или меньше 5, или больше 10`]]
isequalto, isequal, equalto, equals, is, eqСравнивает передаваемое значение с установленным. Если значения совпадают, выводится значение «then», если нет — «else».[[+numbooks:isequalto=`5`:then=`Здесь 5 книг`:else=`Не уверен, сколько книг`]]
notequalto, notequals, isnt, isnot, neq, neСравнивает передаваемое значение с установленным. Если значения НЕ совпадают, выводится значение «then», если нет — «else».[[+numbooks:notequalto=`5`:then=`Не уверен, сколько книг`:else=`Здесь 5 книг`]]
greaterthanorequalto, equalorgreaterthen, ge, eg, isgte, gteТо же, только условие «Больше или равно».[[+numbooks:gte=`5`:then=`Здесь 5 книг или больше`:else=`Здесь меньше пяти книг`]]
isgreaterthan, greaterthan, isgt, gtТо же, только условие «Строго больше».[[+numbooks:gt=`5`:then=`Здесь больше пяти книг`:else=`Здесь 5 книг или меньше`]]
equaltoorlessthan, lessthanorequalto, el, le, islte, lteТо же, только условие «Меньше или равно».[[+numbooks:lte=`5`:then=`Здесь 5 книг или меньше`:else=`Здесь больше пяти книг`]]
islowerthan, islessthan, lowerthan, lessthan, islt, ltТо же, только условие «Строго меньше».[[+numbooks:lte=`5`:then=`Здесь меньше пяти книг`:else=`Здесь 5 книг или больше`]]
hideСкрывает элемент, если условие выполняется.[[+numbooks:lt=`1`:hide]]
showОтображает элемент, если условие выполняется.[[+numbooks:gt=`0`:show]]
thenИспользуется для составления условий.[[+numbooks:gt=`0`:then=`Книги в наличии!`]]
elseИспользуется для составления условий (совместно с «then»).[[+numbooks:gt=`0`:then=`Книги в наличии!`:else=`Простите, но все продано.`]]
memberof, ismember, moПроверяет, является ли пользователь членом указанной группы пользователей.[[!+modx.user.id:memberof=`Administrator`]]

#

Модификаторы для работы со строками

Модификаторы для работы с пользователями нужно вызывать некэшированными, чтобы каждый юзер видел актуальные данные.

Использование модификаторов вывода совместно с параметрами

Если у тега есть параметры, то их необходимо прописывать сразу после модификатора:

Создание пользовательского модификатора

Такой вызов тега передаст в сниппет makeExciting следующие параметры для обработки:

ПараметрЗначениеЗначение в примереКомментарий
inputЗначение элемента$input = `[[*pagetitle]]`;Значение элемента, к которому применяется модификатор.
optionsЗначение модификатора$options = 4;Дополнительные параметры (после знака = )
tokenТип элемента$token = *;Символ, определяющий тип тега.
nameИмя элемента$name = `pagetitle`;Имя плейсхолдера, к которому применяется модификатор.
tagВесь тег полностью$tag = `[[*pagetitle:makeExciting=`4`]]`;Весь тег, полностью.

Приведем пример кода нашего сниппета makeExciting:

Тег выводит всё, что возвращает сниппет. В нашем случае он вернет значение тега [[*pagetitle]] с четырьмя восклицательными знаками.

Если сниппет вернет пустую строку, то на страницу будет выведено изначальное значение тега.

Цепочки фильтров (Множественные модификаторы)

Хорошим примером цепочки фильтров будет форматирование даты, например, так:

Модификатор UserInfo

Прямой доступ к данным из таблицы modx_user_attributes в базе данных, с помощью модификаторов вывода вместо сниппетов, может быть достигнуто просто за счет использования модификатора UserInfo. Выберите нужный столбец из таблицы и укажите его в качестве свойства модификатора, например, так:

Поле профиляПример
Внутренний ключ профиля[[!+modx.user.id:userinfo=`internalKey`]]
Логин[[!+modx.user.id:userinfo=`username`]]
Полное имя[[!+modx.user.id:userinfo=`fullname`]]
Роль[[!+modx.user.id:userinfo=`role`]]
E-mail[[!+modx.user.id:userinfo=`email`]]
Телефон[[!+modx.user.id:userinfo=`phone`]]
Мобильный телефон[[!+modx.user.id:userinfo=`mobilephone`]]
Факс[[!+modx.user.id:userinfo=`fax`]]
Дата рождения[[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]]
Пол[[!+modx.user.id:userinfo=`gender`]]
Страна[[!+modx.user.id:userinfo=`country`]]
Область / Штат[[!+modx.user.id:userinfo=`state`]]
Почтовый индекс[[!+modx.user.id:userinfo=`zip`]]
Фото[[!+modx.user.id:userinfo=`photo`]]
Комментарий[[!+modx.user.id:userinfo=`comment`]]
Пароль[[!+modx.user.id:userinfo=`password`]]
Временный пароль[[!+modx.user.id:userinfo=`cachepwd`]]
Последняя авторизация[[!+modx.user.id:userinfo=`lastlogin`:date=`%Y-%m-%d`]]
Дата текущей авторизации[[!+modx.user.id:userinfo=`thislogin`:date=`%Y-%m-%d`]]
Количество авторизаций[[!+modx.user.id:userinfo=`logincount`]]

[[!+modx.user.id]] возвращает id вошедшего в систему пользователя. Конечно, вы можете заменить, его на [[*createdby]] или другое поле ресурса или даже на плейсхолдер, который возвращает числовое представление id пользователя.

Обратите внимание, что профиль текущего пользователя уже доступен в MODx по умолчанию, так что вам не нужно использовать модификатор UserInfo для него:

Фильтр userinfo нужно вызывать некэшированным, иначе пользователи будут видеть чужие закэшированные данные.

Различные условия

Набор различных условий, которые часто используются при создании условий:

Проверка авторизации

Если id пользователя больше 0, значит пользователь авторизован, если равен 0, то это гость:

Благодарность автору

Если по какой-либо причине вы хотите поблагодарить автора данного ресурса, вы можете это сделать одним из удобных для вас способов ниже.

Один из самых популярных способов поблагодарить автора, воспользоваться сервисом Яндекс.Деньги.

Источник

Модификаторы MODX и фильтры phx

Сегодня полезная статья про фильтры phx и их модификаторы MODX Revo (другими словами различными условиями) при помощи которых вы сможете прямо внутри шаблонов, манипулировать значением различных тегов.

Фильтры ввода

В настоящее время фильтры ввода используются при подготовке к обработке фильтров вывода. Обычно они используются только внутри движка MODX.

Фильтры вывода

В MODX Revo фильтры вывода встроены прямо в движок и ведут себя так же, как и PHx в Evolution. Синтаксис выглядит так:

Фильтры могут применяться последовательно. Для этого напишите их подряд (слева направо):

Также фильтры могут применяться для модификации вывода сниппетов. Фильтр нужно прописывать перед всеми параметрами (перед знаком вопроса):

Модификаторы вывода

В примерах ниже модификаторы применяются к плейсхолдерам, но они могут применяться к любым MODX тегам. Убедитесь, что используемый тег выводит хоть что-то, что модификатор будет обрабатывать.

Условные модификаторы вывода

МодификаторОписаниеПример использования
if, inputПередаёт произвольный текст на ввод, для следующего модификатора[[*id:input=`[[+placeholder]]`:is=`1`:then=`Да`:else=`Нет`]]
orОбъединение нескольких модификаторов связью ИЛИ[[+numbooks:is=`7`:or:is=`8`:then=`Здесь 7 или 8 книг`:else=`Не уверен, сколько книг`]]
andОбъединение нескольких модификаторов связью И[[+numbooks:gt=`7`:and:lt=`10`:then=`Здесь от 7 до 10 книг`:else=`Книг или меньше 7, или больше 10`]]
isequalto, isequal, equalto, equals, is, eqСравнивает передаваемое значение с установленным. Если значения совпадают, выводится значение «then», если нет — «else»[[+numbooks:isequalto=`7`:then=`Здесь 7 книг`:else=`Не уверен, сколько книг`]]
notequalto, notequals, isnt, isnot, neq, neСравнивает передаваемое значение с установленным. Если значения НЕ совпадают, выводится значение «then», если нет — «else»[[+numbooks:notequalto=`7`:then=`Не уверен, сколько книг`:else=`Здесь 7 книг`]]
greaterthanorequalto, equalorgreaterthen, ge, eg, isgte, gteТо же, только условие «Больше или равно»[[+numbooks:gte=`7`:then=`Здесь 7 книг или больше`:else=`Здесь меньше семи книг`]]
isgreaterthan, greaterthan, isgt, gtТо же, только условие «Строго больше»[[+numbooks:gt=`7`:then=`Здесь больше семи книг`:else=`Здесь 7 книг или меньше`]]
equaltoorlessthan, lessthanorequalto, el, le, islte, lteТо же, только условие «Меньше или равно»[[+numbooks:lte=`7`:then=`Здесь 7 книг или меньше`:else=`Здесь больше семи книг`]]
islowerthan, islessthan, lowerthan, lessthan, islt, ltТо же, только условие «Строго меньше»[[+numbooks:lte=`7`:then=`Здесь меньше семи книг`:else=`Здесь 7 книг или больше`]]
hideСкрывает элемент, если условие выполняется[[+numbooks:lt=`1`:hide]]
showОтображает элемент, если условие выполняется[[+numbooks:gt=`0`:show]]
thenИспользуется для составления условий[[+numbooks:gt=`0`:then=`Книги в наличии!`]]
elseИспользуется для составления условий (совместно с «then»)[[+numbooks:gt=`0`:then=`Книги в наличии!`:else=`Простите, но все продано.`]]
memberof, ismember, moПроверяет, является ли пользователь членом указанной группы пользователей[[!+modx.user.id:memberof=`Administrator`]]

Зачем они нужны и как ими пользоваться?

phx модификаторы облегчают жизнь modx разработчикам. Допустим у нас есть сайт с каруселью изображений (ну или с баннером), который нужно выводить только на главной странице. Для этого достаточно поместить его в отдельный чанк и затем вывести в шаблоне при помощи такой конструкции

Вместо *id, можно использовать и другие поля, например *template — выведет текущий используемый шаблон. Либо можно проверять заполнено или нет TV-поле (пусть будет *keywords) и если оно заполнено, то выводить его. Разберем данный случай поподробнее. Дано стандартная разметка:

Задача: не выводить эту строку, если TV keywords не заполнено, т.е. делаем проверку tv на пустоту и если оно не пустое, то выводим его.
Решение.

Нагрузки

Нужно следить за обработкой модификаторов, бездумное их использование вызовет лишние нагрузки. Вернемся к карусели, данная запись считывается слева направо и МОДХ выполняет все вложенные условия, в независимости от того, верное условие или нет, будет ли выводится на текущей странице содержимое [[$carusel]], в любом случае его содержимое обработается. В связи с этим более целесообразно переписать запись:

А вообще идеальный вывод будет выглядеть так.

Примечание! Вы можете комбинировать сколько угодно модификаторов под логику работы компонентов сайта, но главное помните, их основная суть — облегчить разработку, а не усложнять без того сложные задачи. Обычно, самый эффективный и действенный способ — это самый простой, так как чем проще и понятней конструкция — тем легче с ней будет работать в дальнейшем. Ниже перечислены основные модификаторы, которые можете использовать для любого тега МОДХ Рево.

Модификаторы для работы со строками

Модификаторы для работы с пользователями нужно вызывать некэшированными, чтобы каждый юзер видел актуальные данные.

Использование модификаторов вывода совместно с параметрами

Если у тега есть параметры, то их необходимо прописывать сразу после модификатора:

Создание пользовательского модификатора

Такой вызов тега передаст в сниппет makeExciting следующие параметры для обработки:

ПараметрЗначениеЗначение в примереКомментарий
inputЗначение элемента$input = `[[*pagetitle]]`;Значение элемента, к которому применяется модификатор.
optionsЗначение модификатора$options = 4 ;Дополнительные параметры (после знака = )
tokenТип элемента$token = * ;Cимвол, определяющий тип тега.
nameИмя элемента$name = `pagetitle`;Имя плейсхолдера, к которому применяется модификатор.
tagВесь тег полностью$tag = `[[*pagetitle:makeExciting=`4`]]`;Весь тег, полностью.

Приведем пример кода нашего сниппета makeExciting:

Тег выводит всё, что возвращает сниппет. В нашем случае он вернет значение тега [[*pagetitle]] с четырьмя восклицательными знаками.

Если сниппет вернет пустую строку, то на страницу будет выведено изначальное значение тега.

Цепочки фильтров (Множественные модификаторы)

Хорошим примером цепочки фильтров будет форматирование даты, например, так:

Модификатор UserInfo

Прямой доступ к данным из таблицы modx_user_attributes в базе данных, с помощью модификаторов вывода вместо сниппетов, может быть достигнуто просто за счет использования модификатора UserInfo. Выберите нужный столбец из таблицы и укажите его в качестве свойства модификатора, например, так:

Поле профиляПример
Внутренний ключ профиля[[!+modx.user.id:userinfo=`internalKey`]]
Логин[[!+modx.user.id:userinfo=`username`]]
Полное имя[[!+modx.user.id:userinfo=`fullname`]]
Роль[[!+modx.user.id:userinfo=`role`]]
E-mail[[!+modx.user.id:userinfo=`email`]]
Телефон[[!+modx.user.id:userinfo=`phone`]]
Мобильный телефон[[!+modx.user.id:userinfo=`mobilephone`]]
Факс[[!+modx.user.id:userinfo=`fax`]]
Дата рождения[[!+modx.user.id:userinfo=`dob`:date=`%Y-%m-%d`]]
Пол[[!+modx.user.id:userinfo=`gender`]]
Страна[[!+modx.user.id:userinfo=`country`]]
Область[[!+modx.user.id:userinfo=`state`]]
Почтовый индекс[[!+modx.user.id:userinfo=`zip`]]
Фото[[!+modx.user.id:userinfo=`photo`]]
Комментарий[[!+modx.user.id:userinfo=`comment`]]
Пароль[[!+modx.user.id:userinfo=`password`]]
Временный пароль[[!+modx.user.id:userinfo=`cachepwd`]]
Последняя авторизация[[!+modx.user.id:userinfo=`lastlogin`:date=`%Y-%m-%d`]]
Дата текущей авторизации[[!+modx.user.id:userinfo=`thislogin`:date=`%Y-%m-%d`]]
Количество авторизаций[[!+modx.user.id:userinfo=`logincount`]]

[[!+modx.user.id]] возвращает id вошедшего в систему пользователя. Конечно, вы можете заменить, его на [[*createdby]] или другое поле ресурса или даже на плейсхолдер, который возвращает числовое представление id пользователя.

Обратите внимание, что профиль текущего пользователя уже доступен в MODX по умолчанию, так что вам не нужно использовать модификатор UserInfo для него:

Особое внимание обращаем на восклицательный знак [[!+modx.user.id]]. Он позволяет НЕ кэшировать содержимое вывода. Почему нужно не кешировать? Представим это так: на сайте 5 пользователей. Первый пользователь зашел на страницу с вызовом:

По задумке на этой странице, выводится приветственное сообщение пользователю. Так вот, если результат будет кешироваться, то при первом входе на эту страницу — сохранится имя пользователя который только что зашел — и всем остальным будет показываться не их имя, а имя того пользователя который вошел на эту страницу первым. Чтобы этого избежать — просто не кэшируем этот тэг, с помощью восклицательного знака перед вызовом [[!+modx…

Самые ходовые (популярные) фильтры и модификаторы MODX

условия if else

Чтобы составить условие на существование в БД параметра modx и при условие, что оно не пустое, то пишем следующий скрипт.

Проверка на значение: Если id равен 7, то выводим значение, иначе выполняем другое действие.

Проверка на пустоту (empty)

К примеру у нас есть TV (дополнительное поле) «keywords» и соотвественно мета тег к нему и мы не хотим выводить его в код если поле пустое, тогда вывод будет следующим.

Обрезка текста (ellipsis)

Например, нам нужно вывести небольшой кусок текста (30 слов) пускай из поля content (содержимое — где редактор текста) и поставить в конце 3 точки.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *