/** * Constructor */ function __construct() { // Call install function on activation register_activation_hook(__FILE__, array($this, 'installPlugin')); // Store plugin basename self::$strPluginBasename = plugin_basename(__FILE__); // Load current settings self::loadSettings(); // Upgrade? if (self::$aryGlobalSettings['revision'] < self::$intRevisionId) { $this->upgradePlugin(); } // Settings changed? if (isset($_POST['action']) && $_POST['action'] == 'save_wp-piwik_settings') { $this->applySettings(); } elseif (isset(self::$aryGlobalSettings['piwik_mode']) && self::$aryGlobalSettings['piwik_mode'] == 'php') { self::definePiwikConstants(); } // Load language file load_plugin_textdomain('wp-piwik', false, dirname(self::$strPluginBasename) . "/languages/"); // Add meta links to plugin details add_filter('plugin_row_meta', array($this, 'setPluginMeta'), 10, 2); // Register columns add_filter('screen_layout_columns', array(&$this, 'onScreenLayoutColumns'), 10, 2); // Add network admin menu if required if (is_plugin_active_for_network('wp-piwik/wp-piwik.php')) { add_action('network_admin_menu', array($this, 'buildNetworkAdminMenu')); } // Add admin menu add_action('admin_menu', array($this, 'buildAdminMenu')); // Register the callback been used if options of page been submitted and needs to be processed add_action('admin_post_save_wp-piwik_stats', array(&$this, 'onStatsPageSaveChanges')); // Register own post meta boxes add_action('load-post.php', array(&$this, 'postMetaboxes')); add_action('load-post-new.php', array(&$this, 'postMetaboxes')); // Add dashboard widget if enabled /* TODO: Use bitmask here */ if (self::$aryGlobalSettings['dashboard_widget'] || self::$aryGlobalSettings['dashboard_chart'] || self::$aryGlobalSettings['dashboard_seo']) { add_action('wp_dashboard_setup', array($this, 'extendWordPressDashboard')); } // Add Toolbar graph if enabled if (self::$aryGlobalSettings['toolbar']) { add_action(is_admin() ? 'admin_head' : 'wp_head', array($this, 'loadToolbarRequirements')); add_action('admin_bar_menu', array(&$this, 'extendWordPressToolbar'), 1000); } // Enable shortcodes if enabled if (self::$aryGlobalSettings['shortcodes']) { add_shortcode('wp-piwik', array(&$this, 'shortcode')); } // Add tracking code to footer if enabled if (self::$aryGlobalSettings['add_tracking_code']) { add_action('wp_footer', array($this, 'footer')); } }