修改devel模块

时间:2010-07-31 05:20:08

标签: php drupal open-source content-management-system module

我正在尝试修改devel generate模块,以防止没有生成此内容类型权限的用户生成内容。

问题是我对drupal相当新,所以我不熟悉它的钩子。有人能给我一些提示如何处理这个问题。

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

2 个答案:

答案 0 :(得分:2)

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循环中省略不正确的用户;使用node access

但是,这个devel_get_users例程也被调用用于其他事情,因此您可能希望在新方法devel_get_permissioned_users($perm)中或通过引入可选参数来实现所有这些。

答案 1 :(得分:1)

我认为您尝试做的事与Devel生成的工作方式之间存在一些脱节。要使用Devel生成需要administer nodes权限:这意味着任何可以使用Devel生成的人都可以管理所有内容类型。

如果您尝试在没有administer nodes权限的情况下让Devel生成工作,请不要。它是一个用于创建虚拟数据的开发模块:它永远不应该作为非特权用户运行。

你想要完成的是什么?