xref: /template/strap/action/metatitle.php (revision 007225e5fb2d3f64edaccd3bd447ca26effb9d68)
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