DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:oddeven

OddEven Plugin

Compatible with DokuWiki

  • 2024-02-06 "Kaos" unknown
  • 2023-04-04 "Jack Jackrum" unknown
  • 2022-07-31 "Igor" no
  • 2020-07-29 "Hogfather" unknown

plugin Paints table rows background to alternating colour stripes

Last updated on
2009-03-24
Provides
Action

Tagged with highlight, tables

Download, Installation, License

Search and install the plugin using the Extension Manager. Refer to Plugins on how to install plugins manually.

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:

  1. action.php – the main code;
  2. 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. I1) fixed the code, so it works again (in “Igor”). Download, unpack the plugin directory /oddeven to your harddrive, update the code in action.php like so:

<?php
/**
 * OddEven Plugin
 * @license Public Domain
 * @author  Vladimir Uryvaev <az@vovanium.ru>
 */
// 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 (
			'/<tr class="row([0-9]*[02468])/si',
			'<tr class="row\\1 roweven',
			$event->data[1]
		);
		$event->data[1] = preg_replace (
			'/<tr class="row([0-9]*[13579])/si',
			'<tr class="row\\1 rowodd',
			$event->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 plugin with following syntax on your wiki page:

<WRAP skip_css>
... your table here
</WRAP>
<WRAP clear/>

Note: If using <sortable> and <WRAP skip_css> on the same table make sure, <sortable> is the outer wrap and <WRAP skip_css> is the inner wrap. It then works in harmony.

Chris75 2023-04-04

plugin/oddeven.txt · Last modified: 2023-04-04 20:42 by Aleksandr

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki