Project Awesome project awesome

Miscellaneous > oui_cookie

Set, read, reset or delete cookies manually or through URL variables.

Package 4 stars GitHub

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:

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). <txp:oui_cookie name="…" />

or

bc(language-markup).. <txp:oui_cookie name="…"> […]

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

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).. <txp:oui_if_cookie name="…"> […] <txp:else /> […]

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).. <option value="custom_1"<txp:oui_if_cookie name="sort_by" value="custom_1"> disabled selected>Size <option value="custom_2"<txp:oui_if_cookie name="sort_by" value="custom_2"> 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). <txp:oui_cookie name="sort_by" values="custom_1, custom_2" default="custom_1" />

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

bc(language-markup). <txp:article sort='<txp:oui_cookie name="sort_by" />' />

h3. Last viewed article

Store the current article id in a cookie:

bc(language-markup). txp:if_individual_article <txp:oui_cookie name="last_article" value='<txp:article_id />' />

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

bc(language-markup). <txp:if_cookie name="last_article"> <txp:article_custom id='<txp:oui_cookie name="last_article" />' />

h3. EU cookies Warning

bc(language-markup).. <txp:oui_cookie name="accept_cookies" values="yes" />

<txp:oui_if_cookie name="accept_cookies"> <txp:else />

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 @<txp:else />@ tag if the cookie is not set/setting.

bc(language-javascript)..

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)
Back to Textpattern