如何在完全单独的页面上显示用户登录表单? [复制] -- 7 领域 和 forms 领域 和 users 领域 drupal 相关 的问题

How to show a user login form on a completely separate page? [duplicate]


1
vote

问题

中文
这个问题已经在这里有答案
仅显示登录页面 (3个答案)
关闭 4年前

我正在开发一个应用程序,我想从匿名用户限制一切。如果有人尝试直接从URL访问任何页面,则将重定向到登录页面。怎么办?

我也想要在完全独立的页面中显示登录页面,其中应该没有菜单或任何其他链接,只是登录表单(例如:google登录页面)。做这个的最好方式是什么。

英文原文

I am developing a application where I want to restrict everything from anonymous users. If anyone tries to access any page from url directly they will be redirected to login page. How to do this?

Also I want show the login page in a completely separate page where there should be no menu or any other links, just the login form (like for example: google login page). What is the best way to do this.

        
 
 

回答列表

0
 
vote
vote
最佳答案
 

随着Lynbermt的建议,您可以在 admin/people/permissions 中轻松删除从匿名用户执行任何操作的权限。有一些其他伟大的附加组件:

  • 在面板模块中创建一个403页面并添加登录表单,使其仅可见为匿名用户
  • admin/structure/block 上激活登录块,以便无论匿名用户始终可见,无论是什么页面
  • 删除主页面上的任何其他内容,或使一切不可见于匿名用户(面板窗格,块等)

它基本上只需要大量的测试,浏览作为匿名用户,看看是什么可见的,然后去隐藏它。并谨防!每次添加新模块或功能,都应该尽可能多地重新测试,以确保匿名用户无法获得任何内容。警觉。每个模块都有自己的新权限来配置,安全风险为观察等。

 

As lynbermt suggests, you can easily remove permission to do anything at all from the anonymous user at admin/people/permissions. There are a few other great add-ons to this:

  • Create a 403 page in the Panels module and add a login form, making it visible only to anonymous users
  • Activate the login block at admin/structure/block so that it's always visible to anonymous users no matter what page they're on
  • Remove anything else from the main page, or make everything invisible to anonymous users (panels panes, blocks, etc.)

It will basically just take a lot of testing, browsing around as an anonymous user to see what's visible and then go hide it. And beware! Every time you add a new module or bit of functionality you should re-test as much of it as possible to make sure that an anonymous user can't get at anything. Vigilance. Each module will have its own new permissions to configure, security risks to watch out for, etc.

 
 
   
   
0
 
vote

最简单的方法是从/ admin / people / permissions中删除匿名用户的所有权限,然后在/ admin / config / system / site-deligury中设置403页面到/用户。

 

Easiest way would be to remove all permissions from the anonymous user at /admin/people/permissions and then set the 403 page on /admin/config/system/site-information to /user.

 
 
0
 
vote

如果有人尝试直接从URL访问任何页面,它们将被重定向到登录页面。

使用规则模块创建规则,如此如此:

  • 事件: drupal正在初始化
  • 条件:

    1. 用户具有作用(s) - Parameter: User: [site:current-user], Roles: anonymous user
    2. 不是文本比较 - Parameter: Text: [site:current-page:url], Matching text: user/login
  • 动作: 页面重定向 - 99887664

...登录页面在完全独立的页面,在那里应该没有菜单或任何其他链接。

对于登录页面上显示的任何块(例如与主菜单,导航菜单等的菜单块相关),请设置块可见性设置,以便为匿名用户显示这些块。

 

If anyone tries to access any page from url directly they will be redirected to login page.

Create a rule using the Rules module, which looks like so:

  • Event: Drupal is initializing
  • Conditions:

    1. User has role(s) - Parameter: User: [site:current-user], Roles: anonymous user
    2. NOT Text comparison - Parameter: Text: [site:current-page:url], Matching text: user/login
  • Actions: Page redirect - Parameter: URL: user/login

... login page in a completely separate page where there should be no menu or any other links.

For any blocks shown on the login page (eg related to menu blocks for primary menu, navigation menu, etc), set the block visibility settings so that these blocks are not shown for anonymous users.

 
 
     
     
0
 
vote

如果有人试图直接从URL访问任何页面,他们将是 重定向到登录页面。

您可以使用:

需要登录

无论用户如何,都需要在所有页面上进行用户身份验证(登录) 角色权限设置。

特征

  • 使所有页面都需要用户登录的能力。
  • 轻松排除从要求用户登录的路径。
  • 自定义需要登录用户消息。

我也想要在完全独立的页面中显示登录页面 应该没有菜单或任何其他链接

您可以使用自定义路径创建自定义模块: /login 使用 Drupal渲染登录表单以编程方式或打印注册并在同一页面上登录表格以显示表单。

制作page.tpl.php的副本,并将副本重命名为ex:page - login.tpl.php。编辑文件并删除打印菜单部分。

 

If anyone tries to access any page from url directly they will be redirected to login page.

You could use:

Require Login

Require user authentication (login) on all pages, regardless of user role permission settings.

