tractorcow / silverstripe-datelink
允许您将类似WordPress风格的年/月URL添加到您网站的时间敏感部分
Requires
This package is auto-updated.
Last update: 2024-09-20 16:40:47 UTC
README
本模块允许您创建带日期的URL,即带有年份和月份在URL段之前的链接。
如果您希望博客文章或其他时间特定的网站部分显示发布时间,这很有用。这遵循了WordPress和其他博客应用程序的相同风格。
例如,如果您有一个网址如下所示的博客
http://www.mysite.com/blog/heres-an-awesome-post
您可以将这些链接转换为
http://www.mysite.com/blog/2012/2/heres-an-awesome-post
带日期风格的URL只能应用于分组在指定类型常见持有页面下的子页面。
致谢和作者
- Damian Mooyman - https://github.com/tractorcow/silverstripe-datelink
要求
- SilverStripe 3.1
安装说明
- 将所有文件提取到您的Silverstripe根目录下的'datelink'文件夹中,或使用composer安装
composer require "tractorcow/silverstripe-datelink": "3.1.*@dev"
- 确保资产文件夹可正确写入。此模块将在assets/_datelink下保存一个xml文件,并需要写入权限
- 配置页面选项。请参阅配置部分。
- 运行dev/build以生成和缓存路由。
使用缓存XML文件存储路由模式的原因是,在路由初始化之前无法访问数据库。所有必要的父页面和年份都在dev/build期间提取,以创建silverstripe在路由期间可以使用的不重复模式,以防止它与默认页面路由冲突。然后,这些路由简单地从XML文件中读取并设置在每个页面加载时的路由表中。
配置
有关基本配置选项,请参阅DateLink.yml
类过滤器配置
要设置日期自定义链接,您应配置每个子类和父类的关系的类名。唯一必须设置的配置属性是DateLink.holder_classes
,以指定所有带日期URL的父类。
DateLink: holder_classes: - 'BlogHolder'
默认情况下,指定类下的所有子类都将应用带日期的URL。为了进一步过滤这些类,可以应用额外的过滤器,即DateLink.child_classes
配置属性。
例如,仅过滤'BlogEntry'页面
DateLink: child_classes: - 'BlogEntry'
URL配置
您可以使用配置属性DateLink.url_pattern
自定义URL布局,包括年份、月份(名称/数字)、月份的天数,甚至星期几。
DateLink: url_pattern: '$ParentLink!/$Year!/$Month!/$URLSegment!//$Action/$ID/$OtherID'
以下占位符可用于此处
- $ParentLink! - 父页面URL(必需)
- $URLSegment! - 当前页面的URLSegment(必需)
- $Year! - 年份(必需)
- $Month! - 月份
- #$Month! - 带前导零的月份
- $MonthName! - 月份名称(全名)
- $Date! - 月份的天数
- #$Date! - 带前导零的月份的天数
- $Weekday! - 星期几(全名)
在'//'之前的所有通配符都必须带有尾随'!'符号
日期配置
每个页面存储日期的字段可以通过两种方式之一进行自定义
DateLink.default_date_field
配置选项将设置默认字段。默认情况下为 'Created'- 在您的页面类中重写
getRouteDate
函数以返回该页面应使用的日期值。
许可协议
版权所有(c)2013,Damian Mooyman。保留所有权利。
版权所有。
以下条件满足的情况下,允许重新分发和使用源代码和二进制代码,无论是否修改
- 源代码的重新分发必须保留上述版权声明、本条款列表以及以下免责声明。
- 二进制形式的重新分发必须在文档和/或其他与分发一起提供的材料中复制上述版权声明、本条款列表以及以下免责声明。
- 未经特定事先书面许可,不得使用Damian Mooyman的名字来证明或推广由此软件派生出的产品。
本软件由版权所有者和贡献者“按原样”提供,并不承担任何明示或暗示的保证,包括但不限于适销性和针对特定目的的适用性保证。在任何情况下,版权所有者或贡献者不应对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代货物或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论此类损害是由于何种原因引起的,无论是在合同、严格责任还是侵权(包括疏忽或不计)中产生的,即使已告知此类损害的可能性。