skripteria/wn-snowflake-plugin

雪崩插件是Winter CMS的动态内容管理器

安装: 234

依赖: 0

建议者: 0

安全: 0

星标: 6

关注者: 1

分支: 4

开放问题: 4

类型: winter-plugin

v1.0.4 2021-12-23 13:24 UTC

This package is auto-updated.

Last update: 2024-09-23 19:45:54 UTC


README

版本历史

  • 1.0.1. 初次发布

使用Composer安装

composer require skripteria/wn-snowflake-plugin

php artisan winter:up

为什么在CMS中还要有一个新的"CMS"呢?

在现实生活中,至少有4种不同的用户类型,所有这些用户类型都需要同时得到关注

  • 技术开发者,对如何构建自定义功能有一定的内部知识;
  • 网页设计师,通常对网页设计更感兴趣,而不是后端开发;
  • 对网页感兴趣的终端用户,对事物应该如何看起来有一个愿景,并努力使之成为现实。他不怕尝试自定义,一个典型的WordPress客户。
  • 非技术用户,偶尔需要做一些内容编辑,因为工作或业务需要。

前三种客户类型在讨论CMS应该是什么样的时通常会得到考虑,最后一种用户类型往往会被忽视。

然而,当你为付费客户开发网站时,最后一种客户类型就是你最终会遇到的。

结果是,你需要使内容管理无懈可击,并隐藏除了需要管理的特定内容之外的所有内容。

雪崩通过自动化Winter CMS后端框架的权力来处理这一点。

使用雪崩

安装完成后,您首先需要将雪崩组件添加到您希望使用它的任何CMS布局中。这将允许在布局本身以及使用此布局的任何页面上使用雪崩Twig过滤器。

在这些CMS页面上,您现在可以使用'sf' Twig过滤器添加一些内容变量,例如。

<h1>{{ my_headline | sf('text', 'My awsome headline', 'Main headline of this page.') }}</h1>

第一部分('my_headline')是雪崩键,它将被用来渲染内容。雪崩键就像一个普通的Twig变量一样,是内容的引用。

每个雪崩键在给定页面上必须是唯一的,但可能与其他页面的键冲突。向布局添加雪崩键时,可能会发生与页面的名称冲突,因此建议通常在布局中前缀雪崩键(例如'layout_my_headline')。

然后,'sf'过滤器可以接受最多3个参数

  • 参数1定义了内容的类型。这控制了用于内容管理的后端小部件。
  • 参数2(可选)允许为内容设置默认值。对于'text', 'file', 'date', 'mediaimage'和'mediafile'类型,默认值没有效果。
  • 参数3(可选)允许为负责内容管理的人员添加描述。

请注意,在参数中不得使用逗号(,)和竖线(|)字符。

目前雪崩支持7种标准类型和5种特殊类型。

标准类型包括

  • text(简单的文本输入,例如用于标题)
  • color(Winter CMS颜色选择器)
  • markdown(Winter CMS markdown编辑器)
  • richeditor(Winter CMS富文本编辑器)
  • code(Winter CMS代码编辑器)
  • date(Winter CMS日期选择器)
  • textarea(纯文本区域字段)

3个特殊案例是

  • image:

    要控制图片,将使用Winter CMS图片上传小部件。然而,它使用2个值来渲染,即图片路径和img alt属性。因此,变量也需要传递2个值。

    操作方式如下

    <img src="{{ my_image | sf('image','','This is the hero image on this page')}}" alt='{{ my_image___alt }}'>

    请注意,'sf'过滤器只在src属性中添加一次,alt属性随后使用相同的键加上后缀'__alt'

  • mediaimage:

    与'image'相同,但'mediaimage'使用Winter媒体库作为图片来源

    <img src="{{ my_image | sf('mediaimage','','This is the hero image on this page')}}" alt='{{ my_image___alt }}'>
  • file:

    用于控制文件上传。像图片一样,它使用2个值,这次是文件路径和显示在链接中的文件名。

    类似于图片,操作方式如下

    <a href="{{ my_file | sf('file','','This is my uploaded file')}}">{{ my_file__name }}</a>
  • mediafile:

    与'file'相同,但'mediafile'使用Winter媒体库作为文件来源

    <a href="{{ my_file | sf('mediafile','',' 'This is my uploaded file')}}">{{ my_file__name }}</a>
  • link:

    用于内部Winter CMS链接。link类型允许内容管理员直接复制浏览器窗口的全URL,无需担心格式是否正确。它将自动转换为干净的相对链接。

与Snowflake后端同步

如果您使用Winter CMS后端来编辑代码,您需要做的就是保存您的页面或布局,Snowflake将自动在数据库中创建或更新相应的记录。

一旦Snowflake键被移除(或重命名),它将按以下逻辑处理为未使用的数据库记录

  • 记录中已有现有内容:保留它;
  • 否则:删除它。

或者,还有一个控制台命令可以同步所有CMS页面和布局

php artisan snowflake:sync

您可以使用它来清理所有未使用的Snowflake键(注意 - 这也将删除附加的内容)

php artisan snowflake:sync --cleanup