Features

  • Ability to make all pages require user login.
  • Easily exclude paths from requiring user login.
  • Customize require login user message.

Also I want show the login page in a completely separate page where there should be no menu or any other links

You can create a custom module with a custom path Ex: /login use Drupal render login form programatically or Print registration and login forms on same page to display the form.

Make a copy of page.tpl.php and rename the copy to Ex: page--login.tpl.php. Edit the file and delete the print menu part.

 
 
0
 
vote

谢谢所有人的所有建议。我在做谷歌后找到答案。

1)限制来自匿名用户的所有内容。

我在自定义模块init hook中添加了以下代码

  function mymodule_init(){ $login_path =  'user/login'; if (user_is_anonymous() && current_path() != $login_path) {   $path = $_GET['destination'];   $destination = array('destination' => $path);   header('Location: ' . url($login_path, array('query' => $destination, 'absolute' => TRUE)), TRUE);  drupal_exit();  } }    

2)在完全分开的页面中显示登录页面

在我的主题文件夹中添加了"页面 - 用户 - login.tpl.php" ,并呈现使用以下代码 -

  <?php  print(drupal_render(drupal_get_form('user_login_block'))); ?>   

这是它。任何更多的建议都非常感谢。

 

Thanks all for all your suggestions. I find the answer after doing some google.

1) restrict everything from anonymous users.

I added the following code in my custom module init hook

function mymodule_init(){ $login_path =  'user/login'; if (user_is_anonymous() && current_path() != $login_path) {   $path = $_GET['destination'];   $destination = array('destination' => $path);   header('Location: ' . url($login_path, array('query' => $destination, 'absolute' => TRUE)), TRUE);  drupal_exit();  } }  

2) show the login page in a completely separate page

For this I added "page--user--login.tpl.php" in my theme folder and rendered the login form with the following code-

<?php  print(drupal_render(drupal_get_form('user_login_block'))); ?> 

Thats it. Any more suggestion greatly appreciated.

 
 

相关问题

4  删除节点有300,000条评论时500错误  ( 500 error when deleting node with 300 000 comments ) 
我有一个已垃圾邮件的节点,有300,000个评论。每当我尝试删除它时,我会得到500个内部服务器错误。 通过数据库删除所有注释不是一个选项,因为我需要在其他节点上保留大量合法注释。但是,此特定节点已被垃圾邮件发送,我希望删除节点和所有关联注释,但我不能。我已经禁用了节点的评论,但我如何删除这些评论?任何想法? ...

1  MailJet HTML和跟踪  ( Mailjet html and tracking ) 
由于模块开发人员没有响应 https://www.drupal.org/node / 2032343 &amp; https://www.drupal.org/node/2611824 我在这里尝试运气: 我有一个网站通过两个规则和simplenews发送电子邮件。我已经安装了MailJet,mailsystem...

2  商务添加产品属性而无需添加新产品变体  ( Commerce add product attribute without adding new product variations ) 
我已发现此商务手册:产品属性&amp;变型,它解释了字段,属性和变体之间的差异和连接,其中它们在最后分配给每个产品显示的不同产品。 我所处的情况如下。让我们说我卖午餐盒。相同的型号有5种颜色,盖子总是白色。但现在我想向商店添加一个选择,人们可以以与午餐盒相同的颜色订购盖子。我的SKU是如下: 午餐盒_red j...

0  我应该调用一个函数来在自定义内容类型模板中查询数据库吗?  ( Should i call a function to query the database in a custom content type template ) 
我在模板中调用以下函数,以进行自定义内容类型,但我的高级开发人员建议调用模板文件中的函数不是Drupal标准。 function some_function($AA_tid = 0) { $dis_pt = db_select('some_tble', 'v') ->fields('v', arra...

0  渲染地址菲尔德  ( Rendering addressfield ) 
在我的Drupal 7 Commerce网站上,我有我的结账页面,它将添加我的结算和运输配置文件。我需要只显示我的送货地址和帐单地址,而不是输入字段。 (从ERP后端提供的数据。) 所以我隐藏了一个输入字段。现在我想渲染addresfield值并将其添加到我的表单中以供显示。但我似乎无法这样做。 我的表单中有以下代码...

2  多语种分类观点 - 实体翻译  ( Multilingual taxonomy views entity translation ) 
我正在尝试使用 Entity翻译。到目前为止,即使在使用语言代码时,我也卡住了英语视图。 我正在寻找这个需要的步骤。最简单,我正在尝试根据语言创建分类术语的块或页面。 任何建议? ...

-1  有没有办法将自定义类/包装器添加到页面节点,类似于使用视图创建的页面?  ( Is there a way to add custom classes wrappers to page nodes similar to pages cr ) 
我正在研究设计师提出的5个主题颜色,我需要与特定页面相关联。主题有2个区域需要受主题颜色的影响:侧边栏和内容。 我希望将一个字段添加到基本页面内容类型链接到分类词词汇表,其中术语将是颜色,所以我可以在创建页面时选择主题。我需要将一个类添加一个术语高度,足以影响页面内容类型的所有其他字段。 这将是在视图中的行等级,其中...

1  如何用破碎的URL删除分类学期  ( How to delete a taxonomy term with a broken url ) 
我试图改变分类学术语指向的URL,以便点击它将将用户带到地图。但是,在更改URL之后,我不再能够进入术语来编辑值。 我如何在我无法访问它的编辑屏幕时切换回电源,或者删除术语? ...

1  媒体模块未正确渲染媒体的YouTube视频:YouTube  ( The media module does not correctly render youtube videos added with media yout ) 
尝试允许用户从 wysiwyg ,ckeditor 3.6,< href ="https://www.drupal.org/project/media_youtube" rel ="nofollow noreferrer" >媒体:youtube 。 这是模块配置: 然后我尝试通过向视频或嵌入代码(iframe...

1  显示在发票PDF Comperce Billy上的订单付款方法  ( Display the method of payment of an order on the invoice pdf comerce billy ) 
我安装了商务billy 。 如何在我的账单上显示付款方式? $info2 以下是我的文件"commerme_order - commerce_order - pdf.tpl.php" 的内容。 我在哪里放置代码? ...

1  向WebForm提交发送电子邮件通知  ( Sending email notifications to webform submissions ) 
我正在尝试创建一个规则,该规则将发送电子邮件到WebForm提交的列表,在创建新内容时通知它们。到目前为止,这是我有的: 事件:保存类型[类型] 的新内容后 条件:内容是类型 操作:使用规则视图显示,我正在抓住WebForm提交,然后循环发送邮件到WebForm提交的值。 一切都很好,直到我需要发送邮件。而不是...

1  视图:添加(链接到文件字段)到映像字段  ( Views add link to file field to image field ) 
在d7中,我有一个事件内容类型,其中包含图像字段("特色图像" )和文件字段("文档")。我有一个包含文档的事件的视图,并希望将链接包裹在图像周围,导致文档。这是一个 sample link 。 如何重写图像(或使用其他技术)以获取图像周围的所需链接?查看可用的令牌(我确实在图像上方添加了一秒钟的隐藏文档字段以定义...

0  如何在内容创建期间允许查看模式选择?  ( How to allow view mode selection during content creation ) 
我们有一个内容类型,基本页面,可以是三种类型 出版 网络广播 音频/视频 有一个基于基本页面类型的字段,我们切换显示的字段。因此,对于键入="音频/视频" 时,我们将显示字段A-C,但如果Type ="网络广播" ,则我们在节点编辑页面上显示字段D-G。 基于基本页面类型,节点视图应根据类型显示。我们正在考虑使...

2  如何配置总订阅模块? [关闭]  ( How to configure the total subscription module ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并阐明编辑此帖的问题。 closed 4年前。 ...

1  如何使Blob文件可下载?  ( How to make blob file downloadable ) 
我已经创建了一个模块,以在Drupal 7中可用于下载Blob文件。 在我的代码下面.module文件 <?php function blobfile_block_info() { $blocks = array(); $blocks['blobfile_block'] = array( 'in...

0  如果字段是自动完成的字段,则以编程方式保存节点字段?  ( Programatically save node fields if fields is autocomplete ) 
我已经创建了一个包含3个字段的内容类型,我的一个字段是node_refrence在此文件中,我使用node_refrence填充其他节点的标题。 我正在使用这个代码。 > $node = new stdClass(); $node->type = 'application'; > node_object_pr...

1  如何引用自定义字段到内容类型条目  ( How to reference a custom field to content type entry ) 
在Drupal 7中我创建了一个"产品" 内容类型和自定义模块,它创建了一个具有字段"产品" 的实体"订单" 。 我想用来自内容类型的产品引用我的字段"产品" 。 任何建议如何使其审理? ...

0  在没有任何HTML标记的情况下获得清洁日期  ( Get clean date without any html tags ) 
我正在使用日期模块以及显示日期的视图,我需要获取日期时间戳。问题是 $fields['date_in_timestamp'] 内容在html包装。 <span class="date-display-single"> 1468473300 </span> 我只需要值,没有html。 ps:我的字段"dat...

6  Drupal_static的预期用途是什么?  ( What is the intended use of drupal static ) 
我理解Drupal静态缓存用于存储内存中的静态值,以便更快地访问它们的要求。然而,在德鲁佩尔和贡献的模块中,我倾向于看到两个不同的版本: 示例来自 drupal_is_front_page : function drupal_is_front_page() { // Use the advanced dru...

1  如何在规则操作中替换关于[node:url]的文本吗?  ( How to replace text about nodeurl within a rules action ) 
我正在使用规则模块,并在保存新时创建规则内容,发送电子邮件包含节点标题,以及节点的URL。非常直接。也就是说,我想在发送的消息之前替换网址中的文本。我正在使用str_replace(),但它不起作用。 任何建议? 更新: 路径当前看起来像这样: domain.com/cron.php/newsroom/press-...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.