/**
  * PHP 5 Constructor
  */
 function __construct($xl_parent)
 {
     $this->parent = $xl_parent;
     // to keep values built in parent filters...
     // need parent constructed values (third param - tell coming from admin-class //2.6
     parent::__construct(false, false, true);
     // vars shared between parent and admin class - 2.8.4.3
     $this->xili_settings =& $this->parent->xili_settings;
     $this->langs_list_options =& $this->parent->langs_list_options;
     // 2.8.6
     if (!class_exists('GP_Locales')) {
         require_once $this->plugin_path . 'xili-includes/locales.php';
     }
     // from JetPack copied
     $XL_locales = GP_Locales::instance();
     $this->examples_list = array();
     foreach ($XL_locales->locales as $key => $one_locale) {
         if (isset($one_locale->wp_locale) && $one_locale->wp_locale != '') {
             $this->examples_list[$one_locale->wp_locale] = sprintf(_x('%1$s/%2$s', 'locales', 'xili-language'), $one_locale->english_name, $one_locale->native_name);
         } else {
             // a * inserted if no existing WP_locale declared...
             $this->examples_list[$key] = sprintf(_x('%1$s/%2$s *', 'locales', 'xili-language'), $one_locale->english_name, $one_locale->native_name);
         }
     }
     $this->default_lang =& $this->parent->default_lang;
     $this->default_locale = GP_Locales::by_field('wp_locale', $this->default_lang);
     $this->langs_group_id =& $this->parent->langs_group_id;
     $this->langs_group_tt_id =& $this->parent->langs_group_tt_id;
     $this->get_template_directory =& $this->parent->get_template_directory;
     $this->get_parent_theme_directory =& $this->parent->get_parent_theme_directory;
     $this->show_page_on_front =& $this->parent->show_page_on_front;
     $this->arraydomains =& $this->parent->arraydomains;
     $this->lang_perma =& $this->parent->lang_perma;
     $this->alias_mode =& $this->parent->alias_mode;
     $this->langs_ids_array =& $this->parent->langs_ids_array;
     $this->langs_slug_name_array =& $this->parent->langs_slug_name_array;
     $this->langs_slug_fullname_array =& $this->parent->langs_slug_fullname_array;
     $this->langs_slug_shortqv_array =& $this->parent->langs_slug_shortqv_array;
     $this->langs_shortqv_slug_array =& $this->parent->langs_shortqv_slug_array;
     add_action('admin_init', array(&$this, 'init_roles'));
     // 2.8.8
     add_action('admin_head', array(&$this, 'xd_flush_permalinks'));
     // 2.11
     add_filter('wp_get_nav_menus', array(&$this, '_update_menus_insertion_points'), 10, 2);
     // 2.13
     // since 2.2.0
     add_action('admin_bar_init', array(&$this, 'admin_bar_init'));
     // add button in toolbar
     // 2.8.0 dashboard language - inspired from Takayuki Miyoshi works
     add_filter('locale', array(&$this, 'admin_side_locale'));
     add_action('admin_init', array(&$this, 'switch_user_locale'));
     add_action('personal_options_update', array(&$this, 'update_user_dashboard_lang_option'));
     add_action('personal_options', array(&$this, 'select_user_dashboard_locale'));
     add_action('edit_user_profile_update', array(&$this, 'update_user_dashboard_lang_option'));
     // 2.18
     // plugins list infos
     add_filter('plugin_row_meta', array(&$this, 'more_infos_in_plugin_list'), 10, 2);
     // class WP_Plugins_List_Table
     add_filter('plugin_action_links', array(&$this, 'more_plugin_actions'), 10, 2);
     // class WP_Plugins_List_Table
     add_action('after_plugin_row', array(&$this, 'more_plugin_row'), 10, 3);
     // class WP_Plugins_List_Table
     // Dashboard menu and settings pages
     add_action('admin_init', array(&$this, 'admin_redirects'));
     // 2.20 for welcome screen
     add_action('admin_menu', array(&$this, 'admin_welcome'), 10);
     // 2.20
     add_action('admin_menu', array(&$this, 'add_menu_settings_pages'), 10);
     add_action('admin_menu', array(&$this, 'admin_sub_menus_hide'), 12);
     //
     add_filter('admin_title', array(&$this, 'admin_recover_page_title'), 10, 2);
     // 2.11.3
     add_action('admin_print_styles-settings_page_language_page', array(&$this, 'print_styles_options_language_page'), 20);
     add_action('admin_print_styles-settings_page_language_front_set', array(&$this, 'print_styles_options_language_tabs'), 20);
     add_action('admin_print_styles-settings_page_language_expert', array(&$this, 'print_styles_options_language_tabs'), 40);
     add_action('admin_print_styles-settings_page_author_rules', array(&$this, 'print_styles_options_language_tabs'), 20);
     add_action('admin_print_styles-settings_page_language_files', array(&$this, 'print_styles_options_language_tabs'), 20);
     add_action('admin_print_styles-settings_page_language_support', array(&$this, 'print_styles_options_language_support'), 20);
     // Navigation menu builder
     add_action('admin_init', array(&$this, 'add_language_nav_menu_meta_boxes'));
     add_action('admin_init', array(&$this, 'add_sub_select_page_nav_menu_meta_boxes'));
     add_action('admin_init', array(&$this, 'add_sub_select_nav_menu_meta_boxes'));
     // Edit Post Page
     add_action('admin_init', array(&$this, 'admin_init'));
     // styles registering
     add_action('post_submitbox_start', array(&$this, 'post_submit_permalink_option'));
     // 2.15 - option to use title as permalink
     // Propagation && Authoring settings
     add_action('admin_init', array(&$this, 'set_author_rules_register_setting'));
     add_action('admin_init', array(&$this, 'set_propagation_actions'));
     // frontend new settings
     add_action('admin_init', array(&$this, 'set_frontend_settings_fields'));
     add_action('admin_menu', array(&$this, 'add_custom_box_in_post_edit'));
     add_action('admin_print_scripts-post.php', array(&$this, 'find_post_script'));
     // 2.2.2
     add_action('admin_print_scripts-post-new.php', array(&$this, 'find_post_script'));
     // 2.9.10
     add_action('wp_ajax_find_post_types', array(&$this, 'wp_ajax_find_post_types'));
     add_action('admin_print_styles-post.php', array(&$this, 'print_styles_cpt_edit'));
     add_action('admin_print_styles-post-new.php', array(&$this, 'print_styles_cpt_edit'));
     //add_filter( 'is_protected_meta', array(&$this,'hide_lang_post_meta'), 10, 3 ); // 2.5
     //add_filter( 'post_meta_key_subselect', array(&$this,'hide_lang_post_meta_popup'), 10, 2); // 2.5
     /* actions for edit post page */
     add_action('save_post', array(&$this, 'xili_language_add'), 10, 2);
     add_action('save_post', array(&$this, 'fixes_post_slug'), 11, 2);
     // 2.5
     // Edit Attachment Media
     add_filter('attachment_fields_to_edit', array(&$this, 'add_language_attachment_fields'), 10, 2);
     // 2.6.3
     add_filter('attachment_fields_to_save', array(&$this, 'set_attachment_fields_to_save'), 10, 2);
     // 2.6.3
     add_action('delete_attachment', array(&$this, 'if_cloned_attachment'));
     // 2.6.3
     add_filter('wp_delete_file', array(&$this, 'if_file_cloned_attachment'));
     // 2.6.3
     // Flag media
     add_action('attachment_submitbox_misc_actions', array(&$this, 'attachment_submitbox_flag_metadata'));
     // 2.15
     add_filter('display_media_states', array(&$this, 'add_display_media_states'));
     add_action('edit_attachment', array(&$this, 'update_attachment_context'));
     // 2.15
     add_action('add_attachment', array(&$this, 'xili_reset_transient_get_flag_series'));
     // 2.16.4
     add_action('edit_attachment', array(&$this, 'xili_reset_transient_get_flag_series'));
     add_action('delete_attachment', array(&$this, 'xili_reset_transient_get_flag_series'));
     // near get_flag_series
     add_action('admin_menu', array(&$this, 'add_custom_box_in_media_edit'));
     // 2.15 custom meta box in single media edit
     add_action('admin_menu', array($this, 'flag_options_theme_menu'));
     // 2.15
     add_action('admin_init', array(&$this, 'set_flag_register_setting'));
     // posts edit table
     add_filter('manage_edit-post_columns', array(&$this, 'xili_manage_column_name'));
     // 2.9.10 - post quick edit single row
     add_filter('manage_post_posts_columns', array(&$this, 'xili_manage_column_name'));
     // 2.8.1
     add_filter('manage_page_posts_columns', array(&$this, 'xili_manage_column_name'));
     add_filter('manage_media_columns', array(&$this, 'xili_manage_column_name'));
     // 2.6.3
     $custompoststype = $this->xili_settings['multilingual_custom_post'];
     // 2.8.1
     if ($custompoststype != array()) {
         foreach ($custompoststype as $key => $customtype) {
             if (!class_exists('bbPress') && $customtype['multilingual'] == 'enable' || class_exists('bbPress') && !in_array($key, array(bbp_get_forum_post_type(), bbp_get_topic_post_type(), bbp_get_reply_post_type())) && $customtype['multilingual'] == 'enable') {
                 add_filter('manage_' . $key . '_posts_columns', array(&$this, 'xili_manage_column_name'));
             }
         }
     }
     if (class_exists('bbPress')) {
         add_filter('bbp_admin_forums_column_headers', array(&$this, 'xili_manage_column_name'));
         add_filter('bbp_admin_topics_column_headers', array(&$this, 'xili_manage_column_name'));
         add_filter('bbp_admin_replies_column_headers', array(&$this, 'xili_manage_column_name'));
         //2.8.1
     }
     add_action('manage_posts_custom_column', array(&$this, 'xili_manage_column'), 10, 2);
     add_action('manage_pages_custom_column', array(&$this, 'xili_manage_column'), 10, 2);
     add_action('manage_media_custom_column', array(&$this, 'xili_manage_column'), 10, 2);
     // 2.6.3
     add_action('admin_print_styles-edit.php', array(&$this, 'print_styles_posts_list'), 20);
     add_action('admin_print_styles-upload.php', array(&$this, 'print_styles_posts_list'), 20);
     // 2.6.3
     add_filter('category_name', array(&$this, 'translated_category_name'), 10, 3);
     // 2.13.3
     // quick edit languages in list - 1.8.9
     add_action('quick_edit_custom_box', array(&$this, 'languages_custom_box'), 10, 2);
     add_action('admin_head-edit.php', array(&$this, 'quick_edit_add_script'));
     add_action('bulk_edit_custom_box', array(&$this, 'hidden_languages_custom_box'), 10, 2);
     // 1.8.9.3
     add_action('wp_ajax_save_bulk_edit', array(&$this, 'save_bulk_edit_language'));
     // 2.9.10
     add_action('wp_ajax_get_menu_infos', array(&$this, 'ajax_get_menu_infos'));
     // 2.9.10
     // sub-select in admin/edit.php 1.8.9
     add_action('restrict_manage_posts', array(&$this, 'restrict_manage_languages_posts'));
     /* categories edit-tags table */
     add_filter('manage_edit-category_columns', array(&$this, 'xili_manage_tax_column_name'));
     add_filter('manage_category_custom_column', array(&$this, 'xili_manage_tax_column'), 10, 3);
     // 2.6
     add_filter('category_row_actions', array(&$this, 'xili_manage_tax_action'), 10, 2);
     // 2.6
     add_action('admin_print_styles-edit-tags.php', array(&$this, 'print_styles_posts_list'), 20);
     add_action('category_edit_form_fields', array(&$this, 'show_translation_msgstr'), 10, 2);
     add_action('category_add_form', array(&$this, 'update_xd_msgid_list'));
     //do_action($taxonomy . '_add_form', $taxonomy);
     /* actions for edit link page */
     add_action('admin_menu', array(&$this, 'add_custom_box_in_link'));
     add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_menu_script'));
     add_filter('manage_link-manager_columns', array(&$this, 'xili_manage_link_column_name'));
     // 1.8.5
     add_action('manage_link_custom_column', array(&$this, 'manage_link_lang_column'), 10, 2);
     add_action('admin_print_styles-link.php', array(&$this, 'print_styles_link_edit'), 20);
     // set or update term for this link taxonomy
     add_action('edit_link', array(&$this, 'edit_link_set_lang'));
     add_action('add_link', array(&$this, 'edit_link_set_lang'));
     // default screen options - nav menus
     add_action('added_user_meta', array(&$this, 'default_nav_menus_screen_options'), 10, 4);
     // infos in xml export
     add_action('export_filters', array(&$this, 'message_export_limited'));
     // 2.12.1
     //display contextual help
     add_action('contextual_help', array(&$this, 'add_help_text'), 10, 3);
     /* 1.7.0 */
 }
