1a768ba62Swikidesign<?php 2a768ba62Swikidesignif(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); 3a768ba62Swikidesignif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 4a768ba62Swikidesignrequire_once(DOKU_PLUGIN.'admin.php'); 5a768ba62Swikidesign 6a768ba62Swikidesign/** 7a768ba62Swikidesign * All DokuWiki plugins to extend the admin function 8a768ba62Swikidesign * need to inherit from this class 9a768ba62Swikidesign */ 10a768ba62Swikidesignclass admin_plugin_discussion extends DokuWiki_Admin_Plugin { 11a768ba62Swikidesign 12a768ba62Swikidesign /** 13a768ba62Swikidesign * return some info 14a768ba62Swikidesign */ 15a768ba62Swikidesign function getInfo(){ 16a768ba62Swikidesign return array( 17a768ba62Swikidesign 'author' => 'iDo', 18a768ba62Swikidesign 'email' => 'iDo@woow-fr.com', 19a768ba62Swikidesign 'date' => '2006-12-30', 20a768ba62Swikidesign 'name' => 'See all discussion', 21a768ba62Swikidesign 'desc' => '', 22a768ba62Swikidesign 'url' => '', 23a768ba62Swikidesign ); 24a768ba62Swikidesign } 25a768ba62Swikidesign 26a768ba62Swikidesign /** 27a768ba62Swikidesign * return sort order for position in admin menu 28a768ba62Swikidesign */ 29a768ba62Swikidesign function getMenuSort() { 30a768ba62Swikidesign return 200; 31a768ba62Swikidesign } 32a768ba62Swikidesign 33a768ba62Swikidesign /** 34a768ba62Swikidesign * handle user request 35a768ba62Swikidesign */ 36a768ba62Swikidesign function handle() { 37a768ba62Swikidesign } 38a768ba62Swikidesign 39a768ba62Swikidesign /** 40a768ba62Swikidesign * output appropriate html 41a768ba62Swikidesign */ 42a768ba62Swikidesign function html() { 43*434f5172SiLoveiDo require_once(DOKU_PLUGIN.'action.php'); 44*434f5172SiLoveiDo $actionDiscussion= new action_plugin_discussion(); 45*434f5172SiLoveiDo 46a768ba62Swikidesign global $conf; 47*434f5172SiLoveiDo global $INFO; 48*434f5172SiLoveiDo global $ID; 49*434f5172SiLoveiDo global $ADMDISCUSSION; 50*434f5172SiLoveiDo 51a768ba62Swikidesign $chem=DOKU_INC.$conf['savedir']."/meta/"; 52a768ba62Swikidesign $arr=$this->globr($chem,"*.comments"); 53a768ba62Swikidesign $com =array(); 54a768ba62Swikidesign foreach ($arr as $v) { 55a768ba62Swikidesign $ap=unserialize(io_readFile($v, false)); 56a768ba62Swikidesign if (isset($ap['comments'])){ 57*434f5172SiLoveiDo $ID=substr(str_replace(array($chem,".comments",'/'),array("","",':'),$v),1); 58*434f5172SiLoveiDo $ADMDISCUSSION['page']=' : <a href="'.wl($ID,'').'">'.str_replace("/doku.php/","",wl($ID,'')).'</a>'; 59*434f5172SiLoveiDo $actionDiscussion->_show(); 60a768ba62Swikidesign } 61a768ba62Swikidesign } 62a768ba62Swikidesign 63a768ba62Swikidesign } 64a768ba62Swikidesign 65a768ba62Swikidesign /** 66a768ba62Swikidesign * Recursive version of glob 67a768ba62Swikidesign * 68a768ba62Swikidesign * @return array containing all pattern-matched files. 69a768ba62Swikidesign * 70a768ba62Swikidesign * @param string $sDir Directory to start with. 71a768ba62Swikidesign * @param string $sPattern Pattern to glob for. 72a768ba62Swikidesign * @param int $nFlags Flags sent to glob. 73a768ba62Swikidesign */ 74a768ba62Swikidesign function globr($sDir, $sPattern, $nFlags = NULL) { 75a768ba62Swikidesign $sDir = escapeshellcmd($sDir); 76a768ba62Swikidesign // Get the list of all matching files currently in the 77a768ba62Swikidesign // directory. 78a768ba62Swikidesign $aFiles = glob("$sDir/$sPattern", $nFlags); 79a768ba62Swikidesign // Then get a list of all directories in this directory, and 80a768ba62Swikidesign // run ourselves on the resulting array. This is the 81a768ba62Swikidesign // recursion step, which will not execute if there are no 82a768ba62Swikidesign // directories. 83a768ba62Swikidesign foreach (glob("$sDir/*", GLOB_ONLYDIR) as $sSubDir) { 84a768ba62Swikidesign $aSubFiles = $this->globr($sSubDir, $sPattern, $nFlags); 85a768ba62Swikidesign $aFiles = array_merge($aFiles, $aSubFiles); 86a768ba62Swikidesign } 87a768ba62Swikidesign // The array we return contains the files we found, and the 88a768ba62Swikidesign // files all of our children found. 89a768ba62Swikidesign return $aFiles; 90a768ba62Swikidesign } 91a768ba62Swikidesign 92a768ba62Swikidesign 93*434f5172SiLoveiDo 94a768ba62Swikidesign} 95a768ba62Swikidesign?> 96