====== OddEven Plugin ====== ---- plugin ---- description: Paints table rows background to alternating colour stripes author : Vladimir Uryvaev email : az@vovanium.ru type : action lastupdate : 2009-03-24 compatible : !Kaos, Elenor of Tsort, !Igor depends : conflicts : similar : tags : tables, highlight downloadurl: http://vovanium.ru/_media/set/oddeven.tgz ---- ===== Download, Installation, License ===== Search and install the plugin using the [[extension|Extension Manager]]. Refer to [[:Plugins]] on how to install plugins manually. * http://vovanium.ru/_media/set/oddeven.tgz You may visit original plugin page (in Russian) and see a demonstration: http://vovanium.ru/set/oddeven. Plugin is released as Public Domain, because of triviality. ===== Syntax ===== No syntax required. Once the plugin is installed, the background of ALL tables in your DokuWiki will have alternating (odd) rows colored light grey. However, you can modify the color of the rows OR change the alternation from odd to even by modifying the ''style.css'' file included in the download (see below). ===== Plugin internals ===== You may use it as tutorial on how to create output modification plugins. Plugin consists of two files: - //action.php// -- the main code; - //style.css// -- stylesheet. As plugin run, is registers ''RENDERER_CONTENT_POSTPROCESS'' action hook called 'oddeven'. When hook is called, it adds class 'roweven' to 'td' tags having class 'row0', 'row2' etc. and 'rowodd' for 'row1', 'row3' etc. using regexp replacement. Stylesheet defines class 'roweven' to have lightgray background color. ===== Discussion ===== This plugin was not functioning anymore. I fixed the code, so it works again (in "[[changes#release_2022-07-31a_igor|Igor]]"). Download, unpack the plugin directory ''/oddeven'' to your harddrive, update the code in ''action.php'' like so: */ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'action.php'); class action_plugin_oddeven extends DokuWiki_Action_Plugin { function getInfo() { return array( 'author' => 'Vladimir Uryvaev', 'email' => 'az@vovanium.ru', 'date' => '2009-03-24', 'name' => 'OddEven', 'desc' => 'Colorize table rows like zebra', 'url' => 'http://vovanium.ru/set/oddeven', ); } function register($controller) { $controller->register_hook( 'RENDERER_CONTENT_POSTPROCESS', 'AFTER', $this, 'oddeven', array()); } function oddeven($event, $param) { $event->data[1] = preg_replace ( '/data[1] ); $event->data[1] = preg_replace ( '/data[1] ); } } ?> And replace all code in style.css by the following two lines: table tr:nth-child(odd) { background-color: #f0ede6; } div.wrap_skip_css tr { background-color: white; } ... to make it compatible with modern javascript filtering and sorting ([[sortablejs]], [[datatable]], [[struct]]). Adjust the color to your liking (optional). Now, archive the directory ''/oddeven'' back to a zip file. Finally, install the plugin through the plugin manager from your harddrive (manual installation) and select the ''oddeven.zip'' file. Now, you can even exclude individual tables from the zebra coloring using the [[wrap|wrap plugin]] with following syntax on your wiki page: ... your table here **Note:** If using '''' and '''' on the same table make sure, '''' is the outer wrap and '''' is the inner wrap. It then works in harmony. --- [[user>Chris75|Chris75]] //2023-04-04//