Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates “移动”;提交人:;从node.tpl到page.tpl_Templates_Drupal_Drupal 7 - Fatal编程技术网

Templates “移动”;提交人:;从node.tpl到page.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

我希望将“提交人”信息从node.tpl移动到page.tpl,但是当我从node.tpl添加以下内容时,会出现错误。我假设我没有访问这些变量的权限,但我想知道如何设置一个预处理程序,使其像在node.tpl中那样显示

  <?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
额外更新:您可以在core
template\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>