DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:diskussion_forum

Discussion Forum

more content the next days …

Summary

This plugin shows a Discussion Forum on your WikiPage.
Features:

  • show all threads ordered by the last active,
  • show all threads with Posts that you not readed before,
  • show an alphabetic ordered list of all Threads

At the moment there are no categories possible.

syntax.php

This plugin is still under developemnt. It works only with a special DokuWiki configuration. I try to refactor this plugin to use it with all different configuartions.

<?php
 
 
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
require_once(DOKU_INC.'inc/pageutils.php');
 
 
class syntax_plugin_forum extends DokuWiki_Syntax_Plugin 
{
	function getInfo(){
		return array(
			'author' => 'Thomas Preißler',
			'email'  => 'ding280@gmx.de',
			'date'   => '2006-06-25',
			'name'   => 'Forum',
			'desc'   => 'Zeigt die letzten Änderungen im Forum an',
			'url'    => 'http://www.dokuwiki.org/plugin:diskussion_forum',
		);
	}
 
	function getType(){ return 'substition'; }
	//function getPType(){ return 'block'; }
	function getSort(){ return 280; }
	function connectTo($mode) { $this->Lexer->addSpecialPattern('~~FORUM:\w+~~', $mode, 'plugin_forum'); }
 
	/**
	 * Handle the match
	 */
	function handle($match, $state, $pos, Doku_Handler $handler)
	{
		$array[] = strtolower(substr($match,8,-2));
		return $array;
	}						
 
 
	function render($mode, Doku_Renderer $renderer, $data) 
	{
		$call = $data[0];
 
		switch ($call)
		{
          		case 'lastthreads':
				$this->lastThreads($renderer);
				break;
 
			case 'listthreads':
				$this->listThreads($renderer);
				break;
 
			case 'newthread':
				$this->newThread($renderer);
				break;
 
			case 'unreaded':
				$this->unreadedThreads($renderer);
				break;
		}
	}
 
 
	function lastThreads(&$renderer)
	{
		global $conf;
 
		$dir = $this->getDir();
 
		$loglines = $this->readChanges();
 
		$currentNamespace = $this->getNamespace();
		$namespacePos = $this->getNamespacePos();
 
		$last = array();
		$blub = array();
		$list = array();
 
		foreach($loglines as $key => $val)
		{
			$namespaces = split(":", $val["page"]);
			$namespacePos = $this->getNamespacePos();
 
			if($this->isCurrentNamespace($val["page"]) and $namespaces[$namespacePos+1] != "start" and count($namespaces) > 1)
			{
				$thread = $namespaces[$namespacePos+1];
 
				$last[$thread]['thread'] = $thread;
				$last[$thread]['date'] = $val["time"];
				$last[$thread]['user'] = $val["user"];
			}
		}
 
 
		foreach($last as $line)
		{
			$blub[$line['date']] = $line['thread'];
		}
 
		krsort($blub);
 
		foreach($blub as $thread)
		{
			$list[$thread] = $last[$thread];
		}
 
 
		$renderer->table_open();
		$renderer->tablerow_open();
 
		$renderer->tableheader_open();
		$renderer->doc .= "Thread";
		$renderer->tableheader_close();
 
		$renderer->tableheader_open();
		$renderer->doc .= "geändert";
		$renderer->tableheader_close();	
 
		$renderer->tableheader_open();
		$renderer->doc .= "von";
		$renderer->tableheader_close();
 
		$renderer->tablerow_close();
 
 
		$max = 15;
		$i = 1;
		foreach($list as $thread)
		{
			if($i>$max)
			{
				break;
			}
			$i++;
 
			$goodName = $this->getHeader($dir."/".$thread['thread']."/start.txt");
 
			$renderer->tablerow_open();
 
			$renderer->tablecell_open();
			$renderer->internallink(":$currentNamespace$goodName:start", $goodName);
			$renderer->tablecell_close();
 
			$renderer->tablecell_open();
			$renderer->doc .= date($conf['dformat'], $thread['date']);
			$renderer->tablecell_close();	
 
			$renderer->tablecell_open();
			$renderer->doc .= $thread['user'];
			$renderer->tablecell_close();
 
			$renderer->tablerow_close();
		}
 
		$renderer->table_close();
	}
 
 
	function unreadedThreads(&$renderer)
	{
		$dir = $this->getDir();
 
		$accesslog = $this->readAccess();
		$changelog = $this->readChanges();
 
		$changed = array();
		$readed = array();
 
		$unreadedThreads = array();
 
		$currentNamespace = $this->getNamespace();
		$namespacePos = $this->getNamespacePos();
 
		foreach($changelog as $key => $val)
		{
			$namespaces = split(":", $val["page"]);
 
			if($this->isCurrentNamespace($val["page"]) and $namespaces[$namespacePos+1] != "start" and count($namespaces) > 1)
			{
				$thread = $namespaces[$namespacePos+1];
				$lastChange = $val["time"];
				$changed[$thread] = $lastChange;
			}
		}
 
		foreach($accesslog as $key => $val)
		{
			if($val["user"] == $_SERVER["REMOTE_USER"])
			{
				$namespaces = split("/", $val["page"]);
				$namespaceOK = str_replace("/", ":", $val["page"]);
 
				if($this->isCurrentNamespace($namespaceOK) and $namespaces[$namespacePos+1] != "start" and count($namespaces) > 1)
				{
					$thread = $namespaces[$namespacePos+1];
					$lastReading = $val["time"];
					$readed[$thread] = $lastReading;
				}
			}
		}
 
		foreach($changed as $key => $val)
		{
			if(!array_key_exists($key, $readed))
			{
				$unreadedThreads[] = $key;
			}
			elseif($readed[$key] < $changed[$key])
			{
				$unreadedThreads[] = $key;
			}
 
		}
 
		$renderer->listu_open();
		if(count($unreadedThreads) == 0)
		{
			$renderer->listitem_open(1);
			$renderer->doc.= "Keine ungelesenen Threads.";
			$renderer->listitem_close();
		}
		else
		{
 
			foreach($unreadedThreads as $key => $val)
			{
				$filename = $dir.$val;
				$thread = $this->getHeader($filename."/start.txt");
 
				$renderer->listitem_open(1);
				$renderer->internallink(":$currentNamespace$thread:start", $thread);
				$renderer->listitem_close();
			}
		}
		$renderer->listu_close();
	}
 
 
	function listThreads(&$renderer)
	{
		$dir = $this->getDir();
		$currentNamespace = $this->getNamespace();
 
		$threads = array();
 
		$temp = opendir($dir);
 
		while($file = readdir($temp))
		{
			if($file != "." && $file != "..")
			{
				$filename = $dir.$file;
 
				if(is_dir($filename))
				{
					$threads[] = $this->getHeader($filename."/start.txt");
				}
			}
		}
 
		natcasesort($threads);
 
		$renderer->listu_open();
		foreach($threads as $thread)
		{
			$renderer->listitem_open(1);
			$renderer->internallink(":$currentNamespace$thread:start", $thread);
			$renderer->listitem_close();
		}
		$renderer->listu_close();
	}
 
 
	function newThread(&$renderer)
	{
		$dir = $this->getDir();
		$currentNamespace = cleanID($this->getNamespace());
 
		if(isset($_POST['newthread']))
		{
			$dir = $dir.cleanID($_POST['newthread']);
			mkdir($dir);
 
			$content = "====== ".$_POST['newthread']." ======\n";
			$content .= "~~BLIKI~~\n";
			fputs(fopen($dir."/start.txt", w), $content);
 
			$renderer->strong_open();
			$renderer->internallink(".:".$_POST['newthread'].":start", $_POST['newthread']);
			$renderer->strong_close();
		}
		else
		{
			$txt = '';
			$txt .= '<form action="'.script().'/'.$currentNamespace.'/start" method="post">';
			$txt .= 'Thread-Titel: ';
			$txt .= '<input type="text" name="newthread" size="50">';
			$txt .= '<input type="submit" value="erstellen">';
			$txt .= '</form>';
 
			$renderer->doc .= $txt;
		}
 
	}
 
 
	function getHeader($file)
	{
		$content = file($file);
		$header =  trim(str_replace("=", "", $content[0]));
		return $header;
	}
 
 
	function sortArray($array)
	{
		foreach($array as $line)
		{
			$blub[$line['date']] = $line['thread'];
		}
 
		krsort($blub);
 
		foreach($blub as $thread)
		{
			$gugu[$thread] = $array[$thread];
		}
 
		return $gugu;
	}
 
 
	function readAccess()
	{
		global $conf;
 
		$pattern = '!^([^ ]+) ([^ ]+) ([^ ]+) \[([^\]]+)\] "([^ ]+) ([^ ]+) ([^/]+)/([^"]+)" ([^ ]+) ([^ ]+) ([^ ]+) (.+)!';	
		$file = file($conf["accesslog"]);
 
		for($i=0; $i<count($file); $i++)
		{
			$line = $file[$i];
 
			preg_match($pattern, $line, $result);
 
			$date = $this->splitDate($result[4]);
			$time = $date["year"]."-".$date["month"]."-".$date["day"]." ".$date["hour"].":".$date["minute"].":".$date["second"];
			$timestamp = strtotime($time);
 
			$fileline["logLine"] = $line;
			$fileline["host"] = $result[1];
			$fileline["user"] = $result[3];
			$fileline["time"] = $timestamp;
			$fileline["method"] = $result[5];
			$fileline["page"] = $result[6];
			$fileline["protocol"] = $result[7]."/".$result[8];
			$fileline["status"] = $result[9];
			$fileline["size"] = $result[10];
			$fileline["agent"] = $result[12];
 
			$accesslog[] = $fileline;
		}
		return $accesslog;
	}
 
 
	function readChanges()
	{
		global $conf;
 
		$handle = fopen($conf["changelog"], "r");
		while ($log = fscanf($handle, "%s\t%s\t%s\t%s\t%s\n")) 
		{
			list ($time, $ip, $page, $user, $action) = $log;
			$line["time"] = $time;
			$line["ip"] = $ip;
			$line["page"] = $page;
			$line["user"] = $user;
			$line["action"] = $action;
 
			$changelog[] = $line;
		}
		return $changelog;
	}
 
 
	function getDir()
	{
		global $ID;
		$fp = wikiFN($ID);
		$result = substr($fp, 0, strrpos($fp, '/'))."/";
		return $result;
	}
 
 
	function isCurrentNamespace($ns)
	{
		$testNS = split(":", $ns);
		$currentNS = split(":", $this->getNamespace());
 
		if(count($currentNS) > count($testNS))
		{
			return false;
		}
 
		for($i=0; $i<count($currentNS)-1; $i++)
		{
			if($testNS[$i] != $currentNS[$i])
			{
				return false;
			}
		}
		return true;
	}
 
 
	function getNamespace()
	{
		global $ID;
		$namespaces = split(":", $ID);
		$pos = $this->getNamespacePos();
 
		$result = "";
 
		for($i=0; $i<=$pos; $i++)
		{
			$result.= $namespaces[$i].":";
		}
 
		return $result;
	}
 
 
	function getNamespacePos()
	{
		global $ID;
 
		$namespaces = split(":", $ID);
		$currentNamespace = count($namespaces)-2;
 
		return $currentNamespace;
	}
 
 
	function splitDate($date)
	{
		$arr['day'] = substr($date, 0, 2);
		$arr['month'] = substr($date, 3, 3);
		$arr['year'] = substr($date, 7, 4);
		$arr['hour'] = substr($date, 12, 2);
		$arr['minute'] = substr($date, 15, 2);
		$arr['second'] = substr($date, 18, 2);
 
		switch($arr['month'])
		{
			case 'Jan':
				$arr['month'] = "01";
				break;
 
			case 'Feb':
				$arr['month'] = "02";
				break;
 
			case 'Mar':
				$arr['month'] = "03";
				break;
 
			case 'Apr':
				$arr['month'] = "04";
				break;
 
			case 'May':
				$arr['month'] = "05";
				break;
 
			case 'Jun':
				$arr['month'] = "06";
				break;
 
			case 'Jul':
				$arr['month'] = "07";
				break;
 
			case 'Aug':
				$arr['month'] = "08";
				break;
 
			case 'Sep':
				$arr['month'] = "09";
				break;
 
			case 'Oct':
				$arr['month'] = "10";
				break;
 
			case 'Nov':
				$arr['month'] = "11";
				break;
 
			case 'Dec':
				$arr['month'] = "12";
				break;
		}
 
		return $arr;
	}
}

