我们已经创建了一个自定义模块,用于组织和发布我们的简报内容。
我现在遇到的问题 - 我是主流和Drupal模块开发的新手,所以它可能只是一个知识问题,而不是Drupal问题 - 是如何让每个时事通讯主题化。< / p>
此时我们的简报的URL结构将是:
/ newsletters / {newsletter-name} / {edition-name} / {issue-date}这意味着我们可以使用诸如page-newsletters- {newsletter-name}之类的文件名在我们的主题中创建模板文件 - {edition- name} .tpl.php,太棒了。我遇到的一个问题是所有内容都来自主题的$ content变量。我想让它通过不同的变量来实现(这样我就可以在主题内部将某些内容放在某些区域。)
有没有正确的方法呢?
编辑:回答一些问题:问题是一个节点(有问题,版本和简报节点),并且使用带有通配符和路由器的hook_menu设置路径。
答案 0 :(得分:1)
我能找到的最佳答案是在phptemplate_preprocess_page中添加一个检查,将vars发送回模块并让它们更新。
像这样:
function phptemplate_preprocess_page(&$vars) {
if (module_exists('test_module')) {
_test_module_injector($vars);
}
}
然后在我的test_module.module文件中创建了这个函数:
function _test_module_injector(&$vars) {
$vars[] = call_to_other_functions_to_load_vars();
}
似乎有效。我希望有一种方法可以做到这一点,而无需触摸主题的template.php文件,但除此之外这很有用。
答案 1 :(得分:0)
如果有更好的模板预处理函数文档,Drupal将更容易访问 - 因为它是,您需要将来自许多不同解释的信息拼凑在一起。一个开始的地方是:
但是如果你花时间完成下面的教程,你会发现你可以做大部分事情:
答案 2 :(得分:0)
这是一篇旧帖子,OP的问题似乎已经解决了。
然而,只有其他人通过谷歌(或其他方式)发现这一点:
使用Devel Themer浏览$ content变量并找到你需要提取的内容。
有很多Devel / Themer docs / tuts,但它的用法非常简单。但请注意,在主题中打印之前,需要对其中的某些内容进行消毒。
将节点显示为View然后修改视图模板的建议听起来很疯狂,但它会起作用。