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 ?> |