diff --git a/plugins/piwik_analytics/config.inc.php.dist b/plugins/piwik_analytics/config.inc.php.dist new file mode 100644 index 00000000..7397e8f6 --- /dev/null +++ b/plugins/piwik_analytics/config.inc.php.dist @@ -0,0 +1,44 @@ + \ No newline at end of file diff --git a/plugins/piwik_analytics/piwik_analytics.php b/plugins/piwik_analytics/piwik_analytics.php new file mode 100644 index 00000000..27a2603f --- /dev/null +++ b/plugins/piwik_analytics/piwik_analytics.php @@ -0,0 +1,83 @@ + + * + **/ + +class piwik_analytics extends rcube_plugin +{ + function init() + { + if (file_exists(dirname(__FILE__) . "/config.inc.php")) { + $this->load_config('config.inc.php'); + } elseif (file_exists(dirname(__FILE__) . "/config.inc.php.dist")) { + $this->load_config('config.inc.php.dist'); + } elseif (file_exists(dirname(__FILE__) . "/config/config.inc.php")) { + $this->load_config('config/config.inc.php'); + } elseif (file_exists(dirname(__FILE__) . "/config/config.inc.php.dist")) { + $this->load_config('config/config.inc.php.dist'); + /* } else { + error_log("Cannot find / load configuration for plugin piwik_analytics"); */ + } + + $this->add_hook('render_page', array($this, 'add_script')); + } + + function add_script($args) { + $rcmail = rcmail::get_instance(); + + $exclude = $rcmail->config->get('piwik_analytics_exclude'); + + if (empty($exclude) || !is_array($exclude)) { + $exclude = Array(); + } + + if (isset($exclude[$args['template']])) { + return $args; + } + + if ($rcmail->config->get('piwik_analytics_privacy', true)) { + if (!empty($_SESSION['user_id'])) { + return $args; + } + } + + if (!$rcmail->config->get('piwik_analytics_url', false)) { + return $args; + } + + $script = ' + + + +'; + + // add script to end of page + $rcmail->output->add_footer($script); + + return $args; + } +} + +?>