1*007225e5Sgerardnico<?php 2*007225e5Sgerardnico 3*007225e5Sgerardnico 4*007225e5Sgerardnico 5*007225e5Sgerardnico/** 6*007225e5Sgerardnico * Class action_plugin_combo_metatitle 7*007225e5Sgerardnico * Set and manage the meta title 8*007225e5Sgerardnico * The event is triggered in the strap template 9*007225e5Sgerardnico */ 10*007225e5Sgerardnicoclass action_plugin_combo_metatitle extends DokuWiki_Action_Plugin 11*007225e5Sgerardnico{ 12*007225e5Sgerardnico 13*007225e5Sgerardnico const TITLE_META_KEY = "title"; 14*007225e5Sgerardnico 15*007225e5Sgerardnico public function register(Doku_Event_Handler $controller) 16*007225e5Sgerardnico { 17*007225e5Sgerardnico $controller->register_hook('TPL_TITLE_OUTPUT', 'BEFORE', $this, 'handleTitle', array()); 18*007225e5Sgerardnico } 19*007225e5Sgerardnico 20*007225e5Sgerardnico function handleTitle(&$event, $param) 21*007225e5Sgerardnico { 22*007225e5Sgerardnico $event->data = self::getTitle(); 23*007225e5Sgerardnico } 24*007225e5Sgerardnico 25*007225e5Sgerardnico static function getTitle(){ 26*007225e5Sgerardnico global $ID; 27*007225e5Sgerardnico global $conf; 28*007225e5Sgerardnico if (defined('DOKU_UNITTEST')) { 29*007225e5Sgerardnico $title = TestUtility::getMeta($ID, self::TITLE_META_KEY); 30*007225e5Sgerardnico } else { 31*007225e5Sgerardnico $title = p_get_metadata($ID, self::TITLE_META_KEY); 32*007225e5Sgerardnico } 33*007225e5Sgerardnico if (!empty($title)){ 34*007225e5Sgerardnico 35*007225e5Sgerardnico $pageTitle = $title; 36*007225e5Sgerardnico 37*007225e5Sgerardnico } else { 38*007225e5Sgerardnico 39*007225e5Sgerardnico // Home page 40*007225e5Sgerardnico if ($ID == "start") { 41*007225e5Sgerardnico $pageTitle = $conf["title"]; 42*007225e5Sgerardnico if ($conf['tagline']) { 43*007225e5Sgerardnico $pageTitle .= ' - ' . $conf['tagline']; 44*007225e5Sgerardnico } 45*007225e5Sgerardnico } else { 46*007225e5Sgerardnico $pageTitle = tpl_pagetitle($ID, true) . ' ['. $conf["title"]. ']'; 47*007225e5Sgerardnico } 48*007225e5Sgerardnico 49*007225e5Sgerardnico } 50*007225e5Sgerardnico return strip_tags($pageTitle); 51*007225e5Sgerardnico } 52*007225e5Sgerardnico} 53