Drupal 7:如何将更改的值从预处理功能返回到渲染功能?

时间:2018-08-08 06:07:54

标签: php drupal drupal-7

我正在尝试制作一个简单的面板模块。我有一个带有文本字段的表单,可以输入值,然后该值通过呈现功能(例如:

)打印到.tpl文件。
function my_module_panel_render($subtype, $conf, $args, $contexts) {

  $block = new stdClass();

  $block->content = [
    '#theme' => 'my_tpl',
    '#config' => $conf,
  ];

  return $block;
}

然后在.tpl上:

<?php print $config['name_field']; ?>

这很好。

但是我想稍微改变一下值。我了解到我需要添加一个hook_preprocess_theme()函数。

但是,实际上我该如何更改这些值?然后如何将更改后的值返回到$ conf?

做类似的事情

$conf['name_field'] = $conf['name_field'] . $some_other_stuff;

似乎没有用。

有人知道我能做什么吗?

1 个答案:

答案 0 :(得分:0)

好的,我没想到的是$conf$variables数组的子数组,hook_preprocess_theme()作为参数,如我的{{1 }}:

hook_theme

因此,我的function my_module_theme() { return [ 'my_module' => [ 'template' => 'theme/my_theme', 'render element' => 'element', 'variables' => [ 'config' => NULL, ], ], ]; } 函数现在看起来像:

hook_preprocess_theme()