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

时间:2015-06-05 21:04:05

标签: php drupal-7

在我切换到Drupal之前(之前只是静态HTML),我的标题中有一个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文件。因此,我可以通过编辑各自的索引文件来单独编辑每个页面...

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

我可以以某种方式修改上面的PHP代码,使用IF语句显示不同的标题,具体取决于用户所在的页面吗?

例如......(我不知道如何使用PHP代码,所以这只是为了让专家了解我想要的东西..)

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

这段代码可以在同一个页面中.tpl.php?

非常感谢你!

3 个答案:

答案 0 :(得分:1)

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(array):包含由模块填充的附加输出的数组,用于显示在模板中显示的主标题标记的前面。

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

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

有关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;
}

答案 1 :(得分:0)

这是一个简单的方法:

为内容类型添加新字段

称之为title2

渲染两个字段

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

答案 2 :(得分:0)

这是我的解决方案,因为我无法将基于Drupal的标题块放在非基于Drupal的徽标DIV旁边。

我创建了一个名为.headertitle的div,并根据我的需要定位/设置它。

我的header.php是一个PHP包含文件,每个页面都调用它,而headertitle有一个PHP条件。

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

这样,如果没有为.headertitle声明文本,它将采用默认形式&#34; ASK REAL QUESTIONS,获得免费答案。&#34;

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

我通过使用此文件为每个页面(节点)使用自定义模板来实现此目的。&#34; page - node - nodeid.tpl.php&#34;。

因此,对于我的ABOUT US页面,我创建了一个名为&#34; Page - node - 7.tpl.php&#34; ...的tpl.php文件,对于此页面,7是nodeid,它是很容易找到。

然后,我添加了以下PHP代码,专门在关于我们的ABOUT US页面上声明.headertitle的文本...

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

完成并完成。

我会为每个页面执行此操作。 :)