Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nicolasgraph/oui_cookie

Cookie management plugin for @Textpattern
https://github.com/nicolasgraph/oui_cookie

cookie cookies textpattern textpattern-plugin

Last synced: about 11 hours ago
JSON representation

Cookie management plugin for @Textpattern

Awesome Lists containing this project

README

        

h1. oui_cookie

h2. Introduction

Set, check, read, reset or delete cookies manually or through GET/POST parameters.

p(alert-block warning). %(ui-icon ui-icon-alert).% According to the "EU legislation":http://ec.europa.eu/ipg/basics/legal/cookies/index_en.htm#section_2, some cookies need the user consent before to be set.

h3. Plugin requirements

oui_cookie's minimum requirements:

* "Textpattern CMS":http://textpattern.com/ 4.6+.

h2. Plugin management

h3. Installation

h4. From the admin interface

# "Download":https://github.com/NicolasGraph/oui_cookie/releases the compiled plugin file or the source to compile a customized file.
# Paste the content of the compiled plugin file under the "Admin > Plugins":?event=plugin tab and click the _Upload_ button.
# Confirm the plugin install by clicking the _Install_ button on the plugin preview page.
# Enable the plugin.

h4. Via Composer

After "installing Composer":https://getcomposer.org/doc/00-intro.md…

# Target your project directory:
@$ cd /path/to/your/textpattern/installation/dir@
# If it's not already done, lock your version of Txp:
@$ composer require textpattern/lock:4.6.2@, where @4.6.2@ is the Txp version in use.
# Install oui_cookie:
@$ composer require oui/oui_cookie@

h3. Update

h4. From the admin interface

# Follow the installation instruction above.

h4. Via Composer

bc. $ composer update oui/oui_cookie

h3. Uninstall

h4. From the admin interface

# Check the box on the left of the plugin row under the "Admin > Plugins":?event=plugin.
# open the select list at the bottom of the plugins table and choose _Delete_.
# confirm the plugin deletion.

h4. Via Composer

bc. $ composer remove oui/oui_cookie

h2. Tags

h3(#oui_cookie). oui_cookie

bc(language-markup).

or

bc(language-markup)..
[…]

h4. Attributes

h5. Required

- @name@ :=
*Value:* string; none by default.
The cookie (and GET/POST parmater) name you want to use. If no other attibutes are defined, the tag will read and display the related value. =:

h5. Manually set a cookie

- @value@ :=
*Value:* string; none by default.
A value to manually set the named cookie.
You can also set the cookie value by using a continer tag like you would for a variable. =:

h5. Set a cookie through a GET/POST parameter

- @values@ :=
*Value:* comma separated list of strings; none by default.
A comma separated list of accepted values for the GET/POST parameter and its cookie. =:
- @default@ :=
*Value:* string; none by default.
A default value.
If set, the plugin conditional tag will always be true if not check against a defined value. =:
- @delete@ :=
*Value:* string; none by default.
An GET/POST parameter value used to delete the cookie. =:

h5. Optional cookie settings

- @duration@ :=
*Value:* "strtotime":http://php.net/manual/fr/function.strtotime.php value, @+1 day@ by default.
The duration of the cookie. =:

h5. Delete a cookie

- @delete@ :=
*Value:* @0@ or @1@; @0@ by default.
If set to @1@ this attribute will delete the named cookie. =:

h3(#oui_cookie). oui_if_cookie

bc(language-markup)..
[…]

[…]

p. This tag checks the status or the value of the cookie (and/or the related GET/POST parameter) defined by the @name@ attribute.

h4. Attributes

h5. Required

- *@name@* :=
*Value:* string; none by default.
The cookie (and GET/POST parameter) name you want to use. =:

h5. Optional

- @value@ :=
*Value:* string; none by default.
A value to check against the cookie (and/or the GET/POST parameter) value. =:

h2. Examples

h3. Front-end articles sorting

List the sort options you want to use:

bc(language-html)..

disabled selected>Size
disabled selected>Weight

p. Then, catch the GET/POST parameter sent by this list to store it (useful to keep the sort order pages after pages).

bc(language-markup).

Now use the new value as the value of the @sort@ attribute of your article tag.

bc(language-markup).

h3. Last viewed article

Store the current article id in a cookie:

bc(language-markup).

Now, use the following code anywhere you want to display the last viewed article.

bc(language-markup).

h3. EU cookies Warning

bc(language-markup)..


This website uses cookies. I agree, remove this message!


p. Now, you can add some progressive enhancement to avoid to refresh the page if javascript is on.
However, note that it wouldn't instantaneously display a potential alternative content placed before the @@ tag if the cookie is not set/setting.

bc(language-javascript)..
(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!
};
}());

h2. Credits

h3. Author

"Nicolas Morand":https://twitter.com/NicolasGraph
_Thank you to the Textpattern community and the core team._

h3. License

This plugin is distributed under "GPL v2.0":https://www.gnu.org/licenses/gpl-2.0.txt.

oui_cookie version 1.0.0-BETA3, Copyright (C) 2018 Nicolas Morand
This Textpattern plugin comes with ABSOLUTELY "NO WARRANTY":https://www.gnu.org/licenses/gpl-2.0.html#section11.
This is free software, and you are welcome to redistribute it "under certain conditions":https://www.gnu.org/licenses/gpl-2.0.html#SEC3.

h3. Changelog

* *1.0.0-beta3* (2018-07-06)
** Changed: OOP related code rework;
** Removed: Txp 4.5 support;
** Adds "Composer":https://getcomposer.org/ support for "textpattern/installer":https://packagist.org/packages/textpattern/installer.
* *0.2.3* (2016-06-21)
** Code rewrite;
** manual cookie setting added;
** @display@ attribute removed (setting and reading are now separated);
** deletion process changed.
* *0.1.3* (2016-05-29)
** improves conditional tag results;
** @delete@ attribute unset by default (but any none valid value for a defined GET/POST parameter will delete the related cookie).
* *0.1.2* (2016-05-26)