configuration = $configuration; } /** * Creates a new singleton instance * * @static * @author oncletom * @since 2.0 * @version 1.0 * @return AWShortcodesAdmin * @param AWShortcodesConfiguration $configuration */ public static function createInstance(AWShortcodesConfiguration $configuration) { $class = __CLASS__; self::$instance = new $class($configuration); return self::$instance; } /** * Returns the current singleton instance * * @static * @author oncletom * @since 2.0 * @version 1.0 * @return AWShortcodesAdmin */ public static function getInstance() { return self::$instance; } /** * Display tags help * * @author oncletom * @since 1.0 beta 1 */ public function displayDocumentation() { include $this->configuration->getPluginBasepath().'/admin/view/documentation.php'; } /** * Display tags help for post screen * * @author oncletom * @since 2.0 */ public function displayDocumentationInline() { include $this->configuration->getPluginBasepath().'/admin/view/documentation-inline.php'; } /** * Display options page * * @author oncletom * @since 1.0 alpha 2 * @return null */ public function displayOptions() { global $wp_version, $wpmu_version; $configuration = $this->configuration; /* * Options dynamic options */ $options = $configuration->getOptions(); $regions = $configuration->getRegions(); $profiles = $options->profiles->getValue(); /* * Including elements */ include $configuration->getPluginBasepath().'/admin/form/options.php'; include $configuration->getPluginBasepath().'/admin/view/options.php'; } /** * Include our own stylesheet * * @author oncletom * @since 1.0 beta 1 * @return null */ public function printJavaScript() { wp_enqueue_script('jquery-ui-tabs'); wp_enqueue_script('admin-widgets'); wp_enqueue_script('awshortcode-main', WP_PLUGIN_URL.'/amazon-widgets-shortcodes/web/javascript/awshortcode.js'); } /** * Show a notice to the user if (s)he has not setup the plugin yet * * @author oncletom * @since 1.0 alpha 2 * @return null */ public function printNotice() { ?>

.

setup an affiliate profile in order to see your shortcodes display Amazon Widgets.', 'awshortcode'), 'options-general.php?page=awshortcode-options' ) ?>

'; } /** * Setup admin pages * * Includes menu * Hook scripts & stylesheets * * @author oncletom * @version 1.1 * @since 1.0 alpha 2 * @return null */ public function setupAdminMenu() { /* * Hooking pages */ $options_page = add_options_page( __('Amazon Widgets Shortcodes', 'awshortcode'), __('Amazon Widgets Shortcodes', 'awshortcode'), 8, 'awshortcode-options', array($this, 'displayOptions') ); /* * Hooking styles */ wp_admin_css('widgets'); add_action('admin_head-'.$options_page, array($this, 'printStylesheet')); add_action('admin_print_scripts-'.$options_page, array($this, 'printJavascript')); } /** * Add whitelist options for WPMU * * @see http://wordpress.org/support/topic/191773#post-876524 * @see http://mu.wordpress.org/forums/topic.php?id=9210 * @author oncletom * @since 1.2.2 * @return $whitelist Array * @param $whitelist Array */ public function setupOptionsWhitelist($whitelist) { if (is_array($whitelist)) { $whitelist = array_merge( $whitelist, array( 'awshortcode' => $this->configuration->getOptions()->getKeys(array('profiles', 'version')) )); } return $whitelist; } }