我有一个名为page的文件 - advertsindex.tpl.php ..现在我要做的是在page.tpl.php的内容区域内显示该页面。
页面 - advertsindex.tpl.php包含需要在page.tpl的内容区域中呈现的HTML,但当我导航到my_drupal_site / advertsindex时它只显示页面的html - advertsindex,不是page.tpl.php文件和内容区域中的页面 - advertsindex ..
我该怎么做?还是有不同的方法来实现我的目标?
答案 0 :(得分:1)
对于网址page--<identifier>.tpl.php
,任何page.tpl.php
都会使用{strong> /identifier
。这是设计和该系统的整个目的。这也可以扩展到更深的路径:page--foo-bar-baz.tpl.php
/foo/bar/baz
。
如果您希望某些内容显示在/identifier
上,您有两种选择:有条件地包含内容或复制内容。选择什么取决于你的情况。
有条件地包括:在page.tpl.php
内:
<div class="footer">
<?php if (arg(0) == "advertsindex"): ?>
<?php print theme("advertsindex_disclaimer"); ?>
<?php endif; ?>
</div>
覆盖:引入page--advertsindex.tpl.php
:
<div id="content">
<?php print $content ?>
</div>
何时选择:
在以下情况下仅使用条件包含或条件渲染:
在所有其他情况下,您将使用覆盖。是的,这将包含大量重复,但这是设计并被接受为Drupal中的默认实践。为避免在20多个文件中修改某些HTML,请尽可能“分割”或“复制”它们。
根据经验,条件应该只是几行,并且永远不需要父级中不可用的变量。
答案 1 :(得分:0)
如果 advertsindex 是您的内容类型之一,那么您必须创建node - advertsindex.tpl.php文件而不是page - advertsindex.tpl.php。或者如果您不想在page.tpl.php页面中显示某些内容,那么最好将page.tpl.php的所有代码复制到YOUR-Custom_page.tpl.php中,并将您的代码放在YOUR-的内容部分中。 Custom_page.tpl.php。
我认为这有帮助。