thepixelage / craft-markasnew
“标记为新品”是Craft CMS的一个插件,用于标记内容和产品为新品
Requires
- php: ^8.0
- ext-json: *
- craftcms/cms: ^4.0.0
This package is auto-updated.
Last update: 2024-09-11 11:44:02 UTC
README
“标记为新品”是一个Craft CMS/Craft Commerce插件,用于标记本地元素为新品。它提供了日期/时间字段,可以在编辑页面中指定一个日期/时间,直到该条目或产品被视为新品。
目前,只支持以下本地元素
- 条目(Craft CMS)
- 产品(Craft Commerce)
功能
在控制面板中新增日期/时间字段编辑页面
在控制面板的条目编辑和产品编辑页面的右侧边栏中添加了一个名为“标记新品至”的日期/时间字段。如果设置了,它指定该元素被视为新品直到所选的日期/时间。
对于条目,该字段在“过期日期”字段之后显示。对于产品,该字段只在产品保存后才显示,并且在“更新日期”元字段之后显示。
排除/包含条目类型或产品类型
默认情况下,该字段添加到所有条目类型和产品类型。如果您希望排除某些类型以显示该字段,请将一个名为markasnew.php
的文件添加到config
文件夹中,并指定以下内容
return [ 'excludeTypes' => [ 'entries.blog', 'products.clothing', ], ];
类型指定为<namespace>.<typeHandle>
的格式。命名空间entries
和products
表示类型处理程序分别是一个条目类型处理程序和一个产品类型处理程序。
如果您要排除的条目类型和产品类型列表特别长,您还可以使用includeTypes
键
return [ 'includeTypes' => [ 'entries.services', 'products.bikes', ], ];
上面的设置将隐藏所有类型中的字段,除了在includeTypes
下指定的那些。
元素属性
条目和产品获得了两个新属性,可以通过访问这些属性来找出它们是否被标记为新品,或检索它们不再被视为新品的时间。
还有两个与这两个元素属性相对应的元素索引表属性,可以用来在控制面板中的条目列表或产品列表中显示它们的列。
元素查询
例如,查询博客部分中标记为新品的条目列表
{% set entries = craft.entries.section('blog').markedAsNew(true).all() %}
并且查询标记为新品的商品列表
{% set products = craft.products.markedAsNew(true).all() %}
GraphQL
例如,查询标记为新品的条目列表
{ entries(markedAsNew: true) { title markedAsNew markNewUntilDate } }
并且查询标记为新品的商品列表
{ products(markedAsNew: true) { title markedAsNew markNewUntilDate } }
条件规则类型
在ElementCondition
中添加了一个自定义条件规则类型“标记为新品”,以便可以在控制面板中的条目列表和产品列表中进行筛选。
由ThePixelAge创建