2011-03-18 93 views
0

我正在使用表达式引擎使用Weblog模块创建文档站点。我有许多类别,其中包含子类别。类别和子类别包含条目。ExpressionEngine:遍历一个类别中的所有条目

我想为每个类别创建一个页面,输出该父类别中所有子条目和子类别的嵌套列表。在顶部应该有一个面包屑,显示带有父类别链接的类别层次结构。

这里是我的代码:

<!-- url /docs/category/category_id --> 

<!-- Breadcrumb --> 
<!-- This works on the page template, but on the category template it shows all the categories --> 
{exp:weblog:entries weblog="docs" } 
    {categories} 
     <a href="{path='/category'}?category_id={category_id}&category_name={category_name}&category_description={category_description}">{category_name}</a> > 
    {/categories} 
    {title} 
{/exp:weblog:entries} 

<!-- List of Categories --> 
<!-- This shows ALL of the categories. I want it to only show the parent category and its children --> 

{exp:weblog:categories style="nested"} 
    <h1><a href="{path='weblog/category'}"{category_name}</a></h1> 
    {exp:weblog:entries category="{category_id}"} 
     <a href="{path='weblog/page'}">{title}</a> 
    {/exp:weblog:entries} 
{/exp:weblog:categories} 

回答

0

---编辑---

因为我已经写了解决这个问题的一个插件:
https://github.com/adambom/Category-Inheritance-Plugin-for-ExpressionEngine

-------------

下面是我最终做到的。

要获取子类别列表,我通过一个URL查询参数CATEGORY_ID,并运行此:

<ul> 
    {exp:query sql="SELECT cat_id as child_category_id, cat_name AS child_category_name FROM exp_categories WHERE parent_id = '<?php echo addslashes($_GET['category_id']) ?>' ORDER BY category_name ASC"} 
     <li><a href="{path=/category/}?category_id={child_category_id}">{child_category_name}</a></li> 
    {/exp:query} 
</ul> 

这只能一个层次深,但是这是我能得到它做的最好。

此代码将所有条目(不得不硬编码的网址):

{exp:weblog:entries category="<?php echo $_GET['category_id'] ?>"} 
    <p><a href="/simulate/docs2/index.php/page/{entry_id}">{title}</a></p> 
{/exp:weblog:entries} 

作为一个方面说明,我不建议使用expressionengine的任何东西。对于博客,请使用Wordpress。对于文档站点,请使用wiki。我想,我们将转向一个铁路网站。

0

我没有时间写出来的代码给你,但我有时间点,你在(希望)的正确方向。一个名为Laisvunas的ExpressionEngine开发人员创建了几个EE附加组件,用于处理EE类别及其与其他类别和条目的关系。

我不会链接到他们全部,但他的developer page on Devot:ee列出他们全部。他创建的最受欢迎的类别附加组件是Child Categories,它可以完成您要做的大部分工作。如果他(和其他)加载项无法帮助您解决问题,请随时通知我们。

祝你好运!

+0

谢谢。将检查出来,让你知道它是否适用于我。 – Adam 2011-03-21 19:25:41

+0

这不回答我的问题。我正在寻找一种在表达式引擎中编写代码的方式,而不是付费附加组件。如果有办法编写附加组件,我应该可以自己编写,但我肯定不会付钱。 -1 – Adam 2011-03-22 15:54:04

+0

对不起,亚当!作为一个“警告”,你应该知道许多EE附加组件是商业的(就像EE一样)。虽然您可以查阅[EE API文档](http://expressionengine.com/user_guide/development/index.html)并在需要时构建自己的附加组件,但在附加组件上花费少于100美元通常要便宜得多比花费数十小时建立相同的功能。EE的核心类别标签有很多不足之处,因此我所链接的附加组件的存在和普及。祝您的项目好运! – Bitmanic 2011-03-24 01:29:02