Discussion

Can you give me a short description of how you get this plugin to work and what you have to change at the dokuwiki-installation? I know, this is still under development :)
Mirko Romstadt 2006-09-22 13:00
  • I tried to use your forum in my blog by adding a folder called forum as this path:
hali-sy.com/lib/plugins/forum/syntax.php

but i failed, so can you give me the suitable instructions for using Diskussion Forum? M. Bashir Al-Noimi


2011-10-31 Taggic → tested following on 2011-05-25a “Rincewind”

The php code has to be modified a slightly. It still has problems but it works. The plugin depends on bliki plugin, which has to be installed and modified also. I will do no further modification due to it does not deliver what I need but wanted to give you the things I have worked out so far.
syntax.php
<?php
 
 
if(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/');
if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once(DOKU_PLUGIN.'syntax.php');
require_once(DOKU_INC.'inc/pageutils.php');
 
 
class syntax_plugin_forum extends DokuWiki_Syntax_Plugin 
{
	function getInfo(){
		return array(
			'author' => 'Thomas Preißler, modified by Taggic',
			'email'  => 'ding280@gmx.de; taggic@t-online.de',
			'date'   => '2011-10-31',
			'name'   => 'Forum',
			'desc'   => 'Zeigt die letzten Änderungen im Forum an',
			'url'    => 'http://www.dokuwiki.org/plugin:diskussion_forum',
		);
	}
 
	function getType(){ return 'substition'; }
	//function getPType(){ return 'block'; }
	function getSort(){ return 169; }
	function connectTo($mode) { $this->Lexer->addSpecialPattern('~~FORUM:\w+~~', $mode, 'plugin_forum'); }
 
	/**
	 * Handle the match
	 */
	function handle($match, $state, $pos, &$handler)
	{
		$array[] = strtolower(substr($match,8,-2));
		return $array;
	}						
 
 
	function render($mode, &$renderer, $data) 
	{
		$call = $data[0];
 
		switch ($call)
		{
      case 'lastthreads':
				$this->lastThreads($renderer);
				break;
 
			case 'listthreads':
				$this->listThreads($renderer);
				break;
 
			case 'newthread':
				$this->newThread($renderer);
				break;
 
			case 'unreaded':
				$this->unreadedThreads($renderer);
				break;
		}
	}
 
 
	function lastThreads(&$renderer)
	{
		global $conf;
 
		$dir = $this->getDir();
 
		$loglines = $this->readChanges();
 
		$currentNamespace = $this->getNamespace();
		$namespacePos = $this->getNamespacePos();
 
		$last = array();
		$blub = array();
		$list = array();
 
		foreach($loglines as $key => $val)
		{
			$namespaces = split(":", $val["page"]);
			$namespacePos = $this->getNamespacePos();
 
			if($this->isCurrentNamespace($val["page"]) and $namespaces[$namespacePos+1] != "start" and count($namespaces) > 1)
			{
				$thread = $namespaces[$namespacePos+1];
 
				$last[$thread]['thread'] = $thread;
				$last[$thread]['date'] = $val["time"];
				$last[$thread]['user'] = $val["user"];
			}
		}
 
 
		foreach($last as $line)
		{
			$blub[$line['date']] = $line['thread'];
		}
 
		krsort($blub);
 
		foreach($blub as $thread)
		{
			$list[$thread] = $last[$thread];
		}
 
 
		$renderer->table_open();
		$renderer->tablerow_open();
 
		$renderer->tableheader_open();
		$renderer->doc .= "Thread";
		$renderer->tableheader_close();
 
		$renderer->tableheader_open();
		$renderer->doc .= "geändert";
		$renderer->tableheader_close();	
 
		$renderer->tableheader_open();
		$renderer->doc .= "von";
		$renderer->tableheader_close();
 
		$renderer->tablerow_close();
 
 
		$max = 15;
		$i = 1;
		foreach($list as $thread)
		{
			if($i>$max)
			{
				break;
			}
			$i++;
 
			$goodName = $this->getHeader($dir."/".$thread['thread']."/start.txt");
 
			$renderer->tablerow_open();
 
			$renderer->tablecell_open();
			$renderer->internallink(":$currentNamespace$goodName:start", $goodName);
			$renderer->tablecell_close();
 
			$renderer->tablecell_open();
			$renderer->doc .= date($conf['dformat'], $thread['date']);
			$renderer->tablecell_close();	
 
			$renderer->tablecell_open();
			$renderer->doc .= $thread['user'];
			$renderer->tablecell_close();
 
			$renderer->tablerow_close();
		}
 
		$renderer->table_close();
	}
 
 
	function unreadedThreads(&$renderer)
	{
		$dir = $this->getDir();
 
		$accesslog = $this->readAccess();
		$changelog = $this->readChanges();
 
		$changed = array();
		$readed = array();
 
		$unreadedThreads = array();
 
		$currentNamespace = $this->getNamespace();
		$namespacePos = $this->getNamespacePos();
 
		foreach($changelog as $key => $val)
		{
			$namespaces = split(":", $val["page"]);
 
			if($this->isCurrentNamespace($val["page"]) and $namespaces[$namespacePos+1] != "start" and count($namespaces) > 1)
			{
				$thread = $namespaces[$namespacePos+1];
				$lastChange = $val["time"];
				$changed[$thread] = $lastChange;
			}
		}
 
		foreach($accesslog as $key => $val)
		{
			if($val["user"] == $_SERVER["REMOTE_USER"])
			{
				$namespaces = split("/", $val["page"]);
				$namespaceOK = str_replace("/", ":", $val["page"]);
 
				if($this->isCurrentNamespace($namespaceOK) and $namespaces[$namespacePos+1] != "start" and count($namespaces) > 1)
				{
					$thread = $namespaces[$namespacePos+1];
					$lastReading = $val["time"];
					$readed[$thread] = $lastReading;
				}
			}
		}
 
		foreach($changed as $key => $val)
		{
			if(!array_key_exists($key, $readed))
			{
				$unreadedThreads[] = $key;
			}
			elseif($readed[$key] < $changed[$key])
			{
				$unreadedThreads[] = $key;
			}
 
		}
 
		$renderer->listu_open();
		if(count($unreadedThreads) == 0)
		{
			$renderer->listitem_open(1);
			$renderer->doc.= "Keine ungelesenen Threads.";
			$renderer->listitem_close();
		}
		else
		{
 
			foreach($unreadedThreads as $key => $val)
			{
				$filename = $dir.$val;
				$thread = $this->getHeader($filename."/start.txt");
 
				$renderer->listitem_open(1);
				$renderer->internallink(":$currentNamespace$thread:start", $thread);
				$renderer->listitem_close();
			}
		}
		$renderer->listu_close();
	}
 
 
	function listThreads(&$renderer)
	{
		$dir = $this->getDir();
		$currentNamespace = $this->getNamespace();
 
		$threads = array();
 
		$temp = opendir($dir);
 
		while($file = readdir($temp))
		{
			if($file != "." && $file != "..")
			{
				$filename = $dir.$file;
 
				if(is_dir($filename))
				{
					$threads[] = $this->getHeader($filename."/start.txt");
				}
			}
		}
 
		natcasesort($threads);
 
		$renderer->listu_open();
		foreach($threads as $thread)
		{
			$renderer->listitem_open(1);
			$renderer->internallink(":$currentNamespace$thread:start", $thread);
			$renderer->listitem_close();
		}
		$renderer->listu_close();
	}
 
 
	function newThread(&$renderer)
	{
		$dir = $this->getDir();
		$currentNamespace = cleanID($this->getNamespace());
 
		if(isset($_POST['newthread']))
		{
			$dir = $dir.cleanID($_POST['newthread']);
			mkdir($dir);
 
			$content = "====== ".$_POST['newthread']." ======\n";
			$content .= "~~BLIKI~~\n";
			fputs(fopen($dir."/start.txt", w), $content);
 
			$renderer->strong_open();
			$renderer->internallink(".:".$_POST['newthread'].":start", $_POST['newthread']);
			$renderer->strong_close();
		}
		else
		{
			$txt = '';
			$txt .= '<form action="'.$ID.'" method="post">';
			$txt .= 'Thread-Titel: ';
			$txt .= '<input type="text" name="newthread" size="50">';
			$txt .= '<input type="submit" value="erstellen">';
			$txt .= '</form>';
 
			$renderer->doc .= $txt;
		}
 
	}
 
 
	function getHeader($file)
	{
		$content = file($file);
		$header =  trim(str_replace("=", "", $content[0]));
		return $header;
	}
 
 
	function sortArray($array)
	{
		foreach($array as $line)
		{
			$blub[$line['date']] = $line['thread'];
		}
 
		krsort($blub);
 
		foreach($blub as $thread)
		{
			$gugu[$thread] = $array[$thread];
		}
 
		return $gugu;
	}
 
 
	function readAccess()
	{
		global $conf;
 
		$pattern = '!^([^ ]+) ([^ ]+) ([^ ]+) \[([^\]]+)\] "([^ ]+) ([^ ]+) ([^/]+)/([^"]+)" ([^ ]+) ([^ ]+) ([^ ]+) (.+)!';	
		$file = file($conf["accesslog"]);
 
		for($i=0; $i<count($file); $i++)
		{
			$line = $file[$i];
 
			preg_match($pattern, $line, $result);
 
			$date = $this->splitDate($result[4]);
			$time = $date["year"]."-".$date["month"]."-".$date["day"]." ".$date["hour"].":".$date["minute"].":".$date["second"];
			$timestamp = strtotime($time);
 
			$fileline["logLine"] = $line;
			$fileline["host"] = $result[1];
			$fileline["user"] = $result[3];
			$fileline["time"] = $timestamp;
			$fileline["method"] = $result[5];
			$fileline["page"] = $result[6];
			$fileline["protocol"] = $result[7]."/".$result[8];
			$fileline["status"] = $result[9];
			$fileline["size"] = $result[10];
			$fileline["agent"] = $result[12];
 
			$accesslog[] = $fileline;
		}
		return $accesslog;
	}
 
 
	function readChanges()
	{
		global $conf;
 
		$handle = fopen($conf["changelog"], "r");
		while ($log = fscanf($handle, "%s\t%s\t%s\t%s\t%s\n")) 
		{
			list ($time, $ip, $page, $user, $action) = $log;
			$line["time"] = $time;
			$line["ip"] = $ip;
			$line["page"] = $page;
			$line["user"] = $user;
			$line["action"] = $action;
 
			$changelog[] = $line;
		}
		return $changelog;
	}
 
 
	function getDir()
	{
		global $ID;
		$fp = wikiFN($ID);
		$result = substr($fp, 0, strrpos($fp, '/'))."/";
		return $result;
	}
 
 
	function isCurrentNamespace($ns)
	{
		$testNS = split(":", $ns);
		$currentNS = split(":", $this->getNamespace());
 
		if(count($currentNS) > count($testNS))
		{
			return false;
		}
 
		for($i=0; $i<count($currentNS)-1; $i++)
		{
			if($testNS[$i] != $currentNS[$i])
			{
				return false;
			}
		}
		return true;
	}
 
 
	function getNamespace()
	{
		global $ID;
		$namespaces = split(":", $ID);
		$pos = $this->getNamespacePos();
 
		$result = "";
 
		for($i=0; $i<=$pos; $i++)
		{
			$result.= $namespaces[$i].":";
		}
 
		return $result;
	}
 
 
	function getNamespacePos()
	{
		global $ID;
 
		$namespaces = split(":", $ID);
		$currentNamespace = count($namespaces)-2;
 
		return $currentNamespace;
	}
 
 
	function splitDate($date)
	{
		$arr['day'] = substr($date, 0, 2);
		$arr['month'] = substr($date, 3, 3);
		$arr['year'] = substr($date, 7, 4);
		$arr['hour'] = substr($date, 12, 2);
		$arr['minute'] = substr($date, 15, 2);
		$arr['second'] = substr($date, 18, 2);
 
		switch($arr['month'])
		{
			case 'Jan':
				$arr['month'] = "01";
				break;
 
			case 'Feb':
				$arr['month'] = "02";
				break;
 
			case 'Mar':
				$arr['month'] = "03";
				break;
 
			case 'Apr':
				$arr['month'] = "04";
				break;
 
			case 'May':
				$arr['month'] = "05";
				break;
 
			case 'Jun':
				$arr['month'] = "06";
				break;
 
			case 'Jul':
				$arr['month'] = "07";
				break;
 
			case 'Aug':
				$arr['month'] = "08";
				break;
 
			case 'Sep':
				$arr['month'] = "09";
				break;
 
			case 'Oct':
				$arr['month'] = "10";
				break;
 
			case 'Nov':
				$arr['month'] = "11";
				break;
 
			case 'Dec':
				$arr['month'] = "12";
				break;
		}
 
		return $arr;
	}
}

plugin/diskussion_forum.txt · Last modified: 2015-05-27 22:21 by Klap-in

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