高级

高级

在粒子中使用CMS

新功能在Gantry 5.2.14

粒子在你的站点的特定区域显示定制内容非常棒,但是你知道你也可以直接从内容管理系统(CMS)中显示内容吗?这是可能的,以下就是方法。

这是一个高级的过程,我们只建议您尝试一下,如果您是一个有经验的开发人员,了解如何在CMS中处理数据。这是最终用户和站点管理员可能永远不需要处理的事情,因为他们可以访问管理员中预先创建的表单字段。

您将需要使用Gantry内容查找器直接从Joomla加载信息。在此之后,您可以在前端呈现该数据。

所有人都有共同的功能

创建一个新的查询

{% set options = {published: true, id: [14, 3]} %}
{% set finder = joomla.finder('category', options) %}
.parse(options)解析选项数组到规则

在创建finder时,是否与第二个参数相同。

{% set options = {published: true, id: [14, 3]} %}
{% do finder.parse(options) %}
.find()使用分页查找项

默认分页限制,取决于对象类型。

{% set results = finder.find() %}
.count()计算项目总数

这个函数返回一个条目计数,忽略了设置的分页限制。

Total count of items: {{ finder.count() }}

操作

.start(limitstart = 0)分页开始

定义要显示的第一项。默认值为0。

{% do finder.start(10) %}
.limit(limit = 10)分页限制

定义最大项目数量。默认为10。

{% do finder.limit(3) %}
.order(by, direction = 'ASC', alias = 'a')页码顺序

指定项目的顺序。

{% do finder.order('id', 'DESC') %}
.where(field, operation, value)定制的where子句

操作之一: >, >=, <, <=, =, BETWEEN, NOT BETWEEN, IN 和 NOT IN.

{% do finder.where('id', '<', 5) %}
{% do finder.where('id', 'BETWEEN', [1,5]) %}
{% do finder.where('id', 'NOT IN', [1,2,3,4,5]) %}

分类查找

创建一个新的类别查找器

{% set options = {published: true, id: [[14,15], 3]} %}
{% set finder = joomla.finder('category', options) %}
.id(ids, include = true)
  • ids 要么是id数组,要么是单个id。
  • include True如果你想要包括列出的类别。false 如果你想把它们排除在外
{% do finder.id([1,2,3]) %}
.language(language = true)

language如果使用用户默认值,则使用语言标记。

{% do finder.language('en-GB') %}

注意:您需要包含语言过滤器或用户将看到来自所有语言的文章。

内容搜索

创建一个新的内容查找器

{% set options = {featured: true, id: [[1,2,3]]} %}
{% set finder = joomla.finder('content', options) %}
.id(ids, include = true)
  • ids 要么是id数组,要么是单个id
  • include True 如果您想要包含列出的文章,false如果你想把它们排除在外
{% do finder.id([1,2,3]) %}
.featured(include = true)

include如果你想要包含有特色的文章,如果你想要把它们排除在外,设置为真

{% do finder.featured() %}
.author(ids, include = true)
  • ids 要么是id数组,要么是单个id
  • include True 如果您想要包含列出的文章,false如果你想把它们排除在外
{% do finder.author(64) %}
.language(language = true)

language如果使用用户默认值,则使用语言标记。

{% do finder.language('en-GB') %}

注意:您需要包含语言过滤器或用户将看到来自所有语言的文章。

.category(ids, include = true)
  • ids 要么是id数组,要么是单个id
  • include True 如果您想要包含列出的文章,false如果你想把它们排除在外
{% do finder.category([1,2,3]) %}

类对象

类别对象,包含数据库中的所有字段。您可以访问可用的字段,但也有一些函数可以帮助您。

注意:数据库中的所有JSON编码字段都可以用作数组。注意:在html字段中使用 |raw 过滤器。

额外的字段

.route分类路径

包含到类别的路径。

<a href="{{ category.route }}">{{ category.title }}</a>

操作

.parent()获得父类对象

获取父类别或null

{% set parent = category.parent() %}
.parents()获取所有父类对象

获取父类别的列表

{% set parents= category.parents() %}
.compile(string)将类别编译成字符串

使用给定的字符串编译类别。模板context有一个名为category的变量,您可以使用它。

{{ category.render('<a href="/{{ category.route }}">{{ category.title }}</a>') }}
.render(template)呈现类别

使用给定的字符串编译类别。模板context有一个名为category的变量,您可以使用它。

{{ category.render('joomla/category-link.html.twig') }}

joomla/category-link.html.twig:

<a href="{{ category.route }}">{{ category.title }}</a>

内容对象

在文章实例中包含来自数据库的所有字段的内容对象。您可以访问可用的字段,但也有一些函数可以帮助您。

注意:数据库中的所有JSON编码字段都可以用作数组。注意:在html字段中使用 |raw 过滤器。

额外的字段

.text 引言+全文

包含引言和全文

{{ article.text|raw }}
.readmore有全文吗?

如果要读取的内容比在introtext中存在的内容要多,则返回true。

{{ article.readmore ? 'Read More...' }}
.route 文章路径

包含文章的路径

<a href="{{ article.route }}">{{ article.title }}</a>

操作

.author()获得作者对象

从本文的作者处获取JUser对象

{% set author = article.author() %}
.category()获取类对象

获取类对象

{% set category = article.category() %}
.categories()得到所有类别对象

获取从根目录开始的类别对象列表

{% set categories = article.categories() %}
.compile(string)将文章编译成字符串

用给定的字符串编译文章。模板context有一个名为article的变量,您可以使用它。

{{ article.render('<a href="/{{ article.route }}">{{ article.title }}</a>') }}

.render(template)呈现文章 使用给定的模板文件呈现文章。模板context有一个名为article的变量,您可以使用它。

{{ article.render('joomla/article-link.html.twig') }}

joomla/article-link.html.twig:

<a href="{{ article.route) }}">{{ article.title }}</a>

访问当前文章

您还可以获取当前的文章并在您自己的粒子中显示它的标题如下:

{% set request = gantry.request.request %}
{% if request['option'] == 'com_content' and request['view'] == 'article' and request['id'] %}

    {% set article = joomla.finder('content').id([request['id']]).language().find()|first %}
    <h1>{{ article.title }}</h1>

{% endif %}

在本例中,标题仅显示在单一的文章视图中。

说点什么...
取消
你是一个访客 ( 注册 ? )
作为一个访客
加载评论... 注释将在之后刷新 00:00.

第一个发表评论

joomlass-logo31.png

Search


Notice: Only variables should be assigned by reference in /www/wwwroot/www.joomlass.com/plugins/system/sixecontactonline/tmpl/default.html.php on line 13