oui/oui_cookie

Textpattern CMS 的 Cookie 管理插件

安装次数: 5

依赖项: 0

建议者: 0

安全: 0

星星: 3

关注者: 3

分支: 3

开放问题: 1

类型:textpattern-plugin

1.0.0-beta4 2018-10-26 14:46 UTC

This package is not auto-updated.

Last update: 2024-09-24 18:53:42 UTC


README

简介

手动或通过 GET/POST 参数设置、检查、读取、重置或删除 Cookie。

. 根据 欧盟法规,一些 Cookie 在设置前需要用户同意。

插件要求

oui_cookie 的最低要求

插件管理

安装

从管理员界面

  1. 下载 编译好的插件文件或源文件以编译自定义文件。
  2. 将编译好的插件文件内容粘贴到“管理员 > 插件”:?event=plugin 选项卡下,然后点击 上传 按钮。
  3. 通过插件预览页面上的 安装 按钮确认插件安装。
  4. 启用插件。

通过 Composer

安装 Composer

  1. 定位到您的项目目录
    $ cd /path/to/your/textpattern/installation/dir
  2. 如果尚未完成,锁定您的 Txp 版本
    $ composer require textpattern/lock:4.6.2,其中 4.6.2 是正在使用的 Txp 版本。
  3. 安装 oui_cookie
    $ composer require oui/oui_cookie

更新

从管理员界面

  1. 按照上述安装说明进行操作。

通过 Composer

$ composer update oui/oui_cookie

卸载

从管理员界面

  1. 在“管理员 > 插件”:?event=plugin 下的插件行左侧勾选复选框。
  2. 打开插件表底部的下拉列表,选择 删除
  3. 确认删除插件。

通过 Composer

$ composer remove oui/oui_cookie

标签

oui_cookie

<txp:oui_cookie name="…" />

<txp:oui_cookie name="…">
    […]
</txp:oui_cookie>

属性

必需
name

值: 字符串;默认为空。
您要使用的 Cookie(和 GET/POST 参数)名称。如果没有定义其他属性,标签将读取并显示相关值。

手动设置 Cookie
value

值: 字符串;默认为空。
要手动设置的命名 Cookie 的值。
您还可以通过使用容器标签来设置 Cookie 值,就像您为变量做的那样。

通过 GET/POST 参数设置 Cookie
values

值: 以逗号分隔的字符串列表;默认为空。
逗号分隔的 GET/POST 参数及其 Cookie 接受的值列表。

default

值: 字符串;默认为空。
默认值。
如果设置,则插件条件标签在没有与定义的值进行比较的情况下始终为真。

delete

值: 字符串;默认为空。
用于删除 Cookie 的 GET/POST 参数值。

可选 Cookie 设置
duration

值: strtotime 值,默认为 +1 day
Cookie 的持续时间。

删除 Cookie
delete

值: 01;默认为 0
如果设置为 1,则此属性将删除命名的 Cookie。

oui_if_cookie

<txp:oui_if_cookie name="…">
    […]
<txp:else />
    […]
</txp:oui_if_cookie>

此标签检查由 name 属性定义的 Cookie(和/或相关的 GET/POST 参数)的状态或值。

属性

必需
name

值: 字符串;默认为空。
您要使用的 Cookie(和 GET/POST 参数)名称。

可选
value

值: 字符串;默认为空。
用于检查 Cookie(和/或 GET/POST 参数)值的值。

示例

前端文章排序

列出您要使用的排序选项

<form action="#" method="post">
    <select name="sort_by">
        <option value="custom_1"<txp:oui_if_cookie name="sort_by" value="custom_1"> disabled selected</txp:oui_if_cookie>>Size</option>
        <option value="custom_2"<txp:oui_if_cookie name="sort_by" value="custom_2"> disabled selected</txp:oui_if_cookie>>Weight</option>
    </select>
    <input type="submit" value="Sort">
</form>

然后,捕获此列表发送的 GET/POST 参数以存储它(在页面之间保持排序顺序很有用)。

<txp:oui_cookie name="sort_by" values="custom_1, custom_2" default="custom_1" />

现在,将新值用作您文章标签的 sort 属性的值。

<txp:article sort='<txp:oui_cookie name="sort_by" />' />

上次查看的文章

将当前文章 ID 存储到 cookie 中

<txp:if_individual_article>
    <txp:oui_cookie name="last_article" value='<txp:article_id />' />
</txp:if_individual_article>

现在,您可以在任何想要显示上次查看文章的地方使用以下代码。

<txp:if_cookie name="last_article">
    <txp:article_custom id='<txp:oui_cookie name="last_article" />' />
</txp:if_cookie>

欧盟 cookie 警告

<txp:oui_cookie name="accept_cookies" values="yes" />

<txp:oui_if_cookie name="accept_cookies">
<txp:else />
    <div id="cookies-warning">
        <p>This website uses cookies. <a id="accept_cookies" href="?accept_cookies=yes">I agree, remove this message!</a></p>
    </div>
</txp:oui_if_cookie>

现在,您可以添加一些渐进式增强,以避免在启用 JavaScript 的情况下刷新页面。
然而,请注意,如果 cookie 未设置/正在设置,则不会立即显示在 <txp:else /> 标签之前放置的潜在替代内容。

<script>
    (function() {
        // Get the link which should remove the warning.
        var accept = document.getElementById('accept_cookies');

        // If it exists, listen it…
        if (accept) {
            accept.addEventListener('click', removeWarning);
        }

        // It is clicked!
        function removeWarning(e){
            document.cookie = 'accept_cookies=yes;path=/;expires=864e2'; // Set the cookie for the whole domain for 1 day.
            var warning = document.getElementById('cookies-warning'); // Get the warning message to remove.
            warning.remove(); // Remove the message.
            e.preventDefault(); // Do not follow the link; everything's already done!
        };
    }());
</script>

致谢

作者

尼古拉·莫兰德
感谢 Textpattern 社区和核心团队。

许可证

此插件在 GPL v2.0 下分发。

oui_cookie 版本 1.0.0-BETA3,版权所有 © 2018 尼古拉·莫兰德
此 Textpattern 插件完全不带任何 保修
这是免费软件,您可以在某些条件下重新分发它

变更日志

  • 1.0.0-beta3 (2018-07-06)
  • 0.2.3 (2016-06-21)
    • 代码重写;
    • 添加了手动 cookie 设置;
    • 移除了 display 属性(设置和读取现在是分开的);
    • 更改了删除过程。
  • 0.1.3 (2016-05-29)
    • 改进了条件标签的结果;
    • 默认情况下未设置 delete 属性(但任何非有效值都会删除相关 cookie)。
  • 0.1.2 (2016-05-26)