public static function controller()
 {
     /**
      * @see \WP_Customize_Manager::wp_loaded
      * It calls the `customize_register` action first,
      * and then - the `customize_preview_init` action
      */
     /*
     			add_action( 'customize_register', array(
     				'WPGlobus_Customize',
     				'action__customize_register'
     			) ); */
     /**
      * @since 1.5.0
      */
     if (WPGlobus_WP::is_pagenow('customize.php')) {
         require_once 'admin/wpglobus-customize-filters.php';
     }
     add_action('customize_preview_init', array('WPGlobus_Customize', 'action__customize_preview_init'));
     /**
      * This is called by wp-admin/customize.php
      */
     add_action('customize_controls_enqueue_scripts', array('WPGlobus_Customize', 'action__customize_controls_enqueue_scripts'), 1000);
     if (WPGlobus_WP::is_admin_doing_ajax()) {
         add_filter('clean_url', array('WPGlobus_Customize', 'filter__clean_url'), 10, 2);
     }
 }
Example #2
0
 * Initialize
 */
WPGlobus::$PLUGIN_DIR_PATH = plugin_dir_path(__FILE__);
WPGlobus::$PLUGIN_DIR_URL = plugin_dir_url(__FILE__);
WPGlobus::Config();
require_once 'includes/class-wpglobus-filters.php';
require_once 'includes/wpglobus-controller.php';
if (defined('WPSEO_VERSION')) {
    require_once 'includes/class-wpglobus-wpseo.php';
    WPGlobus_WPSEO::controller();
}
/**
 * Theme compatibility
 */
/**
 * Fix multilingual strings in basic `Customize`
 *
 * @since 1.2.1
 */
require_once 'includes/class-wpglobus-customize.php';
WPGlobus_Customize::controller();
/**
 * Support of theme option panels and customizer
 * @since 1.3.0
 */
