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