xref: /plugin/combo/action/autofrontmatter.php (revision e06795b827169c10ddd5ff1b09798a0da1d963f3)
1c25e802bSgerardnico<?php
2c25e802bSgerardnico
3c25e802bSgerardnicouse ComboStrap\Page;
4c25e802bSgerardnico
5c25e802bSgerardnico/**
6c25e802bSgerardnico * Copyright (c) 2021. ComboStrap, Inc. and its affiliates. All Rights Reserved.
7c25e802bSgerardnico *
8c25e802bSgerardnico * This source code is licensed under the GPL license found in the
9c25e802bSgerardnico * COPYING  file in the root directory of this source tree.
10c25e802bSgerardnico *
11c25e802bSgerardnico * @license  GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html)
12c25e802bSgerardnico * @author   ComboStrap <support@combostrap.com>
13c25e802bSgerardnico *
14c25e802bSgerardnico */
15c25e802bSgerardnico
16c25e802bSgerardnicoclass action_plugin_combo_autofrontmatter extends DokuWiki_Action_Plugin
17c25e802bSgerardnico{
18c25e802bSgerardnico
19c25e802bSgerardnico    const CONF_AUTOFRONTMATTER_ENABLE = "autoFrontMatterEnable";
20c25e802bSgerardnico
21c25e802bSgerardnico    public function register(Doku_Event_Handler $controller)
22c25e802bSgerardnico    {
23c25e802bSgerardnico        /**
24c25e802bSgerardnico         * Called when new page is created
25c25e802bSgerardnico         * In order to set its content
26c25e802bSgerardnico         * https://www.dokuwiki.org/devel:event:common_pagetpl_load
27c25e802bSgerardnico         */
28c25e802bSgerardnico        if ($this->getConf(self::CONF_AUTOFRONTMATTER_ENABLE)) {
29c25e802bSgerardnico            $controller->register_hook('COMMON_PAGETPL_LOAD', 'BEFORE', $this, 'handle_new_page', array());
30c25e802bSgerardnico        }
31c25e802bSgerardnico    }
32c25e802bSgerardnico
33c25e802bSgerardnico    public function handle_new_page(Doku_Event $event, $param){
34c25e802bSgerardnico
35c25e802bSgerardnico        global $ID;
36c25e802bSgerardnico        $page = new Page($ID);
37c25e802bSgerardnico        $canonical = $page->getCanonical();
38c25e802bSgerardnico        $event->data["tpl"] = <<<EOF
39c25e802bSgerardnico---json
40c25e802bSgerardnico{
41c25e802bSgerardnico    "canonical":"{$canonical}",
42*e06795b8Sgerardnico    "title":"A [[https://combostrap.com/frontmatter|frontmatter]] title shown on the Search Engine Result Pages",
43*e06795b8Sgerardnico    "description":"A [[https://combostrap.com/frontmatter|frontmatter]] description shown on the Search Engine Result Pages"
44c25e802bSgerardnico}
45c25e802bSgerardnico---
46c25e802bSgerardnicoEOF;
47c25e802bSgerardnico
48c25e802bSgerardnico
49c25e802bSgerardnico    }
50c25e802bSgerardnico}
51c25e802bSgerardnico
52c25e802bSgerardnico
53c25e802bSgerardnico
54