* @author Eric Maeker */ // must be run within Dokuwiki if(!defined('DOKU_INC')) die(); class action_plugin_htmlmetatags extends DokuWiki_Action_Plugin { /** * Registers a callback function for a given event * * @param Doku_Event_Handler $controller DokuWiki's event controller object * @return void */ public function register(Doku_Event_Handler $controller) { // $controller->register_hook('htmlmetatags', 'FIXME', $this, 'handle_htmlmetatags'); $controller->register_hook('TPL_METAHEADER_OUTPUT','BEFORE',$this,'handle_htmlmetatags',array()); } /* public function searchname($namematch, $meta){ for ($i=0;$i $v) { if ($v["name"] == $name) { $v["content"] = $value; $pageArray['meta'][$k] = $v; $found = True; } } // If meta not set, add it as name or property if (!$found) { if (strpos($name, ':') !== false) $pageArray['meta'][] = array("property" => $name, "content" => $value); else $pageArray['meta'][] = array("name" => $name, "content" => $value); } } /** * [Custom event handler which performs action] * Prints keywords to the meta header * * @param Doku_Event $event event object by reference * @param mixed $param [the parameters passed as fifth argument to register_hook() when this * handler was registered] * @return void */ public function handle_htmlmetatags(Doku_Event &$event, $param) { global $ID; if (empty($event->data)) return; // nothing to do for us $metadata = p_get_metadata($ID); $a = $metadata["htmlmetatags"] ?? ''; if(empty($a)) return; foreach(array_keys($a) as $cur_key) { $this->replaceMeta($event->data, $cur_key, $a[$cur_key]); } } } // vim:ts=4:sw=4:et: