(redirected from Cookbook.OnPage)

Summary: activate recipes based on group(s), name(s), cookie(s), session var(s), mark(s) in the needle page, action(s), download var(s), post var(s), get var(s) and does it all from config.php
Version: 20180313
Prerequisites: none
Status: mantained
Maintainer: CarlosAB February 20, 2018, at 05:04 PM
License: GPL
Users: (view? / edit)
Discussion: OnEvent-Talk?

Questions answered by this recipe

How can I change variables and activate recipes in config.php based on page(s), group(s), action(s), cookie(s), session var(s), mark(s), upload var(s)=value(s) and download var(s)=value(s)?


Enable recipes based on based on name(s), group(s), action(s), mark(s),upload var(s)=value(s) and download var(s)=value(s) from config.php.

This is an amalgamation of the recipes OnGet, OnPost, OnUpload, OnDownload, OnName, OnGroup, OnAction, OnCookie, OnSession, OnSearch, OnSearchLen, OnNameLen and OnMark, so you don't have to load all of them separately in config.php.


Just do a include_once in config.php, you have to save the recipe on cookbook folder.



On config.php, do as shown bellow:

if(OnName('Main,WikiSandbox,DocumentationIndex') && OnGroup('Main,PmWiki') && OnCookie('water=blue,sky=blue,sand=beige') &&
   OnSession('authid=Necromonger,secret=ok,') && OnAction('edit,browse') && OnMark('(:div,(:table,(:problematic-markup')) {
      echo "Condition triggered!";

More tests you can do:

## OnEvent Recipe tests

## fill up some vars
$_COOKIE['water'] = 'blue';
$_SESSION['nene'] = 'cuca';

## 1 - OnMark
if(OnMark('(:div, (:table, (:div, (:load')) echo "<pre>-= On Mark =-</pre>";

# OnMark test 2 - edit Main/WikiSandbox to trigger it
if(OnAction('edit') && OnGroup('Main') && OnName('WikiSandbox, HomePage') 
   && OnMark('(:load,[[PmWiki/Text Forma'))  echo "<pre>-= On Action & Group & Name & Mark | $pagename =-</pre>";

## 2 - OnName
if(OnName('Main,Venus')) echo "<pre>-= On Name =-</pre>";

## 3 - OnGroup
if(OnGroup('Main, PmWiki , Pm ')) echo "<pre>-= On Group =-</pre>";

## 4 - OnAction
if(OnAction("edit,diff")) echo "<pre>-= On Action =-</pre>";

## 5 - OnCookie test
if(OnCookie('water=blue,sapo=amarelo')) echo "<pre>-= On Cookie =-</pre>";

## 6 - OnSession test
if(OnSession('nene=cuca'))echo "<pre>-= On Session =-</pre>";

## 7 - OnUpload test
if(OnUpload('name=test.txt,tmp_name=test.txt,name=boh.txt')) echo "<pre>-= On Upload =-</pre>";

## 8 - OnDownload test
if(OnDownload('test.txt,teste.txt,boh.gif')) file_put_contents('./proof.txt', "<pre>-= On Download =-</pre>");

## 9 - OnNameLen
if(OnNameLen('<3,>10')) echo "<pre>-= On Name Len =-</pre>";

## 10 - OnSearchLen
if(OnSearchLen('>3')) echo "<pre>-= On Search Len =-</pre>";

## 11 - OnSearch
if(OnSearch('wi')) echo "<pre>-= On Search =-</pre>";

## 12 - OnGet
if(OnGet('water=blue,sapo=amarelo')) echo "<pre>-= On Get =-</pre>";

## 13 - OnPost
if(OnPost('q=blue,sapo=amarelo')) echo "<pre>-= On Post=-</pre>";

You can include recipes as well, all based on this simple syntax.

Change log / Release notes

20180220 - first release - onevent-20180220.phpΔ
20180220-2 - second release - onevent-20180220-2.phpΔ
20180221 - shrinked the code a bit, introduced new On* events - onevent-20180221.phpΔ
20180225 - included some new events, now (almost) all of them accept arrays as well - onevent-20180225.phpΔ
20180313 - all events accept arrays and string, changed OnPage() to OnName() - onevent-20180313.phpΔ

See also


CarlosAB February 20, 2018, at 05:04 PM


See discussion at OnEvent-Talk?

User notes? : If you use, used or reviewed this recipe, you can add your name. These statistics appear in the Cookbook listings and will help newcomers browsing through the wiki.