我在drupal 7上构建了一个管理系统。我不允许匿名用户查看发布的内容(出于显而易见的原因),但我想让他们查看只有一个页面,主页,它有一个欢迎消息和登录表单。我怎样才能做到这一点?Drupal 7:只允许匿名访问者的主页
3
A
回答
3
我通常为需要自定义功能的站点构建一个小模块,这些功能不是由我使用的模块提供的,在这种情况下,您可以在模块文件中简单地构建一个模块。
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文件,如果你只是从另一个模块开辟一个看他们怎么看。
以这种方式处理它的好处是可以灵活地将其他自定义功能添加到同一模块中。
2
我喜欢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确认没有核心方式来做到这一点。 (您可以使用节点访问或前台页面模块,但我没有尝试它们,因为它太轻巧了。)
0
我认为this module可以提供您所需的功能。有了它,您可以启用每个内容访问设置,以便您可以自定义每个内容节点的访问权限。
相关问题
- 1. 允许匿名访问默认页面
- 2. 如何只允许匿名访问网站的首页?
- 3. 我如何只允许一个访问者访问页面
- 4. 允许匿名访问MVC4操作
- 5. 允许匿名访问SQL Server 2008
- 6. 春季安全 - 允许匿名访问
- 7. 不允许匿名用户访问Sonar
- 8. 的Drupal允许匿名评论
- 9. Drupal 7 Webform - 允许匿名用户编辑以前的提交
- 10. 允许来自本地主机的SVN匿名读取访问
- 11. Drupal错误地允许匿名用户访问单个编辑页面
- 12. 允许匿名创建页面
- 13. Drupal 7-匿名用户拒绝访问某些页面
- 14. 如何允许匿名访问只有一个控制器?
- 15. 允许匿名访问SharePoint站点中的特定页面
- 16. 只允许通过Apache访问域名
- 17. 只允许Selenium访问该页面
- 18. Drupal 7匿名评论,禁用主页字段
- 19. Drupal - 访问匿名用户的路径
- 20. 如何允许匿名访问者,但不允许在ASP.NET MVC 5中的操作方法登录用户?
- 21. 只允许用户访问drupal 6中的一个模块
- 22. 允许匿名访问的ASMX Web服务
- 23. Artifactory:Maven发现的文件,如果允许匿名访问
- 24. 允许匿名访问Asp.Net中的特殊文件
- 25. 允许匿名用户访问Orchard中的特定URL CMS
- 26. 允许匿名用户仅访问ASP.NET中的登录和注册页面
- 27. Drupal - 匿名用户“拒绝访问”
- 28. 如何从PHP 7中的匿名访问主类的实例?
- 29. 访问Drupal 7
- 30. drupal只允许访问一个内容给认证用户
我不知道如何制作一个模块,但我会试一试。非常感谢! – Janoma 2011-05-22 22:20:23
这真的很容易,只需创建一个文件夹,其中包含您希望为您的模块命名的名称...“MySiteMod”,然后在该文件夹内创建一个名为“MySiteMod.module”的文件,然后将上面的代码复制到该文件中在''标签之间,将所有“mymodule”实例替换为“MySiteMod”,然后再创建一个名为“MySiteMod.info”的文件,正如我刚才所说的,只是查看另一个模块信息文件来了解这些文件的写法,需要定义名称和版本号的前几行 – Trey 2011-05-23 21:57:19