Лимит по node

Главные вкладки

Аватар пользователя Alex_Black Alex_Black 16 июня 2013 в 19:27

У меня такая проблема если есть решение буду благодарен.
У меня сайт на Drupal 7 стоит модуль Node Limit - это модуль который делает ограничения по нодам для определенных ролей.
Так вот я задал лимит авторизованным пользователям создавать не белее 3-х нод, пользователям vip до 100 нод, пользователям с ролями модератор неограниченное кол-во. И получается то, что ограничение создание до 3-х нод действует на все роли. Что можно сделать не кто не подскажет.

Комментарии

Аватар пользователя imarat imarat 16 июня 2013 в 21:19

решения нет, но можно самому написать если чуток кодить умеете
для количества создать у юзера поле
+ https://drupal.org/project/field_permissions
+ https://api.drupal.org/api/drupal/modules!node!node.api.php/function/hoo...
+ http://www.bywombats.com/blog/ryan/10-25-2007/checking-if-drupal-user-ha...

Аватар пользователя Alex_Black Alex_Black 16 июня 2013 в 21:25

С кодом как разтоки туго. Немного.
Я на предыдущем сайте обходил это создав две совершенно одинаковые ноды
Но это не выход из положения конечно.

Аватар пользователя Alex_Black Alex_Black 10 ноября 2015 в 11:49

А можно как то убрать все галочки в ролях пользователя и оставить только одну нужную. Просто я думаю мож быть в этом проблема. Ток как стоит две галочки. То есть две роли у одного пользователя.

Аватар пользователя Alex_Black Alex_Black 17 июня 2013 в 23:25

Спасибо но я все сделал. И работает на ура. Просто сделал для удобства один дополнительный модуль, который помогает модулю node limit. И происходит следующее то что я хотел:
1. Есть Анонимный пользователь, авторизованный пользователь, автосалон, модератор, админ
- Анонимный пользователь (добавляет объявление и автоматически регистрируется, и становится авторизованный пользователем автоматически, который может добавить до 3-х объявлений. После чего ему не e-mail приходит сообщение то что он превысил лимит. Но может он его поднять за отдельную плату)
- Если пользователь захотел стать автосалоном у которого есть ограничение до 100 объявлений он просто делает оплату, и автоматом авторизованный пользователь становится автосалоном с ограничение до 100 объявлений
- ну и у роли модератор могут туже ноду добавлять неограниченное кол-во раз. Но это право может им сделать только админ.

И сам смысл в том, что это все продлевается только с одной нодой, а не с несолькими, но с несколькими ролями. И все это на Drupal 7 ))))))))

Аватар пользователя iNFerNo iNFerNo 18 июня 2013 в 8:57

код модуля то выложите.

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

Аватар пользователя Alex_Black Alex_Black 18 июня 2013 в 10:10

у каждой роли разный лимит.
У зарегистрированый пользователь лимит к примеру 3 ноды
У модератора к примеру неограниченно
У роль автосалон 100 нод лимит
У админа неограниченное

и можно создать сколько хочешь ролей и каждой роли назначить определенное количество создания ноды к примеру node Artical.

Аватар пользователя Alex_Black Alex_Black 18 июня 2013 в 11:27

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

Аватар пользователя iNFerNo iNFerNo 18 июня 2013 в 12:19

"Alex_Black" wrote:
у каждой роли разный лимит.
У зарегистрированый пользователь лимит к примеру 3 ноды
У модератора к примеру неограниченно
У роль автосалон 100 нод лимит
У админа неограниченное

и можно создать сколько хочешь ролей и каждой роли назначить определенное количество создания ноды к примеру node Artical.

это все понятно. но вы пишите вверху что какая то проблема была если у юзера 2 роли одна из которых на 3 лимита другая на неогр. А по итогу все равно 3 лимита.

Аватар пользователя iNFerNo iNFerNo 18 июня 2013 в 12:26

"Alex_Black" wrote:
Я выложил модуль и расписал как им пользоватся на одном из моих сайтов .

у вас мильон сайтов в загашнике?

Аватар пользователя iNFerNo iNFerNo 18 июня 2013 в 12:42

