【问题标题】:Drupal CCK: how to output a node teaser with its fields?Drupal CCK:如何输出带有字段的节点预告片?
【发布时间】:2009-03-25 13:51:02
【问题描述】:

在我的一个模块中,我想输出节点预告片。该节点具有 CCK 字段,我希望它们根据您可以在内容类型/字段设置管理区域中选择的可见性设置进行显示。

但是当我这样做时:

$html = theme('node', $n);

生成的预告片不包含 CCK 字段,仅包含标题和正文。

我还需要调用什么其他主题函数?

节点包含图像和节点引用等字段。我想我可以手动编写 HTML,但在我看来最好使用提供的主题功能...

【问题讨论】:

    标签: php drupal drupal-6 cck


    【解决方案1】:

    http://api.drupal.org/api/function/node_view/6

    $node = node_load($n);
    $html = node_view($node,TRUE);
    

    然后您可以选择要在Content Type>Display Fields上显示的字段,然后您可以通过contemplate modulenode-content_type.tpl.php编辑该预告片的主题 在主题文件夹上。

    【讨论】:

      【解决方案2】:

      http://drupal.org/node/362068#comment-1216250你可以使用views 2来实现

      【讨论】:

        【解决方案3】:

        另外在代码中使用 node_view 允许总共 4 种节点模板模式。

        node_view($node, $teaser = FALSE, $page = FALSE, $links = TRUE)

        对于疯狂的节点,我的模板是这样的......

        <?php
        switch(true){
        case($page && $teaser): ?>
        
          <div class="content">
            <?=$content?>
          </div>
        
        <?php
        break;
        case($page && !$teaser): ?>
        
          <div class="content">
            <?=$content?>
          </div>
        
        <?php
        break;
        case(!$page && $teaser): ?>
        
          <div class="content">
            <?=$content?>
          </div>
        
        <?php
        break;
        case(!$page && !$teaser): ?>
        
          <div class="content">
            <?=$content?>
          </div>
        
        <?php
        break;
        default: print 'this should never happen.';
        }?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多