ctigelaar/craft-guestentries

此包最新版本(dev-master)没有可用的许可信息。

Craft CMS 的访客条目插件

安装: 26

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 26

类型:craft-plugin

dev-master 2016-07-06 14:31 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:04:14 UTC


README

此插件允许您从网站前端保存访客条目。

要求

此插件需要 Craft 2.0+。

安装

要安装访客条目,请按照以下步骤操作

  1. 将 guestentries/ 文件夹上传到您的 craft/plugins/ 文件夹。
  2. 从 Craft 控制面板转到设置 > 插件并启用访客条目插件。
  3. 单击“访客条目”进入插件设置页面,并根据需要配置插件。

设置

从插件设置页面,您可以配置允许提交访客条目的部分以及默认作者。

默认作者列表中的每个用户都有该部分的“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.successguestEntries.error 事件

插件还可以监听在访客条目成功保存或未保存时触发的 successerror 事件。

它们各自都有一个 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

  • 添加 onSuccessonError 事件。

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

  • 初始发布