Вопрос по Minishop2
Доброй ночи, можно ли запретить менеджеру создавать категории minishop2 в админке выше 2-го или 3-его уровня вложенности?
Или запретить создавать дочерние категории там, где используется конкретный шаблон (например: подкатегория), под запретом понимается — исключить из контекстного меню пункт «Создать->Категорию с товарами»
Спасибо!
Или запретить создавать дочерние категории там, где используется конкретный шаблон (например: подкатегория), под запретом понимается — исключить из контекстного меню пункт «Создать->Категорию с товарами»
Спасибо!
Комментарии: 9
Неужели, такое никем не реализовывалось?
Актуальный вопрос -) ставлю miniShop2 только лишь для приемы payPall из коробки, мэнэджеру вообще не нужно создавать никогда никакие категории. Поэтому залез в файлик
core/components/minishop2/model/minishop2/mscategory.class.php
И закомментил
core/components/minishop2/model/minishop2/mscategory.class.php
И закомментил
public function getContextMenuText() {
$this->xpdo->lexicon->load('minishop2:default');
return array(
// 'text_create' => $this->xpdo->lexicon('ms2_category'),
// 'text_create_here' => $this->xpdo->lexicon('ms2_category_create_here'),
);
}
Только это решение это слабовато -) скорее через политику доступа можно настроить не выводить «создать категорию с товарами» — также как можно настроить через политику доступа не выводить «создать символичискую ссылку», и другие элементы.
Задача решается плагином на событие OnBeforeDocFormSave.
Готовых решений нет, тк универсальной такую вещь не сделать.
Готовых решений нет, тк универсальной такую вещь не сделать.
Вот что удалось найти по этой теме, несколько ссылок:
rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/custom-resource-classes/creating-a-resource-class
и
rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/custom-resource-classes/creating-a-resource-class/creating-a-resource-class-step-2
По событию «OnBeforeDocFormSave» нужно плагином расширять метод «getContextMenuText»? Или каком хотябы примерный механизм работы этого плагина?
rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/custom-resource-classes/creating-a-resource-class
и
rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/custom-resource-classes/creating-a-resource-class/creating-a-resource-class-step-2
По событию «OnBeforeDocFormSave» нужно плагином расширять метод «getContextMenuText»? Или каком хотябы примерный механизм работы этого плагина?
Насколько я понял Михаила, то в плагине будет проверка, в какой группе состоит юзер. Если проверка не прошла (юзер не в группе менеджеров), то ничего не делаем. Если проверка прошла (юзер — менеджер), то смотрим, каким по счёту от корня сайта будет наш документ (в данном случае категория). Если документ ниже разрешённой вложенности, то сообщаем юзеру это в виде ошибки.
Плагин не имеет ничего общего с расширением стандартных объектов. Посмотрите принцип работы плагина.
Что касается текущего вопроса, в плагине должны быть 2 проверки: группа пользователя и уровень вложенности. Если хотя бы одна из них не проходит, возвращайте из плагина false — ресурс сохранен не будет, а пользователь получит сообщение об ошибке.
Что касается текущего вопроса, в плагине должны быть 2 проверки: группа пользователя и уровень вложенности. Если хотя бы одна из них не проходит, возвращайте из плагина false — ресурс сохранен не будет, а пользователь получит сообщение об ошибке.
хм, странно, я думал ваше решение как-то относится к теме вот этого вопроса:
А с помощью плагина на событие OnBeforeDocFormSave — эт да, известная тема, можно кучу всяких проверок делать, и не позволять сохранять документ. С этим я согласен, куча методов решения, но они выходят за рамки данного вопроса. Речь идет о контекстном меню.
под запретом понимается — исключить из контекстного меню пункт «Создать->Категорию с товарами»на сколько я понимаю, это делается как раз таки с помощью расширения стандартных объектов.
А с помощью плагина на событие OnBeforeDocFormSave — эт да, известная тема, можно кучу всяких проверок делать, и не позволять сохранять документ. С этим я согласен, куча методов решения, но они выходят за рамки данного вопроса. Речь идет о контекстном меню.
Не обратил внимание, что речь об исключении пунктов контекстного меню.
Там не так просто это сделать, как может показаться… куда проще сделать так, как написал Михаил.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.