Miscellaneous > oui_cookie
Set, read, reset or delete cookies manually or through URL variables.
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). <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
- @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).. <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)