我无法找到简明的答案或对此有所帮助。我希望能够在Drupal中为 ANY 元素添加一个类或ID。因此,为了方便页面上的按钮,我想添加类“按钮”。这是怎么做的和在哪里做的?我在form.inc中看到了一个引用,并使用了类似module.php的东西,但是我正在努力获得一些具体的帮助。
答案 0 :(得分:0)
这取决于您想要改变的元素。
例如,您可以使用hook_form_alter向表单添加类和ID
其他元素必须在自定义主题模板中进行更改或否决,具体取决于元素出现的位置,例如html.tpl.php,page.tpl.php,block.tpl.php,node.tpl.php等。
使用Devel和Devel themer模块,您可以更好地了解要查看的位置。
编辑:BTW永远不会入侵核心,这会让你以后遇到很多麻烦!
答案 1 :(得分:0)
您需要为提供表单项标记的核心主题实现替代。其中包括theme_button
,theme_submit
,theme_textfield
以及更多内容。
要执行此操作,请在活动主题的template.php文件中实现MYTHEME_theme_name()
并根据需要覆盖输出:
function mytheme_button(&$variables) {
$element = $variables['element'];
$element['#attributes']['type'] = 'submit';
element_set_attributes($element, array('id', 'name', 'value'));
$element['#attributes']['class'][] = 'form-' . $element['#button_type'];
if (!empty($element['#attributes']['disabled'])) {
$element['#attributes']['class'][] = 'form-button-disabled';
}
$element['#attributes']['class'][] = 'my-new-class';
return '<input' . drupal_attributes($element['#attributes']) . ' />';
}
以上函数直接从theme_button()
函数复制,只需添加一行,即可为按钮元素添加额外的类。
确保在实现钩子后清除Drupal的缓存,以便主题注册表将其拾取。
值得注意的是,Drupal已经将form-text
,form-submit
等类添加到单个元素中,因此如果您尝试使用CSS定位元素,可以尝试使用这些类。
答案 2 :(得分:-1)
浏览page.tpl.php
中的sites/all/themes/yourthemes/...
,您可以根据需要输入ID或类名。