skripteria / wn-snowflake-plugin
雪崩插件是Winter CMS的动态内容管理器
Requires
- php: >=7.0
- composer/installers: ~1.0
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