А зачем было нужно писать модуль, когда можно все сделать rules (любую роль назаначить при любом действии на сайте), да и есть др модули которые добавляют в функционал ядра опцию назначения дополнительной роли (если к примеру модуля рулес нет в системе).

Расскажите смысл создания модуля ?
Роль зарег юзер вшит же в ядро и если правило, как вы говорите в лимит ноде создано для этой роли, то для всех зарег юзеров будет срабатывать это правило. А другие игнорироваться???

Собственно говоря не понятно что вы сделали такого что бы у юзера с двумя ролями был лимит создания нод по максимальному правилу модуля лимит ноде.

Аватар пользователя Alex_Black Alex_Black 18 июня 2013 в 12:47

на то что бы сделать модуль у меня ушло 10 минут, и что бы он работал так как мне надо без всяких глюков + по миненуму грузил систему. А что бы разобраться в сторонних модулях надо врея терпение и т.п. Проще самому что то сделать чем искать и потом переделывать под себя. Можно было и в ядро друпал просто 5 строчек дописать и все. Но я решил упростить все для других людей. Которые только начинают работать с drupal

Аватар пользователя iNFerNo iNFerNo 18 июня 2013 в 12:51

Логично.

Но все же объясните нубу как вы вышли из проблемы то с юзерами с двумя ролями.

Я юзер у меня роль - зарегистрированный (лимит 1 ноды) + роль модератор (лимит 100 нод)

Что придумано в вашем модуле (сайте) что бы работало правило для роли модератор-то.

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

Аватар пользователя Alex_Black Alex_Black 18 июня 2013 в 12:52

Я хотел добиться результата затратив минимум времени и минимум кода и все по минимум и это получилось. И по мойму проще использовать мой модуль чем мучатся с этим rules. Так как настройки просты и понятны и результат 100% работает.

Аватар пользователя iNFerNo iNFerNo 18 июня 2013 в 12:58

Это все понятно.

Но если у юзера 2 роли.

авторизированный юзер + моедератор
или зарегистрированный юзер + модератор (авторизированный не считаем уже, а то было бы три тогда роли).

как в этом случае, если по вашим словам в лимит ноде баг. и модуль решает только задачу для 1 роли юзера.

Аватар пользователя Alex_Black Alex_Black 18 июня 2013 в 13:11

Что бы работало создаете роли к примеру

  1. user
  2. moderator

В настройках моего модуля выбираете ту роль которая будет присваивать зарегистрированному пользователя автоматом (Роль ту которую создали, одна из тех которую создали к примеру user)
Потом в настройках node limit делаете ограничения на конкретные роли которые создали не трогая стандартную роль "авторизованный пользователь"
И все.
А потом если кто то из пользователей попросит добавления ноды без ограничений. Просто снимите галочку у него с роли User и поставьте галочку на другую роль к примеру moderator у которой нет ограничений.

Что тут сложного ??

Аватар пользователя Alex_Black Alex_Black 18 июня 2013 в 13:14

А если вы в node limit проставите ограничения для всех ролей то есть для
стандартную роли "авторизованный пользователь" максимум 3 ноды создать
для moderator нет ограничений
то для всех применится одно ограничение максимум три ноды.

Аватар пользователя Alex_Black Alex_Black 18 июня 2013 в 13:15

Я же писал что за проблема была выше "на Drupal 7 стоит модуль Node Limit - это модуль который делает ограничения по нодам для определенных ролей.
Так вот я задал лимит авторизованным пользователям создавать не белее 3-х нод, пользователям vip до 100 нод, пользователям с ролями модератор неограниченное кол-во. И получается то, что ограничение создание до 3-х нод действует на все роли."

Аватар пользователя iNFerNo iNFerNo 18 июня 2013 в 13:28

Вы все пишите для своего случая где 1 юзер - 1 роль

Я и думал что вы решили проблемы модуля что бы 1 юзер - 2 , 3 ,4 1000 ролей и лимитка по созданию нод бралась бы по факту с максимальным вариантом.

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

Да и есть уже модуль автоматического присвоение роли при регистрации (если уже правило для модуля рулеса лениво написать 2-3 клика). Для нубов это еще проще... Программить то ничего не нужно.