使用 D7。我有几个实例,我只需要输出内容类型标记,没有页面标记(即弹出内容)。目前,我为每种内容类型创建了几个 tpl 文件(针对每个渲染层),剥离了所有周围的 html,这些 tpl 只有一个输出行。这极其低效和繁琐。我知道必须有一种更简单的方法来处理在 template.php 文件中执行此操作我似乎无法找到答案。任何帮助表示赞赏
问问题
220 次
1 回答
1
我用以下技巧做到了这一点
1) 编辑你的 template.php
function mytheme_preprocess_page(&$variables, $hook) {
if (isset($_GET['modal']) && $_GET['modal'] == true) {
$variables['theme_hook_suggestions'][] = 'page__modal';
}
}
2)新建文件页面--modal.tpl.php
从普通 page.tpl 复制所有内容并删除所有不必要的内容,例如 #header 或 tabs 或 footer
3) 您添加的每个页面 ?modal=1 现在都将使用此模板 与l() 函数一起使用
4) 高级的东西
如果您想自己但通过类属性向每个链接添加查询:在您的普通 page.tpl 中包含一个小 javascriptfunction,它使用类“modal”解析所有链接并以这种方式添加模式
类似的东西
$(function() {
$("a.modal").attr('href', function(i, h) {
return h + (h.indexOf('?') != -1 ? "&modal=true" : "?modal=1");
});
});
于 2012-10-23T14:51:26.323 回答