Одной из первых проблем с которыми я столкнулся при переходе на ModX Revolution, я не знал, как вывести имя категории (родителя) в анонсе статьи на главной странице. Несмотря на усилия, гугл давал весьма скудную информацию и по большей части по предыдущей ветке Evo. Так или иначе решение проблемы есть и сегодня я расскажу Вам как вывести имя категории на главной странице сайта в Modx Revolution .
Под ресурсом в CMS/CMF ModX понимаются любые страницы созданные в админке, это могут быть как обычные страницы на сайте (документы), так и обычные веб-ссылки, символические ссылки, статичный элемент или файлы. По умолчанию под ресурсом подразумевается документ, он же и является страницей на вашем интернет-сайте.
Ресурс может быть контейнером и выступать в роли каталога включая в себя группу других ресурсов. Пример:
Теперь мы знаем, что такое ресурс и перед нами возникла задача вывести имя родителя , другими словами контейнера в каждую запись в анонсе на сайте.
Для начала мы должны установить то, с помощью чего будем выводить, а именно пакет pdoTools, если он у Вас не установлен, то бегом заходим в установщик пакетов и ставим его, он включается множество сниппетов, которые нам помогут и именно с помощью него я вывожу все записи в блоге. Нам понадобится один из сниппетов которые входят в сборку pdoTools, а именно pdoField который выводит любое поле указанного ресурса или его родителя, включая TV параметры.
После установки пакета, открывает шаблон который отвечает за вывод анонса статьи и размещаем простой код
[]`&field=`pagetitle`]]
С помощью данного кода мы выводим на сайт имя ресурса-контейнера в котором находится текущий материал в виде ссылки с прописанным заголовком. Сохраняем шаблон, обновляем страницу и видим сниппет в работе. Надеюсь Вам помогла эта статья, подписывайтесь на блог и делитесь ссылкой с друзьями. До новых встреч.
Здесь я расскажу о том, как сделать некоторые страницы сайта закрытыми для неавторизованных пользователей, т.е. гостей. Это бывает нужно, когда необходимо сделать приватные разделы. Итак начнем.
Создаем группу пользователей, которым мы дадим доступ к закрытым страницам. Для этого открываем системное меню (в правом верхнем уголу) и выбираем пункт «Контроль доступа».
Нажимаем кнопку Новая группа пользователей.
Дальше нужно указать у только что созданной группы права доступа к контексту Web - Load, List and View
.
Теперь нужно создать группу ресурсов, в которую будут входить страницы для закрытого доступа. В верхнем меню админки выбираем пункт Содержимое > Группы ресурсов
. В открывшемся окне нажимаем кнопку Создать группу ресурсов. Заполняем поля в диалоге группы ресурсов.
Нажимаем кнопку Сохранить. Уже здесь мы можем добавить приватные страницы в группу ресурсов - из правой части мышкой переносим нужную страницу в группу ресурсов слева. Но настройка еще не закончена. Теперь нам нужно отредактировать права доступа к группе ресурсов, потому что MODX по-умолчанию дает неправильные права. Идем опять в «Контроль доступа» и меняем доступ к группе ресурсов у групп "(аноним)" и «Users» на Load only и Load, List and View .
Зачем анонимам давать доступ к закрытым ресурсам? Если не дать, то MODX не сможет загрузить страницу и выдаст код 404 «не найдено». А так MODX загрузит страницу, проверит права и отдаст 403 «доступ запрещен». Кстати, желательно в системной настройке unauthorized_page указать id страницы, на которую MODX будет перенаправлять не прошедших проверку пользователей.
Добавить любую страницу в группу ресурсов можно на странице самого ресурса на вкладке «Группы ресурсов» отметив соответствующий чекбокс.
На этом настройка закончена. Теперь, когда гость попытается открыть страницу для авторизованных пользователей, он будет перенаправлен на страницу, которую вы указали в системных настройках в ключе unauthorized_page .
21 декабря 2015, 12:28 0 5204Добрый день, дорогие читатели. Сегодня я расскажу как скрыть системные или не нужные для менеджера ресурсы из дерева документа на сайте под управление Modx Revolution (текущая версия 2.4.2 ). Для начала поймем для чего нам это нужно. В дереве документы у нас есть системные ресурсы, которые мы не показываем в меню. Это, скажем, sitemap, результаты поиска, 404 страница, Сайт не доступен и многие многие другие. И очень не хотелось бы, что обычный менеджер видел эти ресурсы в дереве документов. И в Modx Revolution предусмотрено это - их можно просто скрыть. Как это делается, я сейчас подробно опишу. В качестве примера я приведу один из моих сайтов. Его дерево документов выглядит так:
Мы видим, что здесь имеются системные ресурсы, которые не отображаются в меню: Sitemap, Корзина товаров, Результаты поиска и Оформление заказа. Нам нужно скрыть эти ресурсы от слишком любопытного менеджера, чтобы он там ничего не напортачил.
Заходим в Содержимое/Группы ресурсов
и нажимаем на кнопку «Создать группу ресурсов»
и создаем группу «Admin» (вы можете назвать по другому)
Никакие галочки не выставляем. Жмем кнопку «Сохранить»
Для это заходим в «Контроль доступа»
Кликаем правой кнопкой мыши по группе пользователей «Administrator» и жмем «редактировать группу пользователей»
Идем на вкладку «Права доступа»
Здесь идем во вкладку «Доступы к группам ресурсов»
И жмем кнопку «Добавить группу ресурсов»
Обновляем админку менеджера и видим, что ресурсы, которые мы добавили в группу ресурсов «Admin» исчезли.
Конечно при условии, если вы создавали админку менеджера по этой .
В следущий раз когда Вам нужно будет скрыть како-либо ресурс, Вы просто можете зайти в этот ресурс, нажать на «Группы пользователей» и отметить галочку напротив «Admin»
На этом у меня все, успехов Вам в освоении Modx Revolution и до новых уроков. Надеюсь помог. Добро.
В MODX есть интересная возможность - вы можете менять внешний вид формы редактирования ресурсов практически как вам хочется. Причем вы можете сделать разные формы для разных групп пользователей, и даже для разных ресурсов. Можно выбирать разные профили форм для данного ресурса в зависимости от его шаблона, родителя или других свойств.
И для этого нам не придется писать ни одной строчки кода!
Давайте, посмотрим, что, например, можно сделать с формами :
Во первых, уберем лишние пункты верхнего меню в один общий пункт - «Разработчику». Для этого заходим в раздел «Система» -> «Действия», создаем в корне новый пункт меню и перетаскиваем все ненужные пункты туда:
Дальше заходим в раздел «Безопасность» -> «Настройка форм» и создаем новый профиль, например, «Контент-менеджер». Потом нажимаем на нем правой кнопкой мыши и выбираем «Редактировать», переходим на вкладку «Группы пользователей» и добавляем группу, к которой будут применены новые правила.
Далее мы создаем новый набор правил. Их два вида - один для формы создания ресурса, второй - для формы его редактирования (create и update, соответственно). Этих правил может быть несколько - хоть по правилу для каждого ресурса.
После того, как правило будет создано, вы увидите страницу настройки - там три вкладки: Информация о наборе правил, Регионы, Дополнительные поля.
На первой вкладке перечислены стандартные поля ресурса. Их можно отключать или переименовывать. Регионы - это вкладки у ресурса. Вы можете создать новый регион и поместить туда некоторые ТВ-параметры, тогда они будут у ресурса не на вкладке «Дополнительные поля», а на новой вкладе - которую вы укажете. Здесь же можно отключать стандартные вкладки, например, «Группы ресурсов».
На третьей вкладке вы указываете расположение того или иного ТВ-параметра.
Я сделал небольшую шпаргалку по стандартным регионам:
Итак, давайте сразу уберем для пользователя все вкладки, кроме первой. Убираем галочки у регионов: modx-page-settings, modx-panel-resource-tv, modx-resource-access-permissions. Дальше - из стандартных полей оставим только pagetitle и alias. У остальных галочки убираем. Указываем новое название для поля pagetitle: «Заголовок новости» и alias: «Адрес страницы».
После этого переходим на вкладку «Дополнительные поля» и указываем, что ТВ-параметры должны находиться в той или иной области формы (в соответствии со шпаргалкой).
Осталось указать, для каких ресурсов действует это правило - в пункте «Шаблон» указваем, к ресурсам с каким шаблонам применять правило. Если правило для всех шаблонов, то ничего не указываем. И еще есть два пункта: «Ограничивающее поле» и «Ограничивающее значение». Здесь можно указывать остальные поля.
Давайте, укажем, что это правило относится к ресурсам, находящимся в «Новостях» - в пункте «Ограничивающее поле» пишем parent , а в «Ограничивающее значение» id ресурса «Новости», например, 22 .
Статья, в которой рассмотрим, как в MODX Revolution организована система прав доступа, а также некоторые типовые инструкции по настройки разрешений для пользователей.
MODX Revolution не позволяет напрямую назначать права пользователю. В этой системе данное действие осуществляется через группы пользователей .
Другими словами, для того чтобы пользователю предоставить некоторые права, необходимо:
Но нахождения пользователя в группе не означает то, что он получит все её привилегии. Права, которые получит пользователь, будут определяться с помощью отведённой ему в этой группе роли. Роль (ранг) пользователя в группе определяется с помощью числа от 0 до 9999. Это значение определяет, какие пользователь получит привилегии группы, а какие нет.
Другими словами роль – это некий механизм, который позволяет в пределах одной группы разным пользователям назначить разные права.
Разберём небольшой пример.
В этом примере:
Установление привилегий группе в MODX Revolution осуществляется с помощью политики доступа . Она (политика доступа) назначаются группе применительно к определённым сущностям MODX, а именно к контексту, группе ресурсов, категории элементов, источнику файлов и пространству имён. Кроме этого указывается ещё минимальная роль , которая нужна пользователю этой группы, чтобы иметь эти привилегии.
Рассмотрим изображение.
Привилегии, которые получают пользователи группы, в зависимости от того, какую роль каждый из них играет в ней
В этом примере:
Политика доступа – это набор прав, предоставляемый пользователю для совершения действий на сайте, работающем под управлением CMS MODX Revolution.
Почему это реализовано именно так? Это связано с тем, что прав в MODX очень много и их более удобно назначать группами (другими словами с помощью политики доступа), а не по одному.
Например, политика доступа Load, List and View имеет следующий набор разрешений:
При установке разрешений группе пользователей вы не ограничены только существующими (предустановленными) в системе MODX политиками. При необходимости вы можете создать новые. Создание политики в MODX осуществляется на основании шаблона политики доступа . Шаблон политики доступа – это сущность MODX Revolution, которая определяет максимальный список разрешений, доступный при создании политики доступа.
Таким образом, для того чтобы создать политику доступа с нужными разрешениями необходимо:
При создании политики доступа, всегда начинайте с назначения минимального количества прав, достаточных пользователю для совершения определённых действий в системе. При необходимости вы всегда сможете расширить предоставляемые пользователю разрешения.
В MODX Revolution любой не авторизированный посетитель сайта является анонимным и принадлежит к группе (аноним) . В этом легко убедится, если создать следующий сниппет, поместить его вызов в шаблон ресурса, а затем открыть страницу.
Php код сниппета GetUser:
user->get("username");
Вызов сниппета на странице:
[[!GetUser]]
Результат работы:
(anonymous)
Действия анонимных пользователей на сайте в MODX регулируются посредством настройки разрешений группы (аноним) . При необходимости вы можете этой группе дать дополнительные привилегии или ограничить их.
В этом разделе рассмотрим инструкции, которые можно использовать, когда вам необходимо:
Рассмотрим пример, в котором ограничим доступ анонимным пользователям к определённым ресурсам (например, к личному кабинету, к странице «Изменения пароля» и т.п.). Доступ к этим ресурсам предоставим только зарегистрированным пользователям.
Чтобы это осуществить необходимо:
После этого, любой анонимный или другой пользователь (у которого нет прав) получит 404 ресурс (т.к. у него нет даже права load ), если он попытается открыть какую-ту страницу из этой группы.
Если же вы хотите анонимных пользователей, при открытии защищённых страниц, пересылать на какую-то другую (например, авторизации), то необходимо выполнить дополнительно ещё следующее (а именно дать право load для этой группы ресурсов):
В этом примере создадим группу «Managers», пользователи которой смогут в админке загружать изображения в директорию и работать с определёнными ресурсами.
Чтобы это осуществить можно, например, воспользоваться следующей инструкцией:
1. Создать новую политику доступа Manager с необходимыми правами:
2. Скрыть ресурсы, к которым менеджеры не должны иметь доступ в админке:
3. Предоставить доступ к директории, в которую пользователь будет загружать картинки.
Источник файлов, не имеющий связанной с ним группы пользователей, будет доступен всем пользователем бэкэнда. Поэтому чтобы для пользователей группы Managers не показывались другие источники файлов, которые не связаны не с одной группы, их, например, можно назначить группе пользователей Administrator.
MODX - Связывание источника файлов Filesystem с группой Administrator
Система разграничения доступа MODX при помощи источника файлов позволяет различным пользователям задать определённые каталоги, к которым они будут иметь доступ, а также определить набор их привилегий в них. Другими словами - это система, которая с помощью которой, например, одним пользователям можно дать одни каталоги, а другим - другие.
4. Создать новую группу пользователей и назначить ей необходимые права.
5. Создать пользователя и добавить его в группу «Manager». В качестве значения роли установить ему число 9999 (Member). Данной роли ему будет достаточно, чтобы получить все разрешения данной группы. Это связано с тем, что для этой группы мы не назначали политики доступа для которых потребовалось бы роль больше чем 9999.
Добавление пользователя в группу Manager (роль Member)