X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FPiwikAnalyticsPlugin.php;h=fefd098671269f25a983559206d5cd0355da1cb3;hb=0587dcc0457e71cd15d6f2af38d181f522a73315;hp=458b577fa0975f3578c36d506d48c164a71f4f0c;hpb=042c61ed6de1bbc993eefe47552028157f3e1e28;p=quix0rs-gnu-social.git diff --git a/plugins/PiwikAnalyticsPlugin.php b/plugins/PiwikAnalyticsPlugin.php index 458b577fa0..fefd098671 100644 --- a/plugins/PiwikAnalyticsPlugin.php +++ b/plugins/PiwikAnalyticsPlugin.php @@ -1,6 +1,6 @@ . * * @category Plugin - * @package Laconica - * @author Evan Prodromou - * @copyright 2008 Control Yourself, Inc. + * @package StatusNet + * @author Evan Prodromou + * @author Tobias Diekershoff + * @copyright 2008 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * @link http://status.net/ */ -if (!defined('LACONICA')) { +if (!defined('STATUSNET')) { exit(1); } /** * Plugin to use Piwik Analytics (based on the Google Analytics plugin by Evan) * - * This plugin will spoot out the correct JavaScript spell to invoke Piwik Analytics on a page. + * This plugin will spoot out the correct JavaScript spell to invoke + * Piwik Analytics on a page. * - * To use this plugin please add the following three lines to your config.php -#Add Piwik Analytics -require_once('plugins/PiwikAnalyticsPlugin.php'); -$pa = new PiwikAnalyticsPlugin("example.com/piwik/","id"); + * To use this plugin add the following to your config.php * - * exchange example.com/piwik/ with the url (without http:// or https:// !) to your - * piwik installation and make sure you don't forget the final / - * exchange id with the ID your laconica installation has in your Piwik analytics + * addPlugin('PiwikAnalytics', array('piwikroot' => 'example.com/piwik/', + * 'piwikId' => 'id')); * - * @category Plugin - * @package Laconica - * @author Tobias Diekershoff - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://laconi.ca/ + * Replace 'example.com/piwik/' with the URL to your Piwik installation and + * make sure you don't forget the final /. + * Replace 'id' with the ID your statusnet installation has in your Piwik + * analytics setup - for example '8'. * - * @see Event */ class PiwikAnalyticsPlugin extends Plugin { - // the base of your Piwik installation - var $piwikroot = null; - // the Piwik Id of your laconica installation - var $piwikId = null; + /** the base of your Piwik installation */ + public $piwikroot = null; + /** the Piwik Id of your statusnet installation */ + public $piwikId = null; + + /** + * constructor + * + * @param string $root Piwik root URL + * @param string $id Piwik ID of this app + */ function __construct($root=null, $id=null) { $this->piwikroot = $root; - $this->piwikid = $id; + $this->piwikId = $id; parent::__construct(); } + /** + * Called when all scripts have been shown + * + * @param Action $action Current action + * + * @return boolean ignored + */ + function onEndShowScripts($action) { - $js1 = 'var pkBaseURL = (("https:" == document.location.protocol) ? "https://'. - $this->piwikroot.'" : "http://'.$this->piwikroot. - '"); document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\''. - ' type=\'text/javascript\'%3E%3C/script%3E"));'; - $js2 = 'piwik_action_name = ""; piwik_idsite = '.$this->piwikid. - '; piwik_url = pkBaseURL + "piwik.php"; piwik_log(piwik_action_name, piwik_idsite, piwik_url);'; - $action->elementStart('script', array('type' => 'text/javascript')); - $action->raw($js1); - $action->elementEnd('script'); - $action->elementStart('script', array('type' => 'text/javascript')); - $action->raw($js2); - $action->elementEnd('script'); + $piwikCode1 = <<piwikroot}" : "http://{$this->piwikroot}"); +document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); +ENDOFPIWIK; + $piwikCode2 = <<piwikId}); + piwikTracker.trackPageView(); + piwikTracker.enableLinkTracking(); +} catch( err ) {} +ENDOFPIWIK; + + $action->inlineScript($piwikCode1); + $action->inlineScript($piwikCode2); + return true; } -} \ No newline at end of file +}