ctigelaar / craft-guestentries
Craft CMS 的访客条目插件
Requires
- composer/installers: ~1.0
This package is not auto-updated.
Last update: 2024-09-14 19:04:14 UTC
README
此插件允许您从网站前端保存访客条目。
要求
此插件需要 Craft 2.0+。
安装
要安装访客条目,请按照以下步骤操作
- 将 guestentries/ 文件夹上传到您的 craft/plugins/ 文件夹。
- 从 Craft 控制面板转到设置 > 插件并启用访客条目插件。
- 单击“访客条目”进入插件设置页面,并根据需要配置插件。
设置
从插件设置页面,您可以配置允许提交访客条目的部分以及默认作者。
默认作者列表中的每个用户都有该部分的“createEntry”权限。
用法
您的访客条目模板可以看起来像这样
<form method="post" action="" accept-charset="UTF-8"> {{ getCsrfInput() }} <input type="hidden" name="action" value="guestEntries/saveEntry"> <input type="hidden" name="redirect" value="success"> <input type="hidden" name="sectionId" value="3"> <label for="title">Title</label> <input id="title" type="text" name="title"> <label for="body">Body</label> <textarea id="body" name="fields[body]"></textarea> <input type="submit" value="Publish"> </form>
您需要调整隐藏的“sectionId”输入以指向您想要发布访客条目的部分。
如果您有一个“redirect”隐藏输入,用户在成功保存条目后将被重定向到该输入。
如果条目有验证错误,则页面将重新加载,并提供一个包含提交条目的 EntryModel 变量。您可以从该变量获取发布的值以及任何验证错误,通过 entry.getError()
,getErrors()
或 getAllErrors()
。 (此变量的名称可通过 entryVariable
配置设置进行配置。)
guestEntries.beforeSave
事件
其他插件可以在访客条目通过 Guest Entries 插件保存之前收到通知,甚至有机会阻止条目的保存。
class SomePlugin extends BasePlugin { // ... public function init() { craft()->on('guestEntries.beforeSave', function(GuestEntriesEvent $event) { $entryModel = $event->params['entry']; // ... if ($isVulgar) { // Setting $isValid to false will cause a validation error // and prevent the entry from being saved. $entryModel->addError('title', 'Do you kiss your mother with those lips?'); $event->isValid = false; } if ($isSpam) { // Setting $fakeIt to true will make things look as if the entry was saved, // but really it wasn't $event->fakeIt = true; } }); } }
guestEntries.success
和 guestEntries.error
事件
插件还可以监听在访客条目成功保存或未保存时触发的 success
和 error
事件。
它们各自都有一个 entry
参数,您可以通过它访问访客条目的 EntryModel
。
此外,success
有一个 faked
参数,这样您就可以知道成功是真实的还是伪造的。
配置
访客条目有以下配置设置
entryVariable
- 在模板因验证错误而重新加载时,提交条目应分配给变量的名称。默认为'entry'
。
要覆盖访客条目的配置设置,在您的 craft/config
文件夹中创建一个新的文件夹,名为 guestentries
,然后在其中创建一个 config.php
文件,位于 craft/config/guestentries/config.php
。该文件应返回一个包含您自定义配置值的数组。
<?php return array( 'entryVariable' => 'guestEntry', );
变更日志
1.5.2
- 限制 AJAX 请求成功保存时返回的数据。这会删除可能敏感的数据。
1.5.1
- 修复了访客条目验证失败时发生的 PHP 错误。
1.5.0
- 添加
onSuccess
和onError
事件。
1.4.0
- 更新以利用 Craft 2.5 插件的新功能。
1.3.1
- 修复了一个问题,即当“验证输入”设置为“关闭”后,Lightswitch会重置为
开启
位置。
1.3
- 添加了
entryVariable
配置设置。
1.2.2
- 修复了一个问题,当为具有动态标题的章节/输入类型保存嘉宾输入时,验证会失败。
1.2.1
- 添加了按章节明确设置是否需要验证的能力。
1.2
- 添加了对运行Craft Client时的客户端用户的支持。
1.1
- 将GuestEntriesService.php添加到保存新嘉宾输入之前触发“onBeforeSave”事件。
1.0
- 初始发布