xref: /plugin/combo/action/analytics.php (revision 2c0674072a09934e669b230efb4e5389949fae42)
1c25e802bSgerardnico<?php
2c25e802bSgerardnico
3*2c067407Sgerardnicouse ComboStrap\Analytics;
4c25e802bSgerardnicouse ComboStrap\Page;
5c25e802bSgerardnico
6c25e802bSgerardnico/**
7c25e802bSgerardnico * Copyright (c) 2021. ComboStrap, Inc. and its affiliates. All Rights Reserved.
8c25e802bSgerardnico *
9c25e802bSgerardnico * This source code is licensed under the GPL license found in the
10c25e802bSgerardnico * COPYING  file in the root directory of this source tree.
11c25e802bSgerardnico *
12c25e802bSgerardnico * @license  GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html)
13c25e802bSgerardnico * @author   ComboStrap <support@combostrap.com>
14c25e802bSgerardnico *
15c25e802bSgerardnico */
16c25e802bSgerardnico
17*2c067407Sgerardnicorequire_once(__DIR__ . '/../class/'.'Analytics.php');
18*2c067407Sgerardnico
19c25e802bSgerardnico/**
20c25e802bSgerardnico * Class action_plugin_combo_analytics
21c25e802bSgerardnico * Update the analytics data
22c25e802bSgerardnico */
23c25e802bSgerardnicoclass action_plugin_combo_analytics extends DokuWiki_Action_Plugin
24c25e802bSgerardnico{
25c25e802bSgerardnico
26c25e802bSgerardnico
27c25e802bSgerardnico    public function register(Doku_Event_Handler $controller)
28c25e802bSgerardnico    {
29*2c067407Sgerardnico
30c25e802bSgerardnico        /**
31c25e802bSgerardnico         * Called on every page write
32c25e802bSgerardnico         * https://www.dokuwiki.org/devel:event:io_wikipage_write
33c25e802bSgerardnico         * On update to an existing page this event is called twice,
34c25e802bSgerardnico         * once for the transfer of the old version to the attic (rev will have a value)
35c25e802bSgerardnico         * and once to write the new version of the page into the wiki (rev is false)
36c25e802bSgerardnico         */
37*2c067407Sgerardnico        $controller->register_hook('IO_WIKIPAGE_WRITE', 'AFTER', $this, 'handle_update_analytics', array());
38*2c067407Sgerardnico
39c25e802bSgerardnico    }
40c25e802bSgerardnico
41*2c067407Sgerardnico    public function handle_update_analytics(Doku_Event $event, $param)
42c25e802bSgerardnico    {
43*2c067407Sgerardnico
44*2c067407Sgerardnico        $rev = $event->data[3];
45*2c067407Sgerardnico        if ($rev===false){
46*2c067407Sgerardnico            $id = $event->data[2];
47*2c067407Sgerardnico            Analytics::process($id);
48c25e802bSgerardnico        }
49c25e802bSgerardnico
50c25e802bSgerardnico
51c25e802bSgerardnico    }
52c25e802bSgerardnico}
53c25e802bSgerardnico
54c25e802bSgerardnico
55c25e802bSgerardnico
56