Drupal 7 开发内部培训资料, 分头诗人

drupal7不使用第三方模块怎么样显示当前栏目及所有子栏目的内容列表?

赞成!
0
否决!

drupal7,使用术语表为内容添加分类,然后把这个分类设置成导航菜单,然后关于这个 “分类列表” 显示当前栏目(分类)的内容列表会自动显示,但是怎么样显示当前栏目及所有子栏目的内容列表?

比如,我建的分类是这样的:

 

      分类1

      ---分类1.1

      ---分类1.2

      分类2

这些分类里都发布了几篇文章,

我的问题是:点击 “分类1” 之后,怎样能够显示出 “分类1”+“分类1.1”+“分类1.2” 里的所有文章的列表?

有没有办法不适用views等第三方模块来实现?非常感谢

2 个回答

赞成!
0
否决!

那得要自己写模块。

在模块里面写一个循环,读取相关的产品。

所以先要写一个分类。然后再对应每个页面写一个内容页。工作量更大呢,这里大概写一个分类的方式给你参考:

function catelog($parent = 0)
{
    global $language;
    $output = '<ul>';
    $query = db_select('taxonomy_term_data','td');
    $query->leftJoin('taxonomy_term_hierarchy','th','td.tid = th.tid');
    $query->fields('td')->fields('th', array('parent'))
        ->condition('td.vid', '2')->condition('td.language', $language->language)->condition('th.parent', $parent)->orderBy('weight', 'ASC')->orderBy('tid', 'DESC');
    $query = $query->execute()->fetchAll();
    foreach ($query as $ob)
    {
        $output .= '<li>';
        $output .= l($ob -> name, 'taxonomy/term/'.$ob -> tid);
        $p = db_select('taxonomy_term_hierarchy', 't')->fields('t')->condition('t.parent', $ob -> tid)->execute();
        $num_of_results = $p->rowCount();
        //$output .= ' ('.$num_of_results.')';
        if($num_of_results > 0){
            $output .= catelog($ob -> tid);
        }
        $output .= '</li>';
    }   
    $output .= '</ul>';
    return $output;
}
赞成!
0
否决!

好的,谢谢诗人