Drupal 7:如何在渲染数组后呈现单个元素?

时间:2018-05-23 05:59:24

标签: php drupal drupal-7

我一直在处理他们正在渲染表单的人员代码。在.tpl文件中,它们会呈现一些单独的元素:

<?php print render($form['datepicker']); ?>

然后使用以下内容呈现剩余的表单元素:

<?php print render($form); ?>

我已经了解到,渲染单个数组项(如上面的日期选择器)将在调用整个数组时将其排除。但是有没有办法排除某些东西并在渲染其父数组之后将其渲染。

例如:

<?php print render($form['datepicker']); ?> //<-- Will not be rendered in render($form);
<?php print render($form); ?> 
<?php print render($form['termsAndConditions']); ?> //<-- Will be render twice, here and in render($form);

(目标是在渲染剩余的表单元素之后将tersmAndConditions元素包装在自己的HTML中。)

1 个答案:

答案 0 :(得分:0)

使用

  

隐藏($形式[&#39;日期选择器&#39;]);

它会排除&#39; datepicker&#39;来自$ form但$ form [&#39; datepicker&#39;]仍将存在渲染

这意味着你将通过

来做到这一点
hide($form['datepicker']);
print render( $form );

for $ form [&#39; termsAndConditions&#39;]你需要打印两次,你必须在渲染之前将它存储在变量中

像你的完整代码一样

hide($form['datepicker']); // // We hide the datepicker now so that we can render them later.
print render($form['datepicker']);
$termsAndCond = $form['termsAndConditions'];
print render( $form );
print render($termsAndCond);

希望这可以解决你的问题

感谢