oui / oui_cookie
Textpattern CMS 的 Cookie 管理插件
Requires
- textpattern/installer: *
- textpattern/lock: 4.6.*
This package is not auto-updated.
Last update: 2024-09-24 18:53:42 UTC
README
简介
手动或通过 GET/POST 参数设置、检查、读取、重置或删除 Cookie。
. 根据 欧盟法规,一些 Cookie 在设置前需要用户同意。
插件要求
oui_cookie 的最低要求
- Textpattern CMS 4.6+.
插件管理
安装
从管理员界面
- 下载 编译好的插件文件或源文件以编译自定义文件。
- 将编译好的插件文件内容粘贴到“管理员 > 插件”:?event=plugin 选项卡下,然后点击 上传 按钮。
- 通过插件预览页面上的 安装 按钮确认插件安装。
- 启用插件。
通过 Composer
在 安装 Composer 后
- 定位到您的项目目录
$ cd /path/to/your/textpattern/installation/dir
- 如果尚未完成,锁定您的 Txp 版本
$ composer require textpattern/lock:4.6.2
,其中4.6.2
是正在使用的 Txp 版本。 - 安装 oui_cookie
$ composer require oui/oui_cookie
更新
从管理员界面
- 按照上述安装说明进行操作。
通过 Composer
$ composer update oui/oui_cookie
卸载
从管理员界面
- 在“管理员 > 插件”:?event=plugin 下的插件行左侧勾选复选框。
- 打开插件表底部的下拉列表,选择 删除。
- 确认删除插件。
通过 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
值:
0
或1
;默认为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)
- 更改:重写了与 OOP 相关的代码;
- 移除:Txp 4.5 支持;
- 添加了对 Composer 的支持,用于 textpattern/installer。
- 0.2.3 (2016-06-21)
- 代码重写;
- 添加了手动 cookie 设置;
- 移除了
display
属性(设置和读取现在是分开的); - 更改了删除过程。
- 0.1.3 (2016-05-29)
- 改进了条件标签的结果;
- 默认情况下未设置
delete
属性(但任何非有效值都会删除相关 cookie)。
- 0.1.2 (2016-05-26)