gpt4 book ai didi

drupal - 在 Drupal 7 中为表单调用自定义 Theme() 函数

转载 作者:行者123 更新时间:2023-12-04 23:42:50 25 4
gpt4 key购买 nike

Drupal 没有为我的模块中的表单调用我的主题函数。

我在 .module 文件中添加了 hook_theme :

function agil_theme() {
return array(
'agil_list_form' => array(
'render element' => 'form',
),
);
}

哪里:

  • agil 是我的模块的名称(不是我的主题)
  • agil_list_form 是我的表单声明的名称(带有默认主题的别致渲染)

我想调用一个函数来创建我自己的标记,如下所示:

function theme_agil_list_form($form) {
$output = "<table><th><td></td><td>".t('Title')."</td><td>".t('Link')."</td></th>";
$output .= "<tr><td>";
$output .= drupal_render($form['name']);
...

但是 Drupal 从来没有调用过这个函数...我清除了缓存但什么也没有..

我哪里遗漏了什么?

我还阅读了有关 Drupal 7 中新主题声明的内容: http://drupal.org/update/modules/6/7#hook_theme_render_changes

最佳答案

Drupal 7 中的所有主题函数都采用单个数组参数(通常命名为 $vars$variables),并且该数组包含变量/渲染元素你已经宣布了。主题函数本身看起来像这样:

function theme_agil_list_form($vars) {
$form = $vars['form'];
// Now manipulate $form
}

您还需要告诉 Drupal 您的表单将使用这个主题,方法是在您的表单函数中这样做:

$form['#theme'] = 'agil_list_form';

关于drupal - 在 Drupal 7 中为表单调用自定义 Theme() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com