Пример #1
0
 /**
  * Running necesarry queries and functions for upgrading
  * @author Howard <*****@*****.**>
  * @return void
  */
 public function upgrade_wpl()
 {
     if (wpl_folder::exists(WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'files')) {
         /** copy files **/
         $res = wpl_folder::copy(WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'files', ABSPATH, '', true);
         /** delete files **/
         wpl_folder::delete(WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'files');
     }
     /** run queries **/
     $query_file = WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'queries.sql';
     if (wpl_file::exists($query_file)) {
         $queries = wpl_file::read($query_file);
         $queries = str_replace(";\r\n", "-=++=-", $queries);
         $queries = str_replace(";\r", "-=++=-", $queries);
         $queries = str_replace(";\n", "-=++=-", $queries);
         $sqls = explode("-=++=-", $queries);
         if (function_exists('is_multisite') and is_multisite() and wpl_global::check_addon('multisite')) {
             $original_blog_id = wpl_global::get_current_blog_id();
             // Get all blogs
             $blogs = wpl_db::select("SELECT `blog_id` FROM `#__blogs`", 'loadColumn');
             foreach ($blogs as $blog) {
                 if (!isset($blog->blog_id)) {
                     continue;
                 }
                 switch_to_blog($blog->blog_id);
                 foreach ($sqls as $sql) {
                     try {
                         wpl_db::q($sql);
                     } catch (Exception $e) {
                     }
                 }
             }
             /** delete query file **/
             wpl_file::delete($query_file);
             switch_to_blog($original_blog_id);
         } else {
             foreach ($sqls as $sql) {
                 try {
                     wpl_db::q($sql);
                 } catch (Exception $e) {
                 }
             }
             /** delete query file **/
             wpl_file::delete($query_file);
         }
     }
     /** run script **/
     $script_file = WPL_ABSPATH . 'assets' . DS . 'upgrade' . DS . 'script.php';
     if (wpl_file::exists($script_file)) {
         include $script_file;
         /** delete script file **/
         wpl_file::delete($script_file);
     }
     /** update WPL version in db **/
     update_option('wpl_version', wpl_global::wpl_version());
 }