Модификация модуля devel - PullRequest
1 голос
/ 31 июля 2010

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

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

http://ftp.drupal.org/files/projects/devel-6.x-1.20.tar.gz

Ответы [ 2 ]

2 голосов
/ 31 июля 2010

См.

function devel_generate_content_add_node(&$results) {

Существует $users = $results['users'];, который содержит «неправильных пользователей». Вы можете взломать пользователей там, или убедиться, что они не добавлены в первую очередь.

что происходит в

function devel_get_users() {
  $users = array();
  $result = db_query_range("SELECT uid FROM {users}", 0, 50);
  while($user = db_fetch_object($result)){
    $users[] = $user->uid;
  }
  return $users;
}

Вам необходимо изменить этот метод, чтобы он возвращал только пользователей с определенными разрешениями. Вы можете опустить неверных пользователей в цикле while; используя доступ к узлу .

Однако эта процедура devel_get_users вызывается и для других вещей, поэтому вы, вероятно, захотите достичь всего этого либо с помощью нового метода devel_get_permissioned_users($perm), либо с помощью необязательного аргумента.

1 голос
/ 31 июля 2010

Я думаю, что есть некоторое несоответствие между тем, что вы пытаетесь сделать, и тем, как работает Devel. Для использования Devel generate требуется разрешение administer nodes: это означает, что любой, кто может использовать Devel generate, может уже администрировать все типы контента.

Если вы пытаетесь заставить генератор Devel работать без разрешения administer nodes, не делайте этого. Это модуль разработки для создания фиктивных данных: его никогда нельзя запускать как непривилегированный пользователь.

Чего ты хочешь достичь?

...