-1

使用 D7。我有几个实例,我只需要输出内容类型标记,没有页面标记(即弹出内容)。目前,我为每种内容类型创建了几个 tpl 文件(针对每个渲染层),剥离了所有周围的 html,这些 tpl 只有一个输出行。这极其低效和繁琐。我知道必须有一种更简单的方法来处理在 template.php 文件中执行此操作我似乎无法找到答案。任何帮助表示赞赏

4

1 回答 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");
   });
});

另请参阅4. 将 JavaScript 添加到您的主题或模块

于 2012-10-23T14:51:26.323 回答