2

我尝试在我的页面中使用 {{ page:slug }} 作为参数来从同名类别中获取博客文章。例如:

  • 页面名称 = 关于我
  • 蛞蝓=关于我

然后在 Blog 中创建一个具有相同名称和 slugname 的类别以及关联的文章。现在在页面布局中,我认为我可以创建以下内容,但它似乎不起作用。有谁知道为什么不?

{{ blog:posts order-by="created_on" dir="asc" category="{{ page:slug }}" }}
<section class="title">
    <h4>
    {{ title }}
    </h4>
</section>
<section class="item">
    <p>{{ intro }}</p>
    <p><a href="{{ url }}">Read more..</a></p>
</section>
{{ /blog:posts }}

解决了

我通过与另一位开发人员面对面询问找到了答案。由于这是一种模板语言,它不支持功能。它只是读取预制变量。所以我将不得不通过在 pages/plugins.php 中创建另一个方法来解决这个问题。

4

3 回答 3

3

您无需尝试在字符串中嵌入标签,只需将标签直接传递给属性即可。

{{ blog:posts order-by="created_on" dir="asc" category="{{ page:slug }}" }}

应该:

{{ blog:posts order-by="created_on" dir="asc" category=page:slug }}

比你想象的容易吗?

于 2012-10-02T16:04:34.067 回答
1

这就是我使用PHP解决它的方法。以下编辑检查是否设置了 {{ blog:posts }} 标记中的页面参数。如果是,它会抓取最后一个片段并将其用作数据库查询中的类别过滤器以仅检索这些帖子:

system/cms/modules/blog/plugin.php 中查找“posts”函数并添加一个参数:

$page   = $this->attribute('page');

然后使用以下语句检查参数是否已设置,然后添加'where'语句:

if($page) //check if page is set
{
  $segment = end($this->uri->segment_array()); //get the last segment from the url
  $this->db->where('blog_categories.slug', $segment); //use the segment as filter
}

现在您可以创建一个包含博客文章的页面,其中类别引用其页面名称,例如:www.website.com/pagename/subpagename/subsubpagename/awesome 然后将其用作页面布局,它将加载具有“真棒'作为类别:

<h3>{{ page:title }}</h3>
{{ blog:posts order-by="created_on" dir="asc" page="true" }}


    <h4>{{ title }}</h4>

    <p>
        {{ intro }}</p>
    <p>
        <a href="{{ url }}">Read more..</a></p>

{{ /blog:posts }} 
于 2012-09-24T00:21:49.217 回答
0

我没有使用标签,而是找到了一个简单的解决方案来尽可能地避免使用标签。就这个。

而不是使用标签调用插件中的视图并将第三个参数作为 TRUE 传递,以便它返回字符串而不是加载视图,而不是像往常一样在视图中执行任何类型的循环和条件检查,就像使用 php o 当然一样。无需在那里满足标签。之后,在您调用此视图的插件中,只需返回一个变量并在页面的标签中使用您的变量来显示视图的内容。
这是一个例子

class Plugin_Home extends Plugin  
{  
    function test()  
    {
        $this->load->model('test/test_m');
        $data['test']   =   $this->test_m->index();
        return $this->load->view('test/test_view',$data , TRUE);
    }
}   

在页面中你可以这样称呼它

{{ Home:test }}

并摆脱用于调节和循环的标签

于 2013-02-23T11:59:09.730 回答