取决于页面的动态标题 (DRUPAL 7)

Dynamic title depending on page (DRUPAL 7)

在我切换到 Drupal 之前(以前只是静态的 HTML),我的 header 中有一个 div 标题,它根据用户使用的页面而改变以下代码:

关于页面

<?php
$title = "ABOUT US</span>";
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/includes/header.php";
include_once($path);  ?>

然而,之所以可行,是因为我使用的是静态 HTML... 这意味着我将每个页面都设置为使用自己的 Index.PHP,位于(对于“关于”页面,例如)public_HTML/about/index.php。因此,我可以通过编辑相应的索引文件来根据自己的喜好编辑 div 中的每个页面...

现在,使用 Drupal.. 而不是像我以前那样拥有这么多 Index.PHP 文件(IMO 是混乱的......),我希望每个页面都使用相同的 page.tpl.php (除了首页,它使用 page--front.tpl.php)。

我能否以某种方式修改上述 PHP 代码以根据用户所在的页面使用 IF 语句显示不同的标题?

例如...(我不知道如何 PHP 编码,所以这只是为了让您的专家了解我想要什么...)

Ifpage=about, $title=关于我们; Ifpage=contact, $title=联系我们;

这段代码能不能都在同一个page.tpl.php?

非常感谢!

Drupal 7 对每种内容类型都有一个标题字段。你为什么不用那个?

它默认显示,您可以为每个节点更改它。

就是你模板文件中的这段代码。

<?php print render($title_prefix); ?>
<?php if ($title): ?>
  <h1 class="title" id="page-title">
    <?php print $title; ?>
  </h1>
<?php endif; ?>
<?php print render($title_suffix); ?>

$title_prefix(数组):包含由模块填充的附加输出的数组,旨在显示在模板中出现的主标题标签前面。

$title:页面标题,用于实际HTML内容。

$title_suffix(数组):包含由模块填充的附加输出的数组,旨在显示在模板中出现的主标题标签之后。

有关 page.tpl 模板文件中可用的所有变量,请参阅 https://api.drupal.org/api/drupal/modules!system!page.tpl.php/7

如果您想将一个部分设置为不同于其他部分的样式,您可以为其使用一个额外的字段。

或者如果你需要对值做一些事情(我不建议这样做!!!)。

switch ($title) {
  case "About Us":
    // Do something with the title
    break;
  case "Contact Us":
    // Do something with the title
    break;
  case 2:
    // Do something with the title
    break;
}

这是一个简单的方法:

为内容类型添加一个新字段

称它为标题2

渲染两个字段

使用 css 内联对齐它们并添加样式

这是我的解决方案,因为我无法将 Drupal-based 标题栏放置在基于 non-Drupal 的徽标 DIV..

旁边

我创建了一个名为 .headertitle 的 div 并且 positioned/styled 它是我想要的。

我的 header.php 是一个 PHP 包含文件,每个页面都会调用它,标题标题有 PHP 条件..

<?php if(empty($headertitle)) $headertitle = "ASK REAL QUESTIONS, <br><span class='white'>GET FREE ANSWERS.</span>";

echo $headertitle; ?>

这样,如果没有为 .headertitle 声明文本,它将采用 "ASK REAL QUESTIONS, GET FREE ANSWERS."

的默认形式

...现在,我必须想出一种方法来实际声明 .headertitle 的文本,具体取决于我所在的页面...

我通过使用此文件为每个页面(节点)使用自定义模板来做到这一点。"page--node--nodeid.tpl.php"。

因此,对于我的关于我们页面,我创建了一个名为 "Page--node--7.tpl.php" 的 tpl.php 文件。对于此页面,7 是​​很容易找到的节点 ID。

然后,我添加了以下 PHP 代码来声明 .headertitle 的文本,特别是在关于我们页面上,看起来像这样...

<?php $headertitle = "ABOUT<span class='white'>.US</span>"; include('includes/header.php'); ?>

大功告成。

我会为每一页都这样做。 :)