Drupal 7:仅允许匿名访问者访问主页

发布于 2024-11-04 07:31:54 字数 103 浏览 0 评论 0原文

我正在 drupal 7 上构建一个管理系统。我不允许匿名用户查看已发布的内容(出于明显的原因),但我想让他们只查看一个页面,即主页,该页面有一个欢迎页面消息和登录表单。我怎样才能做到这一点?

I'm building an administration system on drupal 7. I'm not allowing anonymous users to view published content (for obvious reasons), but I'd like to allow them to view just one single page, the homepage, which has a welcome message and the login form. How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

你是年少的欢喜 2024-11-11 07:31:54

我通常为需要我使用的模块未提供的自定义功能的网站构建一个小模块,在这种情况下,您可以简单地在模块文件中使用以下内容构建一个模块。

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 文件,没有多余的装饰,如果你只是从另一个模块中打开一个来看看它们的外观,那么这是非常不言自明的。

以这种方式处理它的好处是可以灵活地将其他自定义功能添加到同一模块中。

I usually build a small module for sites that require custom functionality not provided by modules I use, in this case you could simply build a module with the following in the module file.

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']);
}

you need a .info file for the module with drupal, no frills, pretty self explanatory if you just open up one from another module to see how they look.

The benefit to handling it this way is the flexibility of adding other custom functionality to this same module down the line.

深爱不及久伴 2024-11-11 07:31:54

我喜欢特雷的回答,但你可以做得更简单。

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 确认没有核心方法可以做到这一点。 (您可以使用节点访问或首页模块,但我没有尝试它们,因为这太轻量级了。)

I like Trey's answer, but you can do it even more simply.

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();
}

This gives you a blank page for all users. Then create a block shown only to anonymous users and only on the front page (""). Create other blocks for other roles as needed. In this way, you don't need any special command to edit it.

Thanks Trey for confirming that there is no core way to do this. (You can use node access or front page modules, but I didn't try them because this is so lightweight.)

浅唱ヾ落雨殇 2024-11-11 07:31:54

我认为这个模块可以提供您所需要的。使用它,您可以启用每个内容的访问设置,以便您可以自定义每个内容节点的访问。

I think this module can provide what you need. With it you can enable per content access settings, so you can customize the access for each content node.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文