Example #2
0
/**
 * instantiation of xili_language class
 *
 * @since 1.8.8 to verify that WP 3.0 is installed
 * @updated for 1.8.9, 2.3.1, 2.7.1 (function)
 *
 */
function xili_language_start()
{
    global $wp_version, $xili_language, $xili_language_admin;
    if (version_compare(PHP_VERSION, XILILANGUAGE_PHP_VER, '<')) {
        add_action('admin_notices', 'xili_language_need_php5');
        return;
    } elseif (version_compare($wp_version, XILILANGUAGE_WP_VER, '<') && XILILANGUAGE_VER > XILILANGUAGE_PREV_VER) {
        add_action('admin_notices', 'xili_language_need_31');
        return;
    } else {
        // new sub-folder since 2.6
        require_once plugin_dir_path(__FILE__) . 'xili-includes/xili-language-widgets.php';
        require_once plugin_dir_path(__FILE__) . 'xili-includes/theme-multilingual-classes.php';
        // since 2.20.0
        /**
         * instantiation of xili_language class
         *
         * @since 0.9.7
         * @updated 2.6
         *
         *
         * @param locale_method (true for cache compatibility... in current tests with johan.eenfeldt@kostdoktorn.se)
         * @param future version
         */
        $xili_language = new xili_language(false, false);
        if (is_admin()) {
            $plugin_path = dirname(__FILE__);
            // w/o / at end
            require $plugin_path . '/xili-includes/xl-class-admin.php';
            $xili_language_admin = new xili_language_admin($xili_language);
        }
        /**
         * Enable to add functions and filters that are not in theme's functions.php
         * These filters are common even if you change default theme...
         * Place your functions.php in folder plugins/xilidev-libraries/
         * if you have a filter in this file, avoid to have similar one in functions.php of the theme !!!
         *
         * (for tests, check / uncheck 'enable gold functions' in settings UI)
         * @since 1.0
         * @updated 1.4.0
         */
        $xili_language->insert_gold_functions();
    }
}