代码之家  ›  专栏  ›  技术社区  ›  thelawnmowerman

视图内外内容类型的不同模板

  •  0
  • thelawnmowerman  · 技术社区  · 7 年前

    我为文章内容类型节点准备了两个不同的模板。我想在首页中使用一个模板(并在视图中显示它们,作为未格式化的列表),在网站的其余部分(视图外)使用另一个模板。

    我可以定义 node--article.tpl.php 对于所有的文章,当某些节点是视图的一部分时,我不知道要为它们定义另一个节点(或者在头版中,我不管用什么来区分两者)。

    2 回复  |  直到 7 年前
        1
  •  0
  •   c1u31355    6 年前

    我知道这是一个老问题,但由于它没有得到回答,我在搜索同一个问题时发现了它,我想快速给出一个解决方案。

    由于drupal 7模板是php,您只需快速而不费力地检查是否存在“父”视图,并通过if条件将两个模板分开。

    <?php
    function is_current_node_inside_view() {
      return (isset($view) && is_object($view)) ? true : false;
    }
    
    if ( is_current_node_inside_view() ) {
      ?>
        <!-- unformatted list template goes here -->
      <?php
    } else {
      ?>
        <!-- second template goes here -->
      <?php
    }
    ?>
    

    https://drupal.stackexchange.com/questions/37446/how-to-add-additional-displayview-mode-for-node

        2
  •  0
  •   thelawnmowerman    6 年前

    我终于了解了更多关于Drupal 7的信息,正确的方法是(不需要任何代码,只需为模板文件使用专有名称):

    • 使用 node--article.tpl.php 作为文章详细视图的模板名称。
    • 使用 node--view--[name-of-the-view].tpl.php 当同一文章位于 name-of-the-view 看法无论视图中膨胀了何种类型的节点,该模板都先于常规模板。
    推荐文章