예제 #1
0
파일: PodsInit.php 프로젝트: benbrandt/pods
 /**
  * Setup and Initiate Pods
  *
  * @return \PodsInit
  *
  * @license http://www.gnu.org/licenses/gpl-2.0.html
  * @since 1.8.9
  */
 function __construct()
 {
     self::$version = get_option('pods_framework_version');
     self::$version_last = get_option('pods_framework_version_last');
     self::$db_version = get_option('pods_framework_db_version');
     self::$upgraded = (int) get_option('pods_framework_upgraded_1_x');
     if (empty(self::$version_last) && 0 < strlen(get_option('pods_version'))) {
         $old_version = get_option('pods_version');
         if (!empty($old_version)) {
             if (false === strpos($old_version, '.')) {
                 $old_version = pods_version_to_point($old_version);
             }
             update_option('pods_framework_version_last', $old_version);
             self::$version_last = $old_version;
         }
     }
     self::$upgrade_needed = $this->needs_upgrade();
     add_action('plugins_loaded', array($this, 'plugins_loaded'));
     add_action('init', array($this, 'activate_install'), 9);
     add_action('wp_loaded', array($this, 'flush_rewrite_rules'));
     if (!empty(self::$version)) {
         $this->run();
     }
 }
예제 #2
0
 /**
  * Setup and Initiate Pods
  *
  * @return \PodsInit
  *
  * @license http://www.gnu.org/licenses/gpl-2.0.html
  * @since 1.8.9
  */
 function __construct()
 {
     self::$version = get_option('pods_framework_version');
     self::$version_last = get_option('pods_framework_version_last');
     self::$db_version = get_option('pods_framework_db_version');
     self::$upgraded = (int) get_option('pods_framework_upgraded_1_x');
     if (empty(self::$version_last) && 0 < strlen(get_option('pods_version'))) {
         $old_version = get_option('pods_version');
         if (!empty($old_version)) {
             if (false === strpos($old_version, '.')) {
                 $old_version = pods_version_to_point($old_version);
             }
             update_option('pods_framework_version_last', $old_version);
             self::$version_last = $old_version;
         }
     }
     self::$upgrade_needed = $this->needs_upgrade();
     add_action('plugins_loaded', array($this, 'plugins_loaded'));
     add_action('init', array($this, 'activate_install'), 9);
     if (!empty(self::$version)) {
         add_action('plugins_loaded', array($this, 'load_components'), 11);
         add_action('setup_theme', array($this, 'load_meta'), 14);
         add_action('init', array($this, 'core'), 11);
         add_action('init', array($this, 'setup_content_types'), 11);
         add_filter('post_updated_messages', array($this, 'setup_updated_messages'), 10, 1);
         add_action('delete_attachment', array($this, 'delete_attachment'));
         if (is_admin()) {
             add_action('init', array($this, 'admin_init'), 12);
         }
         // Register widgets
         add_action('widgets_init', array($this, 'register_widgets'));
         // Show admin bar links
         add_action('admin_bar_menu', array($this, 'admin_bar_links'), 81);
     }
 }
예제 #3
0
 /**
  * @param null $_blog_id
  */
 public function setup($_blog_id = null)
 {
     global $wpdb;
     // Switch DB table prefixes
     if (null !== $_blog_id && $_blog_id != $wpdb->blogid) {
         switch_to_blog(pods_absint($_blog_id));
     } else {
         $_blog_id = null;
     }
     // Setup DB tables
     $pods_version = get_option('pods_framework_version');
     $pods_version_last = get_option('pods_framework_version_last');
     // Install Pods
     if (empty($pods_version)) {
         pods_upgrade()->install($_blog_id);
         $old_version = get_option('pods_version');
         if (!empty($old_version)) {
             if (false === strpos($old_version, '.')) {
                 $old_version = pods_version_to_point($old_version);
             }
             delete_option('pods_framework_version_last');
             add_option('pods_framework_version_last', $pods_version, '', 'yes');
             self::$version_last = $old_version;
         }
     } elseif ($this->needs_upgrade($pods_version, $pods_version_last)) {
         // Do not do anything
         return;
     } elseif (version_compare($pods_version, PODS_VERSION, '<=')) {
         if (false !== apply_filters('pods_update_run', null, PODS_VERSION, $pods_version, $_blog_id) && !isset($_GET['pods_bypass_update'])) {
             do_action('pods_update', PODS_VERSION, $pods_version, $_blog_id);
             // Update 2.0 alpha / beta sites
             if (version_compare('2.0.0-a-1', $pods_version, '<=') && version_compare($pods_version, '2.0.0-b-15', '<=')) {
                 include PODS_DIR . 'sql/update-2.0-beta.php';
             }
             if (version_compare($pods_version, PODS_DB_VERSION, '<=')) {
                 include PODS_DIR . 'sql/update.php';
             }
             do_action('pods_update_post', PODS_VERSION, $pods_version, $_blog_id);
         }
         delete_option('pods_framework_version_last');
         add_option('pods_framework_version_last', $pods_version, '', 'yes');
         self::$version_last = $pods_version;
     }
     delete_option('pods_framework_version');
     add_option('pods_framework_version', PODS_VERSION, '', 'yes');
     delete_option('pods_framework_db_version');
     add_option('pods_framework_db_version', PODS_DB_VERSION, '', 'yes');
     self::$version = PODS_VERSION;
     self::$db_version = PODS_DB_VERSION;
     pods_api()->cache_flush_pods();
     // Restore DB table prefix (if switched)
     if (null !== $_blog_id) {
         restore_current_blog();
     }
 }