好的,这是交易:我正在构建一个有几个不同部分的 Drupal 网站。每个部分都是显示内容类型的视图。(每个部分都有自己的内容类型)例如,我有一个视图指向?q=blog
哪个显示内容类型blog
。
所有部分看起来都略有不同。不像 'website-within-a-website' 不同但足够不同以至于它们不能都使用相同的模板文件并且每个都可以使用 CSS 进行修改。每个部分都需要它自己的page.tpl.php
.
不幸的是,AFAIK Drupal 主题的 .info 文件只能page.tpl.php
为整个主题分配一个或page-node-####.tpl.php
为每个节点分配一个。这个网站上会有很多内容,所以设置 Drupalpage-node-####.tpl.php
为每个创建的节点创建一个新的相同节点会很快变得难以管理。
为了解决这个问题,我将使用 pathauto 为每种内容类型创建一个别名。例如,所有内容类型的节点blog
都被赋予一个别名?q=blog/[post title]
。修改template.php
以page-blog.tpl.php
用于别名以“博客”开头的任何页面。
其他人已经尝试过做这种事情并创建了如所描述的功能。不幸的是,我看到的所有这些都是针对 Drupal 6 或更低版本的。我曾尝试修改现有的但没有成功。不过,到目前为止,我认为这是在正确的轨道上:
function basic_preprocess_page(&$vars, $hook) {
...
if( module_exists('path') ) {
$alias = drupal_get_path_alias( $_GET['q'] );
$site_section = "blog";
if( strpos( $alias, $site_section ) === 0 ) {
$VARIABLE_THAT_TELLS_THE_PAGE_WHAT_TEMPLATE_TO_USE = "/path/to/page-blog.php";
}
}
}
我找不到$VARIABLE_THAT_TELLS_THE_PAGE_WHAT_TEMPLATE_TO_USE
有人知道它是什么吗?
也许我的网站结构很糟糕。如果有人知道如何重组我的网站,以便我可以更轻松地制作带有单独部分的主题,请分享如何!
太感谢了!(c:
编辑:也许我需要改用模板建议。有谁知道用来设置它的函数或变量吗?