wok annotate blazekiss/stuff/plugins/wkp_ToDo.php @ rev 13569

Add blazekiss
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Nov 03 16:17:38 2012 +0100 (2012-11-03)
parents
children
rev   line source
pascal@13569 1 <?php # coding: utf-8
pascal@13569 2
pascal@13569 3 /** Indexe les tags {TODO ...} de pages/*.txt
pascal@13569 4 * Accès via : ?action=todo
pascal@13569 5 */
pascal@13569 6 class Todo
pascal@13569 7 {
pascal@13569 8 public $description = "Indexe les tags {TODO ...} de la base Wiki";
pascal@13569 9
pascal@13569 10 function action($a)
pascal@13569 11 {
pascal@13569 12 global $CONTENT,$PAGE_TITLE,$PAGE_TITLE_link,$editable;
pascal@13569 13
pascal@13569 14 switch ($a) {
pascal@13569 15 case "todo" :
pascal@13569 16 $PAGE_TITLE_link = FALSE; // pas de lien sur le titre
pascal@13569 17 $editable = FALSE; // non editable
pascal@13569 18 $PAGE_TITLE = "To do"; // titre de la page
pascal@13569 19 $CONTENT = '
pascal@13569 20 <h2>{TODO ...} tags</h2>
pascal@13569 21 ';
pascal@13569 22
pascal@13569 23 todo_index()
pascal@13569 24 {
pascal@13569 25 grep -l '{TODO' pages/*.txt | while read file; do
pascal@13569 26 page=$(basename $file .txt)
pascal@13569 27 ref="<a href=\"?page=$page#TODO\">$page</a>"
pascal@13569 28 grep '{TODO' $file | sed "s|.*{TODO\\([^}]*\\)}.*|<p>$ref\\1</p>|"
pascal@13569 29 done
pascal@13569 30 }
pascal@13569 31
pascal@13569 32 if ($handle = @opendir("pages/data")) {
pascal@13569 33 while(($item = readdir($handle)) !== false) {
pascal@13569 34 if ($item == '..' || $item == '.') continue;
pascal@13569 35 $CONTENT .= '<tr><td><input type=checkbox ';
pascal@13569 36 exec('grep -qs "pages/data/'.$item.'" pages/*.txt', $tmp, $ret);
pascal@13569 37 if ($ret == 0) $CONTENT .= 'checked=checked ';
pascal@13569 38 $CONTENT .= 'disabled=disabled /><a href="pages/data/'.
pascal@13569 39 $item.'">'.$item.'</a></td></tr>';
pascal@13569 40 }
pascal@13569 41 }
pascal@13569 42 return TRUE;
pascal@13569 43 }
pascal@13569 44 return FALSE; // action non traitée
pascal@13569 45 $CONTENT = preg_replace('#\[(.*)|(pages/.*)\]#','<a href="$1">$2</a>',$CONTENT);
pascal@13569 46 } // action
pascal@13569 47
pascal@13569 48 function formatBegin()
pascal@13569 49 {
pascal@13569 50 global $CONTENT;
pascal@13569 51 $CONTENT = preg_replace('#{TODO[^}]*}#','<a name="TODO"></a>',$CONTENT);
pascal@13569 52 }
pascal@13569 53 }
pascal@13569 54
pascal@13569 55 ?>