if (WPGlobus_WP::in_wp_admin() && !WPGlobus_WP::is_admin_doing_ajax()) {
    require_once 'includes/admin/class-wpglobus-wp-theme.php';
    WPGlobus::Config()->WPGlobus_WP_Theme = new WPGlobus_WP_Theme();
}
require_once 'updater/class-wpglobus-updater.php';
# --- EOF
 /**
  * @covers WPGlobus_WP::is_http_get_action
  */
 public function test_is_http_get_action()
 {
     $_GET['action'] = 'unit-test-action';
     self::assertTrue(WPGlobus_WP::is_http_get_action('unit-test-action'));
     self::assertFalse(WPGlobus_WP::is_http_get_action(''));
     self::assertFalse(WPGlobus_WP::is_http_get_action(null));
     self::assertFalse(WPGlobus_WP::is_http_get_action(3.14));
     $bad_boy = new stdClass();
     self::assertFalse(WPGlobus_WP::is_http_get_action($bad_boy));
     $_GET['action'] = 'not-unit-test-action';
     self::assertFalse(WPGlobus_WP::is_http_get_action('unit-test-action'));
     unset($_GET['action']);
     self::assertFalse(WPGlobus_WP::is_http_get_action('unit-test-action'));
     $_GET['action'] = 'unit-test-action';
     self::assertTrue(WPGlobus_WP::is_http_get_action(array('unit-test-action', 'not-unit-test-action')));
     $_GET['action'] = array('this-should-not-be-an-array');
     self::assertFalse(WPGlobus_WP::is_http_get_action('unit-test-action'));
 }
 /**
  * Get options from DB and wp-config.php
  * @return void
  */
 protected function _get_options()
 {
     /**
      * For developers use only. Re-creates language table with no warning! Irreversible!
      *
      * @link wp-admin/?wpglobus-reset-language-table=1
      */
     if (!defined('DOING_AJAX') && !empty($_GET['wpglobus-reset-language-table']) && is_admin()) {
         delete_option($this->option_language_names);
     }
     $wpglobus_option = get_option($this->option);
     /**
      * FIX: after "Reset All" Redux options we must reset all WPGlobus options
      * first of all look at $wpglobus_option['more_languages']
      */
     if (isset($wpglobus_option['more_languages']) && is_array($wpglobus_option['more_languages'])) {
         $wpglobus_option = array();
         delete_option($this->option);
         delete_option($this->option_language_names);
         delete_option($this->option_en_language_names);
         delete_option($this->option_locale);
         delete_option($this->option_flags);
     }
     if (isset($wpglobus_option['more_languages'])) {
         unset($wpglobus_option['more_languages']);
     }
     /**
      * Get enabled languages and default language ( just one main language )
      */
     if (isset($wpglobus_option['enabled_languages']) && !empty($wpglobus_option['enabled_languages'])) {
         $this->enabled_languages = array();
         foreach ($wpglobus_option['enabled_languages'] as $lang => $value) {
             if (!empty($value)) {
                 $this->enabled_languages[] = $lang;
             }
         }
         /**
          * Set default language
          */
         $this->default_language = $this->enabled_languages[0];
         unset($wpglobus_option['enabled_languages']);
     }
     /**
      * Set available languages for editors
      */
     $this->open_languages = $this->enabled_languages;
     /**
      * Set flags URL
      */
     $this->_set_flags_url();
     /**
      * Get languages name
      * big array of used languages
      */
     $this->language_name = get_option($this->option_language_names);
     if (empty($this->language_name)) {
         $this->_set_languages();
         $this->_init_language_table();
     }
     /**
      * Get locales
      */
     $this->locale = get_option($this->option_locale);
     if (empty($this->locale)) {
         $this->_set_languages();
         $this->_init_language_table();
     }
     /**
      * Get enabled locales
      */
     foreach ($this->enabled_languages as $language) {
         $this->enabled_locale[] = $this->locale[$language];
     }
     /**
      * Get en_language_name
      */
     $this->en_language_name = get_option($this->option_en_language_names);
     /**
      * Get option 'show_flag_name'
      */
     if (isset($wpglobus_option['show_flag_name'])) {
         $this->show_flag_name = $wpglobus_option['show_flag_name'];
         unset($wpglobus_option['show_flag_name']);
     }
     if (defined('WPGLOBUS_SHOW_FLAG_NAME')) {
         if ('name' === WPGLOBUS_SHOW_FLAG_NAME) {
             $this->show_flag_name = 'name';
         } elseif (false === WPGLOBUS_SHOW_FLAG_NAME || '' === WPGLOBUS_SHOW_FLAG_NAME) {
             $this->show_flag_name = '';
         }
     }
     /**
      * Get navigation menu slug for add flag in front-end 'use_nav_menu'
      */
     $this->nav_menu = '';
     if (isset($wpglobus_option['use_nav_menu'])) {
         $this->nav_menu = $wpglobus_option['use_nav_menu'];
         unset($wpglobus_option['use_nav_menu']);
     }
     // This can be used in `wp-config` to override the options settings.
     if (defined('WPGLOBUS_USE_NAV_MENU')) {
         $this->nav_menu = WPGLOBUS_USE_NAV_MENU;
     }
     /**
      * Get selector_wp_list_pages option
      * @since 1.0.7
      */
     if (empty($wpglobus_option['selector_wp_list_pages']['show_selector']) || (int) $wpglobus_option['selector_wp_list_pages']['show_selector'] === 0) {
         $this->selector_wp_list_pages = false;
     }
     if (isset($wpglobus_option['selector_wp_list_pages'])) {
         unset($wpglobus_option['selector_wp_list_pages']);
     }
     /**
      * Get custom CSS
      */
     if (isset($wpglobus_option['css_editor'])) {
         $this->css_editor = $wpglobus_option['css_editor'];
         unset($wpglobus_option['css_editor']);
     }
     /**
      * Get flag files without path
      */
     $option = get_option($this->option_flags);
     if (!empty($option)) {
         $this->flag = $option;
     }
     /**
      * Get versioning info
      */
     $option = get_option(self::$option_versioning);
     if (empty($option)) {
         $this->version = array();
     } else {
         $this->version = $option;
     }
     /**
      * WPGlobus devmode.
      */
     if (isset($_GET['wpglobus']) && 'off' === $_GET['wpglobus']) {
         $this->toggle = 'off';
     } else {
         $this->toggle = 'on';
     }
     /**
      * Need additional check for devmode (toggle=OFF)
      * in case 'wpglobus' was not set to 'off' at /wp-admin/post.php
      * and $_SERVER[QUERY_STRING] is empty at the time of `wp_insert_post_data` action
      * @see WPGlobus::on_save_post_data
      */
     if (empty($_SERVER['QUERY_STRING']) && isset($_SERVER['HTTP_REFERER']) && WPGlobus_WP::is_pagenow('post.php') && false !== strpos($_SERVER['HTTP_REFERER'], 'wpglobus=off')) {
         $this->toggle = 'off';
     }
     if (isset($wpglobus_option['last_tab'])) {
         unset($wpglobus_option['last_tab']);
     }
     /**
      * Remaining wpglobus options after unset() is extended options
      * @since 1.2.3
      */
     $this->extended_options = $wpglobus_option;
 }
 /**
  * Enqueue scripts
  *
  * @since 1.0.0
  *
  * @return void
  */
 function on_admin_scripts()
 {
     wp_register_script('wpglobus-black-studio-widget-init', plugin_dir_url(__FILE__) . 'wpglobus-for-black-studio-widget-init.js', array(), WPGLOBUS_BS_WIDGET, true);
     wp_enqueue_script('wpglobus-black-studio-widget-init');
     wp_localize_script('wpglobus-black-studio-widget-init', 'WPGlobusBSWidget', array('data' => array('version' => WPGLOBUS_BS_WIDGET, 'button_separator' => $this->button_separator, 'text_separator' => '', 'icon' => 'wpglobus-bs-separator', 'button' => $this->button, 'button_class' => 'wpglobus_bs_widget_button_', 'button_classes' => 'widget btn wpglobus_bs_widget_button', 'pagenow' => WPGlobus_WP::pagenow())));
 }
 /**
  * Enqueue js for WPSEO support
  * @since 1.0.8
  */
 public static function action__admin_print_scripts()
 {
     if (WPGlobus_WP::is_pagenow(array('post.php', 'post-new.php'))) {
         $handle = 'wpglobus-wpseo';
         /**
          * WP-SEO Version 2.2 introduces breaking changes.
          * A new version of our script will be required.
          */
         /** @noinspection PhpInternalEntityUsedInspection */
         $src_version = version_compare(WPSEO_VERSION, '2.2', '>=') ? '22' : '21';
         $src = WPGlobus::$PLUGIN_DIR_URL . 'includes/js/' . $handle . '-' . $src_version . WPGlobus::SCRIPT_SUFFIX() . '.js';
         wp_enqueue_script($handle, $src, array('jquery'), WPGLOBUS_VERSION, true);
         wp_localize_script($handle, 'WPGlobusVendor', array('version' => WPGLOBUS_VERSION, 'vendor' => WPGlobus::O()->vendors_scripts));
     }
 }
 /**
  * Enqueue js for YoastSEO support
  * @since 1.4.0
  */
 public static function action__admin_print_scripts()
 {
     if ('off' === WPGlobus::Config()->toggle) {
         return;
     }
     /** @global string $pagenow */
     global $pagenow;
     $enabled_pages = array('post.php', 'post-new.php', 'edit-tags.php', 'term.php');
     if (WPGlobus_WP::is_pagenow($enabled_pages)) {
         WPGlobus::O()->vendors_scripts['WPSEO'] = true;
         $yoastseo_plus_access = sprintf(__('Please see %s to get access to page analysis with YoastSEO.', ''), '<a href="http://www.wpglobus.com/product/wpglobus-plus/#yoastseo" target="_blank">WPGlobus Plus</a>');
         $i18n = array('yoastseo_plus_access' => $yoastseo_plus_access);
         $handle = 'wpglobus-yoastseo';
         /** @noinspection PhpInternalEntityUsedInspection */
         $src_version = version_compare(WPSEO_VERSION, '3.1', '>=') ? '31' : '30';
         /** @noinspection PhpInternalEntityUsedInspection */
         $src_version = version_compare(WPSEO_VERSION, '3.2', '>=') ? '32' : $src_version;
         /** @noinspection PhpInternalEntityUsedInspection */
         $src_version = version_compare(WPSEO_VERSION, '3.3', '>=') ? '33' : $src_version;
         $src = WPGlobus::$PLUGIN_DIR_URL . 'includes/js/' . $handle . '-' . $src_version . WPGlobus::SCRIPT_SUFFIX() . '.js';
         wp_enqueue_script($handle, $src, array('jquery', 'underscore'), WPGLOBUS_VERSION, true);
         wp_localize_script($handle, 'WPGlobusVendor', array('version' => WPGLOBUS_VERSION, 'vendor' => WPGlobus::O()->vendors_scripts, 'pagenow' => $pagenow, 'i18n' => $i18n));
     }
 }
