CMS「GIRVAS」 版本 于 2026年5月12日 发布,开发阶段为「舒亚」。
最新变更
QueryBuilder:新增对 JOIN、CASE 表达式和索引的支持
- 新增枚举 IndexType,包含索引类型(BTREE、HASH、GIST、GIN、SPGIST、BRIN、FULLTEXT)
- 新增 ClauseJoin 类,支持 SELECT 查询中的 JOIN 操作(INNER、LEFT、RIGHT、FULL)
- 实现针对 MySQL 和 PostgreSQL 的自适应 JOIN 条件生成
- 新增 CaseExpression 类,用于构建 SQL 中的 CASE 表达式
- 实现 whenJsonLike() 和 whenJsonArrayContains() 方法,用于 JSON 搜索
- 新增 CaseExpression::sum() 静态方法,用于 CASE 表达式的求和
- 在 QueryBuilder 中新增工厂方法 createCase()
- 新增 StatementCreateIndex 类,用于构建 CREATE INDEX 查询
- 新增 StatementDropIndex 类,用于构建 DROP INDEX 查询
- 实现对 UNIQUE、CONCURRENTLY、IF NOT EXISTS/IF EXISTS 及带 WHERE 条件部分索引的支持
- 在 QueryBuilder 中新增 setStatementCreateIndex() 和 setStatementDropIndex() 方法
- 修复 PostgreSQL 中 addSelections() 对 CASE 表达式的转义问题
- 在 EntryCategory 类中增加对初始化数据(initData)的缓存
新增内置条目搜索引擎
- 在 Entries 类中新增 search() 方法,支持本地化的全文搜索
- 在 Entries 类中新增 getCountBySearch() 方法,用于搜索结果的分页
- 实现搜索结果按相关性排序,支持自定义字段权重
- 实现 AND 搜索,支持将查询拆分为单词并考虑标点符号
- 新增 PageSearch 类,用于显示公共搜索页面
- 修复 PageSearch 中搜索请求的 URL 解码问题
新增带日期导航的条目归档页面
- 在 Entries 类中新增 getByDateRange() 和 getCountByDateRange() 方法,用于按时间段查询
- 在 Entries 类中新增 getAvailableYears() 和 getAvailableMonths() 方法,用于归档导航
- 新增 PageArchive 类,用于显示归档页面
- 实现按年和月导航,并统计条目数量
- getMonthName() 改为公共静态方法,从本地化中获取月份名称
- 归档导航 buildArchiveNavigation() 已重写为使用 DOMDocument
- 在站点地图(Sitemap)中新增归档页面(/archive、/archive?year=YYYY、/archive?year=YYYY&month=MM)
新增对子分类的支持及层级面包屑导航
- 在 Entries 类中新增 getByCategoriesIDs() 和 getCountByCategoriesIDs() 方法
- 在 EntryCategory 类中新增 getChildCategoriesIDs() 方法,用于递归获取子分类
- 在 EntryCategory 类中新增 getParentChain() 方法,用于层级面包屑导航
- 更新 getEntries() 和 getEntriesCount() 方法,增加 includeChildren 参数
- 分类页面 PageEntries 现在会显示包含子分类的条目
- 面包屑导航显示从根分类到当前分类的完整层级
新增 CMS 安装时自动创建索引
- 在安装步骤 6 中,于表生成后新增索引创建块
- 为表 entries、entries_categories、entries_comments、pages_static 创建索引
- 为表 users、users_sessions、forms_data、web_channels、metrics 创建索引
- 为 name、login、email 字段创建唯一索引
- 为 PostgreSQL 新增对 JSONB 字段的 GIN 索引,以及针对已发布条目的部分索引
- 所有索引均使用 IF NOT EXISTS 创建,错误将记录日志而不中断安装
在管理后台的「内容」部分中新增子栏目:「内容块」
- 在「内容」部分中引入了新的子栏目「内容块」
新增内置 SEO 内容分析器,支持 Markdown
- 实现
SeoAnalyzer类,用于检查五个方向:标题、Meta 描述、关键词、内容、URL - 分析器会检查关键词在 SEO 标题、Meta 描述、h2-h6 标题、首段及全文中的出现情况
- 重复控制:若 SEO 字段未填写且与主要字段重复,则发出警告
- Markdown 解析器支持 CMS「GIRVAS」语法中链接和图片的 JSON 属性
- 检测裸 URL 并建议将其格式化为 Markdown 链接
- 检查图片的 alt 文本和外部链接的 rel=nofollow
- 标题层级:h1 已从内容检查中排除,因为由主题生成
- 每个部分均有颜色指示和进度条
- 提供包含具体改进步骤的建议区块
- 完全在客户端运行,无需向服务器发送请求
- 通过 _t() 实现本地化,使用兼容 PHP 的格式
%s、%d、%.nf - 界面已集成到页面和条目编辑器的侧面板中
修复了若干小错误
上一版本: 0.2.9「沃伊茨」
评论