Drupal 7 Drupal 7:只允许匿名访问者访问主页
我正在Drupal7上构建一个管理系统。我不允许匿名用户查看已发布的内容(出于明显的原因),但我希望允许他们只查看一个页面,即主页,其中包含欢迎信息和登录表单。我该怎么做呢?我通常为需要自定义功能的站点构建一个小模块,而我使用的模块不提供自定义功能,在这种情况下,您只需在模块文件中使用以下内容构建一个模块即可Drupal 7 Drupal 7:只允许匿名访问者访问主页,drupal-7,Drupal 7,我正在Drupal7上构建一个管理系统。我不允许匿名用户查看已发布的内容(出于明显的原因),但我希望允许他们只查看一个页面,即主页,其中包含欢迎信息和登录表单。我该怎么做呢?我通常为需要自定义功能的站点构建一个小模块,而我使用的模块不提供自定义功能,在这种情况下,您只需在模块文件中使用以下内容构建一个模块即可 mymodule_menu(){ $items['homepage']=array( 'title' => 'Home' 'page callback' =>
mymodule_menu(){
$items['homepage']=array(
'title' => 'Home'
'page callback' => 'mymodule_homepage',
'access callback' => true,
'type' => MENU CALLBACK,
);
$items['homepage/edit']=array(
'title' => 'Edit Homepage'
'page callback' => 'drupal_get_form',
'page arguments' => array('mymodule_homepage_edit'),
'access arguments' => array('administer site configuration'),
'type' => MENU CALLBACK,
);
}
function mymodule_homepage(){
return variable_get('homepage_content','');
}
function mymodule_homepage_edit(){
$form['body']=array(
'#type' => 'textfield',
'#title' => 'Body',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit
);
}
function mymodule_homepage_edit_submit($form, $form_state=array()){
variable_set('homepage_content',$form_state['values']['body']);
}
使用drupal的模块需要一个.info文件,没有虚饰,如果您只是从另一个模块打开一个文件来查看它们的外观,那么它就很容易解释了
以这种方式处理的好处是,可以灵活地向同一模块添加其他自定义功能。我喜欢Trey的答案,但您可以做得更简单
function mymodule_menu(){
$items['homepage']=array(
'title' => 'Home',
'page callback' => 'mymodule_homepage',
'access callback' => TRUE,
);
}
function mymodule_homepage(){
drupal_set_title(t('Some welcoming title'));
return array();
}
这将为所有用户提供一个空白页。然后创建一个只显示给匿名用户并且只显示在首页(“”)上的块。根据需要为其他角色创建其他块。这样,您就不需要任何特殊命令来编辑它
感谢Trey确认没有核心方法可以做到这一点。(您可以使用节点访问或首页模块,但我没有尝试它们,因为这太轻量级了。)我认为可以提供您所需要的。使用它,您可以启用每内容访问设置,因此您可以自定义每个内容节点的访问。我不知道如何制作模块,但我会尝试一下。谢谢!这真的很简单,只需创建一个文件夹,其中包含您希望为模块指定的名称。。。说“MySiteMod”,然后在该文件夹中创建一个名为“MySiteMod.module”的文件,然后在
标记之间复制该文件中的上述代码,将“mymodule”的所有实例替换为“MySiteMod”,然后再创建一个名为“MySiteMod.info”的文件,正如我所说的,只需查看另一个模块信息文件,看看它们是如何编写的,您只需要定义名称和版本号等的前几行。