我正在尝试将登录表单添加到拒绝访问页面,并想知道是否可以通过UI进行操作。
有什么建议/想法吗?
我正在尝试将登录表单添加到拒绝访问页面,并想知道是否可以通过UI进行操作。
有什么建议/想法吗?
Answers:
这里的另一个解决方案是LoginToboggan模块。它为登录功能提供了许多不同的增强功能。
logintoboggan模块通过提供以下功能和可用性改进来对外部模块中的drupal登录系统进行一些修改:
- 允许用户使用其用户名或电子邮件地址登录。
- 允许用户立即登录。
- 在非登录(匿名)用户的拒绝访问页面上提供登录表单。
- 该模块提供了两个登录块选项:一个使用javascript在单击“登录”后立即在块内显示表单。另一个将用户带到单独的页面,但在登录后将用户返回到其原始页面。
- 使用两个电子邮件字段来自定义注册表单,以确保准确性。
- 使用“立即登录”功能时,可以选择将用户重定向到特定页面。
- 验证用户的电子邮件地址后,可以选择将用户重定向到特定页面。
- (可选)显示一条指示成功登录的用户消息。
- (可选)将登录表单和注册表单合并在一页上。
- (可选)以预先定义的时间间隔从系统清除未经验证的用户(请参阅install.txt的注意事项部分,以获取有关配置此功能的重要信息!)。
- 与规则模块集成,以在用户通过电子邮件验证过程进行验证时执行各种任务(有关示例,请参见 http://drupal.org/node/880904)
设置配置表单具有称为拒绝访问时当前登录表单的选项(403),用于打开/关闭此确切功能。
该CustomError模块允许网站管理员创建HTTP自定义错误页的状态代码403(拒绝访问)和404(未找到),无需为他们每个人创建节点。有关其功能的更多详细信息(来自其项目页面):
- 可配置的页面标题和描述。
- 没有普通节点那样的作者和日期/时间标题。
- 可以将任何HTML格式的文本放在页面正文中。
- 错误页面是可修复的。
- 未登录并尝试访问需要登录的区域的用户将被重定向到他们登录后尝试访问的页面。
- 允许404自定义重定向。
您应该对以下部分感兴趣:“ 未登录并尝试访问需要登录的区域的用户将被重定向到他们登录后试图访问的页面。 ”。
“为“拒绝访问的页面”添加设置并在该页面上显示“用户登录”块”确实是一种可行的解决方案。但是,您可以采取进一步的措施,并增强AbitMORE的用户体验。通过使用关于“ 如何使用“规则”模块将匿名用户重定向到登录页面? ” 问题的答案中描述的方法的变体。
为此,假定“默认403”页面的路径设置为“ no_access”(通过/admin/config/system/site-information该管理页面底部附近的)。然后建立一个规则的规则模块,以作为事件类似“访问节点‘no_access’后”。这样整个规则看起来像这样:
条件:
Parameter: User: [site:current-user], Roles: anonymous userParameter: Text: [site:current-page:url], Matching text: user/login操作: 页面重定向 -Parameter: URL: user/login
如果要这样做,您甚至可以添加另一个Action,以在Drupal消息区域中显示一些(信息性)消息,例如“您试图访问需要登录的页面...”。
是的,可能需要您启用额外的贡献模块(规则)。但是,正如它的日益流行所表明的那样,该模块可能已在几乎所有站点中启用(类似于Views模块),因为该模块有数十个用例。这个问题的1个变化:如何以类似的方式增强“找不到页面”的用户体验?
作为“动作”规则(重定向到user/login)的替代方法,另一种变体是创建一些指定的节点,例如使用“ my_login_page_with_login_block”之类的路径。然后将其与配置“用户登录”块(通过admin/structure/block)结合起来,如下所示:
configure用户登录组右侧的“ ”链接,为“ Pages ” 设置 “ 可见性设置 ”。即,将“ 在特定页面上显示块 ”的选项更改为“ 仅列出的页面 ”,然后在其下方的文本框中指定路径()。如果由于某种原因您不想使用路径,那么只需指定node / nid(nid =节点的ID)作为路径即可。my_login_page_with_login_block如果没有LoginToboggan模块,则可以将用户登录块配置为在指定页面上可见,并且仅限匿名用户使用。在“用户登录”块的“可见性”设置中:
在“页面”选项卡中,将“在特定页面上显示块”设置为“仅列出的页面”,然后输入页面。
在“角色”标签中,为“显示特定角色的角色”设置选中“匿名用户”。