xref: /template/strap/action/metakeywords.php (revision c3437056399326d621a01da73b649707fbb0ae69)
1*c3437056SNickeau<?php
2*c3437056SNickeau
3*c3437056SNickeauuse ComboStrap\LogUtility;
4*c3437056SNickeauuse ComboStrap\Metadata;
5*c3437056SNickeauuse ComboStrap\Page;
6*c3437056SNickeauuse ComboStrap\PageKeywords;
7*c3437056SNickeau
8*c3437056SNickeau
9*c3437056SNickeau/**
10*c3437056SNickeau *
11*c3437056SNickeau * https://developers.google.com/search/blog/2009/09/google-does-not-use-keywords-meta-tag
12*c3437056SNickeau */
13*c3437056SNickeauclass action_plugin_combo_metakeywords extends DokuWiki_Action_Plugin
14*c3437056SNickeau{
15*c3437056SNickeau
16*c3437056SNickeau
17*c3437056SNickeau
18*c3437056SNickeau
19*c3437056SNickeau
20*c3437056SNickeau    public function register(Doku_Event_Handler $controller)
21*c3437056SNickeau    {
22*c3437056SNickeau        $controller->register_hook('TPL_METAHEADER_OUTPUT', 'BEFORE', $this, 'meta_keywords', array());
23*c3437056SNickeau    }
24*c3437056SNickeau
25*c3437056SNickeau    /**
26*c3437056SNickeau     * Add a key words description
27*c3437056SNickeau     * @param $event
28*c3437056SNickeau     * @param $param
29*c3437056SNickeau     */
30*c3437056SNickeau    function meta_keywords(&$event, $param)
31*c3437056SNickeau    {
32*c3437056SNickeau
33*c3437056SNickeau        global $ID;
34*c3437056SNickeau        if (empty($ID)) {
35*c3437056SNickeau            return;  // Admin call for instance
36*c3437056SNickeau        }
37*c3437056SNickeau
38*c3437056SNickeau
39*c3437056SNickeau        $page = Page::createPageFromRequestedPage();
40*c3437056SNickeau
41*c3437056SNickeau        $keywords = $page->getKeywordsOrDefault();
42*c3437056SNickeau        if ($keywords === null) {
43*c3437056SNickeau            return;
44*c3437056SNickeau        }
45*c3437056SNickeau
46*c3437056SNickeau        Metadata::upsertMetaOnUniqueAttribute(
47*c3437056SNickeau            $event->data['meta'],
48*c3437056SNickeau            "name",
49*c3437056SNickeau            [
50*c3437056SNickeau                "name" => PageKeywords::PROPERTY_NAME,
51*c3437056SNickeau                "content" => implode(",", $keywords)
52*c3437056SNickeau            ]
53*c3437056SNickeau        );
54*c3437056SNickeau
55*c3437056SNickeau
56*c3437056SNickeau    }
57*c3437056SNickeau
58*c3437056SNickeau
59*c3437056SNickeau}
60