Example #8
0
 */
add_filter('locale', array('WPGlobus_Filters', 'filter__get_locale'), PHP_INT_MAX);
/** @todo Move the filter to Filters class */
add_action('activated_plugin', array('WPGlobus', 'activated'));
add_action('admin_init', array('WPGlobus_Filters', 'action__admin_init'), 0);
/**
 * Translate metadata
 * @since 1.2.1
 */
add_action('wp', array('WPGlobus_Filters', 'set_multilingual_meta_keys'));
add_filter('get_post_metadata', array('WPGlobus_Filters', 'filter__postmeta'), 0, 4);
/**
 * ACF filters
 * @todo Move to a separate controller
 */
if (WPGlobus_WP::is_doing_ajax() || !is_admin()) {
    add_filter('acf/load_value/type=text', array('WPGlobus_Filters', 'filter__text'), 0);
    add_filter('acf/load_value/type=textarea', array('WPGlobus_Filters', 'filter__text'), 0);
    add_filter('acf/load_value/type=wysiwyg', array('WPGlobus_Filters', 'filter__text'), 0);
}
/**
 * All In One SEO Pack filters
 */
if (defined('AIOSEOP_VERSION')) {
    if (is_admin()) {
        /**
         * Filter for @see localization
         * @scope admin
         * @since 1.2.1
         */
        add_filter('localization', array('WPGlobus_Filters', 'filter__text'), 0);
 /**
  * Do something on admin_init hook.
  * @todo Note: runs on admin-ajax and admin-post, too
  */
 public static function action__admin_init()
 {
     /**
      * Display blog name correctly on the WooThemes Helper page
      * wp-admin/index.php?page=woothemes-helper
      */
     if (WPGlobus_WP::is_plugin_page('woothemes-helper')) {
         add_filter('option_blogname', array('WPGlobus_Filters', 'filter__text'), 0);
     }
 }
 /**
  * Enable `themes.php` page to load our scripts and styles
  *
  * @param array $pages List of pages already enabled
  *
  * @return array Modified list of pages
  */
 public function enable_page($pages)
 {
     if (empty($this->config_dir_file)) {
         return $pages;
     }
     if (!empty($_GET['page']) && WPGlobus_WP::is_pagenow('themes.php')) {
         $pages[] = 'themes.php';
     }
     return $pages;
 }
Example #11
0
    /**
     * Make correct Site Title in admin bar.
     * Make template for Site Title (option blogname)
     * a Tagline (option blogdescription) at options-general.php page.
     * @return void
     */
    public function on_admin_footer()
    {
        $blogname = get_option('blogname');
        $bn = WPGlobus_Core::text_filter($blogname, WPGlobus::Config()->language, WPGlobus::RETURN_IN_DEFAULT_LANGUAGE);
        ?>
		<script type='text/javascript'>
			/* <![CDATA[ */
			jQuery('#wp-admin-bar-site-name a').eq(0).text("<?php 
        echo $bn;
        ?>
");
			/* ]]> */
		</script>
		<?php 
        /**
         * For dialog form
         * @since 1.2.0
         */
        /** @global string $pagenow */
        global $pagenow;
        $page = empty($_GET['page']) ? '' : $_GET['page'];
        // @todo remove after testing
        //if ( WPGlobus_WP::is_pagenow( array( 'post.php', 'widgets.php' ) ) ) {
        if (in_array($pagenow, $this->enabled_pages) || in_array($page, $this->enabled_pages)) {
            /**
             * Output dialog form for window.WPGlobusDialogApp
             */
            ?>
			<div id="wpglobus-dialog-wrapper" class="hidden wpglobus-dialog-wrapper">
				<form id="wpglobus-dialog-form">
					<div id="wpglobus-dialog-tabs" class="wpglobus-dialog-tabs">
						<ul class="wpglobus-dialog-tabs-list">    <?php 
            $order = 0;
            foreach (WPGlobus::Config()->open_languages as $language) {
                ?>
								<li id="dialog-link-tab-<?php 
                echo $language;
                ?>
"
								    data-language="<?php 
                echo $language;
                ?>
"
								    data-order="<?php 
                echo $order;
                ?>
"
								    class="wpglobus-dialog-tab"><a
										href="#dialog-tab-<?php 
                echo $language;
                ?>
"><?php 
                echo WPGlobus::Config()->en_language_name[$language];
                ?>
</a>
								</li> <?php 
                $order++;
            }
            ?>
						</ul> <?php 
            foreach (WPGlobus::Config()->open_languages as $language) {
                ?>
							<div id="dialog-tab-<?php 
                echo $language;
                ?>
" class="wpglobus-dialog-general">
								<textarea name="wpglobus-dialog-<?php 
                echo $language;
                ?>
"
								          id="wpglobus-dialog-<?php 
                echo $language;
                ?>
"
								          class="wpglobus_dialog_textarea textarea"
								          data-language="<?php 
                echo $language;
                ?>
"
								          data-order="save_dialog"></textarea>
							</div> <?php 
            }
            ?>
					</div>
				</form>
			</div>        <?php 
        }
        if (!WPGlobus_WP::is_pagenow('options-general.php')) {
            return;
        }
        $blogdesc = get_option('blogdescription');
        ?>
		<div id="wpglobus-blogname" class="hidden">        <?php 
        foreach (self::Config()->enabled_languages as $language) {
            $return = $language == self::Config()->default_language ? WPGlobus::RETURN_IN_DEFAULT_LANGUAGE : WPGlobus::RETURN_EMPTY;
            ?>

				<input type="text" class="regular-text wpglobus-blogname wpglobus-translatable"
				       value="<?php 
            echo WPGlobus_Core::text_filter($blogname, $language, $return);
            ?>
"
				       id="blogname-<?php 
            echo $language;
            ?>
" name="blogname-<?php 
            echo $language;
            ?>
"
				       data-language="<?php 
            echo $language;
            ?>
"
				       placeholder="<?php 
            echo self::Config()->en_language_name[$language];
            ?>
"><br />

				<?php 
        }
        ?>
		</div>

		<div id="wpglobus-blogdescription" class="hidden">        <?php 
        foreach (self::Config()->enabled_languages as $language) {
            $return = $language == self::Config()->default_language ? WPGlobus::RETURN_IN_DEFAULT_LANGUAGE : WPGlobus::RETURN_EMPTY;
            ?>

				<input type="text" class="regular-text wpglobus-blogdesc wpglobus-translatable"
				       value="<?php 
            echo WPGlobus_Core::text_filter($blogdesc, $language, $return);
            ?>
"
				       id="blogdescription-<?php 
            echo $language;
            ?>
" name="blogdescription-<?php 
            echo $language;
            ?>
"
				       data-language="<?php 
            echo $language;
            ?>
"
				       placeholder="<?php 
            echo self::Config()->en_language_name[$language];
            ?>
"><br />

				<?php 
        }
        ?>
		</div>
		<?php 
    }
Example #12
0
require_once dirname(__FILE__) . '/includes/admin/class-wpglobus-customize-options.php';
WPGlobus_Customize_Options::controller();
// TODO remove this old updater.
require_once dirname(__FILE__) . '/updater/class-wpglobus-updater.php';
/**
 * TIVWP Updater.
 *
 * @since 1.5.9
 */
if (version_compare(PHP_VERSION, '5.3.0', '>=') && file_exists(dirname(__FILE__) . '/vendor/tivwp/updater/updater.php')) {
    require_once dirname(__FILE__) . '/vendor/tivwp/updater/updater.php';
}
/**
 * In admin area
 */
if (WPGlobus_WP::in_wp_admin()) {
    /**
     * Admin page helpers
     *
     * @since 1.6.5
     */
    require_once dirname(__FILE__) . '/includes/admin/class-wpglobus-admin-page.php';
    /**
     * HelpDesk
     *
     * @since 1.6.5
     */
    require_once dirname(__FILE__) . '/includes/admin/helpdesk/class-wpglobus-admin-helpdesk.php';
    WPGlobus_Admin_HelpDesk::construct();
    /**
     * Admin page central.
        /**
         * Displays an inactive notice when the software is inactive.
         */
        public function notice_license_inactive()
        {
            // Show notice to admins only and only on the "Plugins" page.
            if (!(current_user_can('manage_options') && WPGlobus_WP::is_pagenow('plugins.php'))) {
                return;
            }
            ?>
			<div class="notice <?php 
            echo WPGlobus_WP::ADMIN_NOTICE_WARNING;
            ?>
">
				<p>
					<strong><?php 
            echo esc_html($this->ame_software_product_id);
            ?>
: </strong>
					<?php 
            esc_html_e('License has not been activated.', 'wpglobus');
            echo ' ';
            echo '<a href="' . esc_url(admin_url('index.php?page=' . $this->ame_activation_tab_key)) . '">';
            esc_html_e('Click here to enter the license key and get the updates.', 'wpglobus');
            echo '</a>';
            ?>
				</p>
			</div>
			<?php 
        }