matfish/craft-blogify

为 CraftCMS 定制的即插即用博客

安装: 191

依赖项: 0

建议者: 0

安全性: 0

星标: 5

关注者: 1

分支: 3

公开问题: 0

语言:HTML

类型:craft-plugin

3.0.0 2024-04-13 09:02 UTC

This package is auto-updated.

Last update: 2024-09-13 09:46:53 UTC


README

Blogify 为使用 CraftCMS 构建博客提供了一键式解决方案。

安装插件后,它会创建数据结构和模板,并允许您生成假帖子,以便您可以立即开始定制您的博客。Blogify 随带许多 Twig 优化,使模板中的代码声明性更强、更简单。

点击 这里 查看零配置结果的全演示。

安装

  1. 包含包
composer require matfish/craft-blogify
  1. 安装插件
php craft plugin/install blogify
  1. (可选但推荐用于开发) 种植一些帖子
php craft blogify/seed

默认为 10 篇帖子。您可以通过传递 --count 选项来种植任意数量的帖子。

就是这样!现在转到 {yoursite.dev}/blog/index 并查看博客的实际效果。

规格

Blogify 向 Craft 添加以下数据结构

  1. 一个“博客列表”(或索引)单页。
  2. 一个“博客”频道
  3. 一个“作者页面”单页(所有作者帖子)
  4. 一个“博客分类”类别组和相应的类别模板,用于显示与给定类别相关的所有帖子。
  5. 一个“博客标签”标签组
  6. 一个“标签页面”单页(所有具有给定标签的帖子)
  7. 一个“博客资产”资产卷。
  8. 一个“博客缩略图”转换。

博客频道中的每个帖子都有以下字段

  1. 标题
  2. 图像
  3. 摘要
  4. 内容(一个 Redactor 字段)
  5. 类别
  6. 标签

Twig 增强

初始主题演示了以下所有增强的使用。

全局变量

Blogify 提供一个全局 blogify 变量,具有以下属性

  • categories 所有博客类别
  • usedCategories 所有至少与一个帖子关联的博客类别
  • tags 所有博客标签

全局方法

  • blogifyRecentPosts 获取最近帖子。例如 blogifyRecentPosts().limit(4).all()
  • blogifySearch 搜索博客(标题和内容字段)。例如 blogifySearch('foo')
  • blogifyPopularPosts 获取最受欢迎的帖子(见下文)。

此外,实体包含以下上下文方法

条目(帖子)

  • categories 获取帖子类别
  • relatedPosts 获取与给定帖子类别之一关联的其他帖子
  • tags 获取帖子标签
  • next 获取下一篇帖子
  • prev 获取上一篇帖子
  • image 获取帖子图像
  • thumbnail 获取帖子缩略图(在设置->资产->图像转换->博客缩略图下定义)
  • excerpt 获取帖子摘要
  • content 获取帖子内容(支持 Matrix 字段渲染。见下文)

类别

  • posts 获取与给定类别相关的帖子

标签

  • posts 获取具有给定标签的帖子

用户(作者)

  • posts 获取作者帖子

注意:除非方法获取单个实体(例如 entry.image),否则 Blogify 将返回一个查询对象,可以进一步扩展查询,例如 author.posts.limit(3).all()

使用 Matrix 字段作为帖子内容

默认情况下,提供的帖子内容字段是 Redactor 字段。如果您希望使用功能强大的 Matrix 字段,我们为您提供支持

  • 转到设置->字段->帖子内容
  • 将字段类型更改为 Matrix 并构建您的块。
  • blogify/post 下添加一个 _matrix 文件夹
  • 为每个块类型添加一个模板,命名方式为处理。

每个部分将暴露一个包含所有字段的block变量。例如,如果您的块处理程序为postHeading并且它有一个heading字段,则创建一个blogify/post/_matrix/postHeading.twig文件

    <h2>{{block.heading}}</h2>  
  • 渲染文章内容
<div class="post-content">
    {{ entry.content | raw }}
</div>

请注意,您可以通过插件的配置更改模板文件夹路径。创建一个config/blogify.php文件

return [
     // matrix templates path relative to the templates folder
    'matrixTemplatesPath'=>'my/matrix/path'
];

记录文章查看次数

Blogify允许您跟踪您文章的受欢迎程度,因此您可以按受欢迎程度排序并显示查看次数。此选项默认禁用。您可以通过一条命令启用它

php craft blogify/views/record

这将向您的文章添加一个只读的“文章查看次数”字段(在标题右侧)。现在,每次有人查看文章时,Blogify都会自动增加查看次数,同时排除草稿和预览。

排除IP

由于您可能不想记录您自己的查看次数,您可以通过在config/blogify.php中添加以下内容来排除某些IP以触发事件

return [
   'postViewsExcludeIps'=>[
       '192.168.10.1'
  ]
];

现在您可以在模板中按受欢迎程度排序(当然按降序排序)

blogifyPopularPosts().limit(5).all()

要排除没有查看次数的文章,请将true传递给方法调用

blogifyPopularPosts(true).limit(5).all()

最后,在模板中显示查看次数,只需调用

{{entry.views}}

多个站点

安装Blogify后,它将注册所有分类组和所有现有站点的所有部分,具有相同的URL(相对于站点根URL)和相同的模板。

如果您需要在站点之间更改模板内容,可以使用

  1. 静态翻译
  2. 条件语句
  3. 多态

如果您仍然需要复制整个模板,您可以将其复制到您的站点文件夹中,同时保持相同的文件夹结构 **(例如 templates/de/blogify/listing/_entry.twig) 这将提示Craft在访问具有处理程序de的站点时将此模板加载为覆盖。请参阅:https://craftcms.com/docs/4.x/sites.html#step-4-update-your-templates

** 注意,您还可以将其复制到一个不保留相同文件夹结构的路径,在这种情况下,您需要在Craft的后端为新部分/分类组定义一个新的模板路径。

修改

Blogify被设计为一个博客的坚实起点。您可以自由扩展和修改数据结构和模板,同时注意以下事项

  • 不要更改任何实体的处理程序。
  • 不要删除任何数据结构。
  • 卸载插件将删除所有数据,包括blogify模板文件夹。

许可证

您可以在开发环境中使用Blogify,直到您喜欢。一旦您的站点上线,您必须为插件购买许可证。许可证可通过Craft插件商店购买。

有关更多信息,请参阅Craft的商业插件许可

要求

此插件需要Craft CMS 3.7.0或更高版本。

问题和讨论指南

请只为错误报告打开新的问题。 对于功能请求和问题,请打开一个新的讨论。在讨论功能请求时,请在标题前加上[FR]。