Pastoid

The page you are looking at now is at this URL: http://pastoid.com/awc

This paste was last updated on April 21, 2009 at 2:12 am.

Pasted Coderaw

<?php
class Piwik extends Plugin
{
	public function info()
	{
		return array(
			'url' => 'http://trac.habariproject.org/habari-extras/browser/plugins/piwik',
			'name' => 'Piwik',
			'description'   => 'Automatically adds Piwik tracking code to the theme footer.',
			'license' => 'Apache License 2.0',
			'author' => 'Andy C',
			'authorurl' => 'http://nbrightside.com/habari/',
			'version' => '0.1'
		);
	}
 
	/**
	 * Display help text
	 * @return string The help text
	 */
	public function help()
	{
		return '<p>Piwik is an Open Source Web analytics package.
Piwik is self-hosted software. You need to install and configure Piwik
separately. Piwik needs PHP and a MySQL database to store data on site visits.
<p>For more details, see <a href="http://piwik.org/">http://piwik.org/</a>
<p>This plugin embeds the Piwik (Javascript) tracking code in the theme footer.
To install the plugin, unpack under the \'/user/plugins\' directory in your
Habari installation.
Then activate and configure the plugin from the dashboard (Admin-Plugins).
<p>The configuration options are:
<ul>
<li>Pwiki site URL: This is the full URL of the Piwik site (e.g. \'http://www.example.com/piwik\') - the trailing slash \'/\' is required.</li>
<li>Piwik site number: Piwik can track multiple Web sites. The site number is displayed in the Piwik-Settings administration screen under the \'Site\' tab in the \'ID\' field.</li>
<li>Tracked logged-in users: Visits by logged in users can optionally be ignored.</li>
<li>Auth Token: Your API "token_auth" to allow retrieval of stats for dashboard modules.</li>
</ul>';
	}
 
	public function filter_plugin_config($actions, $plugin_id)
	{
		if ( $this->plugin_id() == $plugin_id ) {
			$actions[]= _t('Configure');
		}
		return $actions;
	}
 
	public function action_plugin_ui($plugin_id, $action)
	{
		if ( $this->plugin_id() == $plugin_id && $action == _t('Configure')){
			$form = new FormUI(strtolower(get_class($this)));
			$form->append('text', 'siteurl', 'option:piwik__siteurl', _t('Piwik site URL'));
			$form->append('text', 'sitenum', 'option:piwik__sitenum', _t('Piwik site number'));
			$form->append('checkbox', 'trackloggedin', 'option:piwik__trackloggedin', _t( 'Track logged-in users', 'piwik' ));
			$form->append('text', 'auth_token', 'option:piwik__auth_token', _t('Piwik Auth Token'));
			$form->append('text', 'outlink', 'option:piwik__outlink_name', _t('Piwik Outlink Var Name'));
			$form->append('submit', 'save', 'Save');
			$form->on_success( array( $this, 'save_config' ) );
			$form->out();
		}
	}
 
	/**
	 * Invoked when the before the plugin configurations are saved
	 *
	 * @param FormUI $form The configuration form being saved
	 * @return true
	 */
	public function save_config( $form )
	{
		$form->save();
		Session::notice('Piwik plugin configuration saved');
		return false;
	}
 
	public function action_plugin_deactivation( $file )
	{
			if ( realpath( $file ) == __FILE__ ) {
			Options::delete('piwik__siteurl');
			Options::delete('piwik__sitenum');
			Options::delete('piwik__trackloggedin');
			Options::delete('piwik__auth_token');
			Options::delete('piwik__outlink_name');
		}
	}
 
	/**
	 * Add update beacon support
	 **/
	public function action_update_check()
	{
		Update::add( 'Piwik', 'xxx', $this->info->version );
	}
 
	public function action_plugin_activation($file)
	{
		if (Plugins::id_from_file($file) != Plugins::id_from_file(__FILE__)) return;
 
		Options::set('piwik__trackloggedin', false);
		Options::set('piwik__outlink_name', 'link');
	}
 
	public function filter_post_content_out( $content, $post )
	{
		$outlink_url = sprintf(
			"%s/piwik.php?%s='.urlencode('$2').'&amp;idsite=%d",
			rtrim(Options::get('piwik__siteurl'), '/'),
			Options::get('piwik__outlink_name'),
			Options::get('piwik__sitenum')
		);
 
		$content = preg_replace( '/href=([\'"])(http:\/\/(?:[^\'"]+))([\'"])/e', "stripslashes('href=$1$outlink_url$3')", $content );
		return $content;
	}
 
	public function theme_footer($theme)
	{
		$class= strtolower( get_class( $this ) );
		$siteurl = Options::get( $class . '__siteurl');
		$ssl_siteurl = str_replace("http://", "https://", $siteurl);
		$sitenum = Options::get( $class . '__sitenum');
		$trackloggedin = Options::get( $class . '__trackloggedin');
 
		if ( URL::get_matched_rule()->entire_match == 'user/login') {
			// Login page; don't dipslay
			return;
		}
		if ( User::identify()->loggedin ) {
			// Only track the logged in user if we were told to
			if ( !($trackloggedin) ) {
				return;
			}
		}
		echo <<<EOD
<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "${ssl_siteurl}" : "${siteurl}" );
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
piwik_action_name = '';
piwik_idsite = "${sitenum}";
piwik_url = pkBaseURL + "piwik.php";
piwik_log(piwik_action_name, piwik_idsite, piwik_url);
</script>
<noscript><p>Web analytics <img src="${siteurl}/piwik.php?idsite=${sitenum}" style="border:0" alt=""/></p></noscript>
<!-- End Piwik Tag -->
EOD;
	}
 
	public function filter_dash_modules( $modules )
	{
	   array_push( $modules,  'Piwik Last Visitors', 'Piwik Visit Times' );
	   Stack::add('admin_stylesheet', array($this->get_url() . '/piwikdash.css', 'screen'), 'piwikdash');
	   return $modules;
	}
 
	public function filter_dash_module_piwik_last_visitors( $module, $module_id, $theme )
	{
		if ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && $_SERVER['HTTPS'] != 'off' ) {
			$siteurl = rtrim(
				str_replace( "http://", "https://", Options::get('piwik__siteurl') ),
				'/'
			);
		}
		else {
			$siteurl = rtrim( Options::get('piwik__siteurl'), '/' );
		}
		$sitenum = Options::get('piwik__sitenum');
		$auth_token = Options::get('piwik__auth_token');
		$api_query = http_build_query(array(
			'module' => 'VisitsSummary',
			'action' => 'getLastVisitsGraph',
			'idSite' => $sitenum,
			'period' => 'day',
			'date' => 'last30',
			'viewDataTable' => 'generateDataChartEvolution',
			'token_auth' => $auth_token,
		), null, '&');
		$api_url = urlencode("$siteurl/index.php?" . $api_query);
 
		$module['title']= _t('Piwik Last Visitors', 'piwik');
		$module['content']= <<<VISITORS
<div class="item"><object style="visibility: visible;" id="VisitsSummarygetLastVisitsGraphChart_swf" data="$siteurl/libs/open-flash-chart/open-flash-chart.swf" bgcolor="#FAFAFA" type="application/x-shockwave-flash" height="190" width="100%"><param value="sameDomain" name="allowScriptAccess"><param value="opaque" name="wmode"><param value="data=$api_url" name="flashvars"></object></div>
VISITORS;
		return $module;
	}
 
	public function filter_dash_module_piwik_visit_times( $module, $module_id, $theme )
	{
		if ( isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && $_SERVER['HTTPS'] != 'off' ) {
			$siteurl = rtrim(
				str_replace( "http://", "https://", Options::get('piwik__siteurl') ),
				'/'
			);
		}
		else {
			$siteurl = rtrim( Options::get('piwik__siteurl'), '/' );
		}
		$sitenum = Options::get('piwik__sitenum');
		$auth_token = Options::get('piwik__auth_token');
		$api_query = http_build_query(array(
			'module' => 'VisitTime',
			'action' => 'getVisitInformationPerServerTime',
			'idSite' => $sitenum,
			'period' => 'day',
			'date' => 'today',
			'viewDataTable' => 'generateDataChartVerticalBar',
			'token_auth' => $auth_token,
		), null, '&');
		$api_url = urlencode("$siteurl/index.php?" . $api_query);
 
		$module['title']= _t('Piwik Visit Times', 'piwik');
		$module['content']= <<<TIMES
<div class="item"><object style="visibility: visible;" id="VisitTimegetVisitInformationPerServerTimeChart_swf" data="$siteurl/libs/open-flash-chart/open-flash-chart.swf" bgcolor="#FAFAFA" type="application/x-shockwave-flash" height="190" width="100%"><param value="sameDomain" name="allowScriptAccess"><param value="opaque" name="wmode"><param value="data=$api_url" name="flashvars"></object></div>
TIMES;
		return $module;
	}
}
?>
 
 

Toggle wordwrap

Referring DomainHits
Unknown Referer 127
www.nigma.ru 10
www.google.com 3
search.live.com 1
Is this paste spam?
<Hide