WordPress “Piwik Analytics” eklentisi için “Dashboard widget” yaması

Piwik Analytics eklentisi WordPress ile Piwik kurulumları arasındaki iletişimi kolaylaştırıyor.

Şimdilik bu eklenti sadece Piwik’in ihtiyaç duyduğu kodu WordPress sayfalarına yerleştirmeyi sağlıyor.

Piwik’in Widgetize eklentisinin sağladığı widgetları WordPress yönetim panelinden görebilmenin yararlı olacağını düşündüm. Bu düşünceyle aşağıdaki yamayı hazırladım.

Index: piwikanalytics.php
===================================================================
--- piwikanalytics.php	(revision 112809)
+++ piwikanalytics.php	(working copy)
@@ -267,6 +267,31 @@
 	} // class PA_Filter
 } // endif
 
+/** Dashboard Stuff: WP >= 2.5 */
+
+function piwikanalytics_register_dashboard_widget() {
+	if (!current_user_can('manage_options'))
+		return;
+	wp_register_sidebar_widget('dashboard_piwikanalytics', __('Stats'), 'piwikanalytics_dashboard_widget_content', array(
+		'width' => 'full'
+	));
+}
+
+function piwikanalytics_add_dashboard_widget($widgets) {
+	global $wp_registered_widgets;
+	if (!isset($wp_registered_widgets['dashboard_piwikanalytics']) || !current_user_can('manage_options'))
+		return $widgets;
+
+	array_splice($widgets, 2, 0, 'dashboard_piwikanalytics');
+	return $widgets;
+}
+
+function piwikanalytics_dashboard_widget_content() { ?>
+<!-- Put embedded iframe code here. -->
+< ?php
+	exit;
+}
+
 if (function_exists("get_option")) {
 	if ($wp_siteid_takes_precedence) {
 		$options  = get_option('PiwikAnalyticsPP');
@@ -276,7 +301,7 @@
 
 $gaf = new PA_Filter();
 
-$options  = get_option('PiwikAnalyticsPP',"");
+$options = get_option('PiwikAnalyticsPP', "");
 
 if ($options == "") {
 	$options&#91;'phpurl'&#93; = '/piwik/piwik.php';
@@ -284,14 +309,16 @@
 	$options&#91;'dltracking'&#93; = true;
 	$options&#91;'dlextensions'&#93; = '7z|aac|avi|csv|doc|exe|flv|gif|gz|jpe?g|js|mp(3|4|e?g)|mov|pdf|phps|png|ppt|rar|sit|tar|torrent|txt|wma|wmv|xls|xml|zip';
 	//$options&#91;'position'&#93; = 'footer';
-	update_option('PiwikAnalyticsPP',$options);
+	update_option('PiwikAnalyticsPP', $options);
 }
 
 // adds the menu item to the admin interface
 add_action('admin_menu', array('PA_Admin','add_config_page'));
 
-
 // adds the footer so the javascript is loaded
 add_action('wp_footer', array('PA_Filter','spool_analytics'));	
 
-?>
+add_action('wp_dashboard_setup', 'piwikanalytics_register_dashboard_widget');
+add_filter('wp_dashboard_widgets', 'piwikanalytics_add_dashboard_widget');
+
+?>
\ No newline at end of file
Reklamlar