Templates “移动”;提交人:;从node.tpl到page.tpl
我希望将“提交人”信息从node.tpl移动到page.tpl,但是当我从node.tpl添加以下内容时,会出现错误。我假设我没有访问这些变量的权限,但我想知道如何设置一个预处理程序,使其像在node.tpl中那样显示Templates “移动”;提交人:;从node.tpl到page.tpl,templates,drupal,drupal-7,Templates,Drupal,Drupal 7,我希望将“提交人”信息从node.tpl移动到page.tpl,但是当我从node.tpl添加以下内容时,会出现错误。我假设我没有访问这些变量的权限,但我想知道如何设置一个预处理程序,使其像在node.tpl中那样显示 <?php if ($display_submitted): ?> <div class="submitted"> <?php print $submitted; ?> </div> <?p
<?php if ($display_submitted): ?>
<div class="submitted">
<?php print $submitted; ?>
</div>
<?php endif; ?>
您可以在主题的template.php中使用预处理函数,如下所述: 在您的情况下,它看起来是这样的(在Drupal 7上测试): 然后在page.tpl.php中使用以下命令:
Submitted by: <?php print $author; ?>
提交人:
如果您不想触摸任何主题文件,但需要在另一个区域中输出作者姓名作为节点内容,则可以创建包含节点作者的视图(块显示),并将其指定给该区域 通常在
node.tpl.php
中执行时,如果页面是节点视图页面,则$node变量也可在page.tpl.php
然后,您可以使用以下内容:
if (isset($node)) {
// Check if display submitted variable is set for this node type
if (variable_get('node_submitted_'. $node->type, 0)) {
// Do stuff
}
}
另一种方法是将所需的逻辑添加到
hook_preprocess_page
额外更新:您可以在coretemplate\u preprocess\u页面中看到添加到page.tpl.php的$node变量
if ($node = menu_get_object()) {
$variables['node'] = $node;
}
在page.tpl.php
中:
<div class="submitted">
<?php echo format_date($node->created, 'custom','d.m.Y'); ?><br />
<?php echo 'by ' . $node->name; ?>
</div>
<div class="submitted">
<?php echo format_date($node->created, 'custom','d.m.Y'); ?><br />
<?php echo 'by ' . $node->name; ?>
</div>