繁体   English   中英

如何在drupal中以编程方式访问模块?

[英]How do i give access to a module programmatically in drupal?

基于某些条件我想要访问模块。

if(abc == abc) {
  //give access to module xyz.
}

没有像在Drupal中访问整个模块那样的概念,只有模块可以定义的页面。 通常这是通过实现hook_menu()来定义页面然后提供access callbackaccess arguments

第一个定义了一个函数,它将被调用以进行访问决策:

function mymodule_menu() {
  $items['some/path'] = array(
    'title' => 'Some Title',
    'page callback' => 'mymodule_callback',
    'access callback' => 'mymodule_some_path_access'
  );

  return $items;
}

function mymodule_some_path_access() {
  global $user;

  if ($user->foo == 'bar') {
    // Access allowed, return TRUE
    return TRUE;
  }

  // Access not allowed, return FALSE
  return FALSE;
}

第二个定义将传递给user_access函数的参数。 这通常基于您的模块提供的权限:

function mymodule_menu() {
  $items['some/path'] = array(
    'title' => 'Some Title',
    'page callback' => 'mymodule_callback',
    'access arguments' => array('access mymodule')
  );

  return $items;
}

function mymodule_perm() {
  return array(
    'access mymodule'
  );
}

在第二个示例中,除非用户具有“访问mymodule”权限(如Drupal的权限管理区域中所定义),否则将拒绝用户访问。

希望有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM