通过ID块更改登录表单 -- forms 领域 和 hooks 领域 drupal 相关 的问题

Alter login form in block by id


0
vote

问题

中文

我在d7上有一个小问题,我需要改变块内的登录表单(将类添加到输入,占位符和提交按钮文本,自定义通过重置和登录链接)IM,即时通讯。我不需要使用自定义模块。

块id = block-user-login,form id = user_login_block

我的主题.php代码

  function themename_form_user_login_block_alter(&$form, &$form_state) {      $form['name']['#attributes']['placeholder'] = t( 'Username' );     $form['pass']['#attributes']['placeholder'] = t( 'Password' );     // custom register link     $form['actions']['signup'] = array(         '#markup' => l(t('Register'), 'user/register', array(             'attributes' => array(                 'class' => 'top-user-block-link register',                 'title' => t('Create a new user account.')             )         )),     );      // custom reset password link     $form['actions']['request_password'] = array(         '#markup' => l(t('Forgot my password'), 'user/password', array(             'attributes' => array(                 'class' => 'top-user-block-link new-password',                 'title' => t('Request new password.'),             )         )),     ); }   

密码重置链接和登录链接呈现罚款,但我不能使占位符或类添加到工作。

我试图使用

  function theme_form_alter(&$form, &$form_state, $form_id){   if ($form_id === 'user_login_block') { $form['name']['#attributes']['placeholder'] = t( 'Username' );     $form['pass']['#attributes']['placeholder'] = t( 'Password' );   } }   

但我只能在/登录页面上工作。

英文原文

I have a small problem on D7, I need to alter the login form inside block (add class to inputs, placeholder and submit button text, custom pass reset and login links) im using hook_form_FORM_ID_alter. I don't need to use custom module.

block id = block-user-login, form id = user_login_block

My theme.php code

function themename_form_user_login_block_alter(&$form, &$form_state) {      $form['name']['#attributes']['placeholder'] = t( 'Username' );     $form['pass']['#attributes']['placeholder'] = t( 'Password' );     // custom register link     $form['actions']['signup'] = array(         '#markup' => l(t('Register'), 'user/register', array(             'attributes' => array(                 'class' => 'top-user-block-link register',                 'title' => t('Create a new user account.')             )         )),     );      // custom reset password link     $form['actions']['request_password'] = array(         '#markup' => l(t('Forgot my password'), 'user/password', array(             'attributes' => array(                 'class' => 'top-user-block-link new-password',                 'title' => t('Request new password.'),             )         )),     ); } 

Links for password reset and login links renders fine, but i can't make the placeholders or class add to work.

i've tried to use

function theme_form_alter(&$form, &$form_state, $form_id){   if ($form_id === 'user_login_block') { $form['name']['#attributes']['placeholder'] = t( 'Username' );     $form['pass']['#attributes']['placeholder'] = t( 'Password' );   } } 

but i works only on /login page.

     

回答列表

1
 
vote
vote
最佳答案
 
  $form['name']['#attributes']['placeholder'] = t( 'Username' ); $form['pass']['#attributes']['placeholder'] = t( 'Password' );   

代码都在工作。如果您无法看到更改或占位符。

请尝试使用 var_dump($form) 。您将发现 $form_id 以及表单的所有其他字段。只需检查您的调试(阵列)排序,并确保订单与 value0 函数相同。

 
$form['name']['#attributes']['placeholder'] = t( 'Username' ); $form['pass']['#attributes']['placeholder'] = t( 'Password' ); 

Both the code are working. If you can't see your changes or placeholder.

Please try with var_dump($form). You will find $form_id and all other fields of the form. just check your debug (array) ordering and make sure that order is same as in your form_alter() function.

 
 
     
     
1
 
vote

如果我重新计算,你需要 value1

 

If I recall correctly, you need $form['account']['name']['#attributes'].

 
 

相关问题

1  formstateInterface :: setValidationHander无法正常工作?  ( Formstateinterfacesetvalidationhandlers not working properly ) 
我正在使用drupal 8.在 DrupalCoreFormFormFormBuilder::buildForm中,如果 {% for item in items %} {{ content.field_tab_title }} {% endfor %} 0 ,IE - 表单有一个 {% for item in ...

1  休息用户注册API,如何处理验证  ( Rest user registration api how to handle validation ) 
我是d8的新手,用drupal 8休息和休息Ui Contract模块构建应用程序。自8.3以来,用户注册API可用。但如果验证失败,它会抛出以下错误: The website encountered an unexpected error. Please try again later. 当我检查时,ad...

1  创建模块:表单配置类无效?  ( Creating a module form config class invalid ) 
我目前有一个工作模块,将ical链接解析为事件。这部分是工作。我现在正在尝试的是为我的模块创建一个配置页,允许我将链接输入到此ical文件。 我遵循多个指南,似乎似乎在同一位置结束: InvalidArgumentException: Class "Drupalgoogle_calendarFormGoogle...

1  Ajax字段有时会丢失表格提交的价值  ( Ajax field sometimes loses value on form submit ) 
我有一个drupal 8形式,几个字段通过ajax更新价格。 其中一个字段无法对TextBox进行故障,这对模糊事件的回调进行了回调。它看起来如此: >>> $node->field_my_date => DrupaldatetimePluginFieldFieldTypeDateTimeFieldItemLis...

3  表单API中的实体浏览器  ( Entity browser in forms api ) 
我无法让实体浏览器小部件以自定义形式正常工作。只是想知道是否有人在获得工作方面取得了成功。我到达了按钮呈现的点,可以使用浏览器,选择媒体。介质ID也连接到窗口小部件生成的隐藏字段。 ...从我的挖掘它看起来像它永远不会在"当前" div中创建正确的标记,从Ajax请求中触发"进程" 代码下面... ...

-1  如何将表单元素视为API?  ( How do i expose form elements as an api ) 
我已经尝试过 Home8 以获取表单元素,但它没有帮助我。 有没有办法获取所有表单字段(类型,标签等,),因此我可以编写一个服务以将其暴露为API? ...

0  有一个主题设置表单输入的方式仅接受数字?  ( Way to have a theme settings form input to accept numbers only ) 
我正在创建一些主题设置,并且正在创建一个表单来填充 theme-settings.php 。我正在使用钩子 hook_form_system_theme_settings_alter() 。 我想限制或验证只能输入字段的数字。我在网上搜索,但没有找到该怎么做。有人会知道我应该添加什么代码吗? 代码当前看起来像: ...

4  表单提交后如何关闭模态?  ( How to close modal after form submit ) 
我正在构建一个实体参考窗口小部件,它将参考链路显示在输入字段旁边,以目标实体的编辑表单。 我让它在模态中打开,链接上的以下属性: 'class' => ['use-ajax'], 'data-dialog-type' => 'modal', 'data-dialog-op...

1  在块D8中添加用户编辑表单  ( Add user edit form in a block d8 ) 
我正在尝试在块中添加用户编辑表单。 我创建了一个自定义模块 use DrupalCoreBlockBlockBase; use DrupaluserProfileForm; class EditUserBlock extends BlockBase{ /** * {@inheritdoc} ...

4  重定向节点表单以在提交后查看  ( Redirect node form to view after submit ) 
我对Drupal 8站点有一个使用"工作" 的路径。我想在提交节点后重定向用户到此路径。 形式改变似乎是在Drupal 7中的正确解决方案,但它比之前更复杂。在Drupal 7中,我们刚刚使用了直接路径并进行了重定向;现在我们需要提供一个不再明显的路由名称。我们如何找到适当的路线名称值?对于节点,视图,自定义路径等...

0  drupal_get_form在块内调用时不起作用  ( Drupal get form not working when called inside a block ) 
我安装了一个自定义模块,在用户/ uid / apps /添加时显示表单。因此,此表单所做的就是让用户添加"x" 内容类型的用户添加,他/她想要在他们的应用程序中。 使用此功能创建表单 - 函数devconnect_developer_apps_edit_form(数组$ form,array& $ f...

0  表单API多个选择段落中的下降  ( Form api multiple select drop downs in a paragraph ) 
我正在尝试以自定义Drupal形式重新创建以下段落。 如何在单个段落中创建多个选择? ...

1  将段落 - 项目打开到EntityForm中  ( Open paragraphs item into an entityform ) 
我有一个包含许多段落部分的个人资料页面。我正在尝试将每个段落分别打开输入表单,以模态形式。我不想为每个段落手动构建形式。配置文件页面上的段落应在该段落部分下单击"在该段落" 部分下的"编辑链接" 部分后打开模态表单。因此,Drupal应该使用自己的实体形式。 如何对drupal说它应该将段落打开一个实体表格? ...

-2  如何将自定义表单发布到外部URL?  ( How do i make a custom form post to an external url ) 
在drupal 8中,我希望表单发布到另一个页面,但是当我将 $form['#action'] 的动作更改为使其在那里发布的URL时,它会跳过验证。 我需要代码在提交处理程序中发布到外部URL。 我试过了,但它给出了错误。 $response = new TrustedRedirectResponse('htt...

1  从JSON文件中选择选项  ( Select options from json file ) 
我有一些id和值的JSON文件,这需要以表单填充为SELECT列表: $form['select_item'] = [ '#type' => 'select', '#options' => $list, '#title' => $this->t('Choose'), ...

5  从$ form_state获取提交的值  ( Get the submitted values from form state ) 
是否有函数(在drupal 8中),以构建包含 function marinelli_preprocess_page(&$vars)0 中提交值的数组?如果我使用 function marinelli_preprocess_page(&$vars)1 ,我会得到比我需要的更多值。 ...

0  渲染在Twig文件中渲染类型Text_Format类型项  ( Render form item of type text format in twig file ) 
我已经创建了一个表单元素,基本上我想要文本格式以相应地改变文本。 $form['thankyou'] = [ '#type' => 'text_format', '#title' => $this->t('Thank you'), '#format'=> 'full...

0  如何通过单击链接来处理多种表单“在自定义模块中提交”  ( How to handle multiple forms submission in a custom module by clicking on a lin ) 
我在Custom Drupal7模块中有2个表格。 第一个( 998876663 )是一个具有大量字段的正常形式和底部的提交按钮。 第二个( mymodule_delete_data_form )有1个隐藏字段,没有提交按钮。 在第一个表单末尾有一个链接,它触发了JavaScript逻辑。 JavaScript逻辑提...

0  由于AJAX回调,更改表单提交#access  ( Change form submit access as a result of ajax callback ) 
我有一个表单,首先请求一些信息,然后在最终提交之前预先填充其他字段。我正在尝试更改表单上按钮的 #access 值。下面的两个代码片段来自相同的表单构建器功能。 考虑: $form['actions'] = [ 'id_lookup' => [ '#type' => 'submit', '#t...

0  表单API AJAX添加用户和数字组  ( Form api ajax add group of users and numbers ) 
我是德鲁佩尔的纽贝,但已经做过一些php。 我的问题是,通过ajax示例页面的帮助,我在复选框时显示了一个ajax函数来显示两个字段。 当我按下添加按钮时,我得到两个字段,但它们不会根据我想要的方式。 字段是数字和用户。 选中复选框时的初始布局是: number 用户 当我按下添加按钮时: numbe...




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


Licensed under cc by-sa 3.0 with attribution required.