"HandleTags"); $tags_prefix="Tags"; Markup("tags", "directives", '/\\(:tags\\s(.*?):\\)/i', "Tagger"); Markup("listtags", "directives", '/\\(:listtags:\\)/i', "ListTags"); function Tagger($m) { global $action; $tags = explode(",",$m[1]); $output ="
"; foreach ($tags as $tag) { $tag=trim($tag); $output=$output.''.$tag.', '; } return $output."
"; } function HandleTags() { global $tags_prefix; $taggedPages; $tag = $_GET["tag"]; $pagelist = ListPages(); foreach ($pagelist as $pagename) { $page=ReadPage($pagename, READPAGE_CURRENT); if (preg_match('/\\(:tags\\s.*?'.$tag.'.*?:\\)/i',$page['text'])) { $name=explode(".",$page['name']); $taggedPages=$taggedPages.'*[['.$name[1].'->'.$pagename.']] '; $taggedPages=$taggedPages." \n"; } } $text="Sites that are tagged with: @@".$tag."@@ \n\n"; $page = array("text"=>$text.$taggedPages); $sitename=$tags_prefix.".".ucfirst(str_replace(" ","",$tag)); WritePage($sitename,$page); Redirect($sitename); } function ListTags() { $tags; $pagelist = ListPages(); foreach ($pagelist as $pagename) { $page=ReadPage($pagename, READPAGE_CURRENT); $matched_tags=preg_match('/\\(:tags\\s(.*?):\\)/i',$page['text'], $matches); { $rawtags= explode(",",substr($matches[0],6,-2)); foreach($rawtags as $value) $tags[ucfirst(trim($value))]+=1; } } $output; foreach ($tags as $tag=>$value) { if($tag!="0") $output=$output.' '.$tag.' '; } return $output; }