我不知道如何更改我正在尝试构建的drupal站点上的登录用户名/密码框的大小。我绊倒了主题,并且不知道在哪里可以找到需要更改的文件,以便拥有符合美学的盒子(因此文件路径会非常有用)。
我希望这是一个css解决方案。你可以在innovatefortomorrow [dot] org和我的firebug screenshot http://www.jonrwilson.com/user-login-form.png上看到该网站的第一手资料(我没有足够的信誉点来附加图片或两个超链接)。
谢谢!
答案 0 :(得分:6)
好的......您即将进入Drupal最令人兴奋和最复杂的功能之一:表单API或 - 为简洁起见 - FAPI。首先是一些理论,然后是解决方案! :)
Drupal中的所有表单都是由drupal_get_form()
函数构建的,它接受一个数组作为参数。数组中的每个字段基本上都是表单的一个字段,每个字段都有许多属性,每个字段都定义了字段的其他特征,例如它的默认值,如果它是必需的或可选的 - 是 - 在文本字段的情况下......他们必须有多大!您可以在on the drupal site找到表单数组结构的详细说明。
表单API的优点在于,呈现表单的函数在构建过程中的不同时刻会调用许多挂钩,因此您可以实现这些挂钩,以便在表单完成并发送之前“更改”表单到浏览器。
表单更改最常见的挂钩是hook_form_alter()
和hook_form_FORM_ID_alter()
。第一个是针对drupal引擎处理的任何表单执行的,后者仅针对名为“FORM_ID”的特定表单执行。我不会详细介绍表单API的内部工作,但here you can read more。
至于您的具体情况,我假设您使用的是Drupal的标准“用户块”。在这种情况下,我建议您使用与此类似的形式实现hook_form_FORM_ID_alter()
:
mymodule_form_user_login_block_alter(&$form, $form_state) {
$form['pass']['#size'] = 43;
}
希望这有帮助! :)
答案 1 :(得分:0)
我认为在这种情况下你必须转到你的html(或tpl),而不是你的css文件来编辑它。
一种快捷方式是搜索相关字符串(即size="43" name="name"
等)以找到正确的部分。
答案 2 :(得分:0)
以下是使用模板文件中的预处理功能而不是模块中的drupal 6中的用户登录表单的主题方法。
在template.php中输入以下代码:
function yourThemename_preprocess_user_login(&$variables) {
$variables['form']['name']['#size'] = 15;
$variables['form']['pass']['#size'] = 15;
$variables['rendered'] = drupal_render($variables['form']);
}
创建一个新文件user-login.tpl.php(如果它还没有),只需粘贴它:
<?php print $rendered; // this variable is defined in the preprocess function user_login and print the login form ?>
不要忘记在性能设置中清除主题缓存或系统缓存。