Microweber\Providers\UpdateManager::apply_updates_queue PHP Method

apply_updates_queue() public method

public apply_updates_queue ( )
    public function apply_updates_queue()
    {
        $a = $this->app->user_manager->is_admin();
        if ($a == false) {
            mw_error('Must be admin!');
        }
        $c_id = $this->updates_queue_cache_id;
        $cache_group = $this->updates_queue_cache_group;
        $cache_content = $this->app->cache_manager->get($c_id, $cache_group);
        if (!empty($cache_content)) {
            $work = $cache_content;
            if (is_array($work) and !empty($work)) {
                foreach ($work as $k => $items) {
                    if (is_array($items) and !empty($items)) {
                        foreach ($items as $ik => $item) {
                            $msg = '';
                            if ($k == 'mw_version') {
                                $msg .= 'Installing Core Update...' . "\n";
                            } elseif ($k == 'modules') {
                                $msg .= 'Installing module...' . "\n";
                            } elseif ($k == 'templates') {
                                $msg .= 'Installing template...' . "\n";
                            } elseif ($k == 'module_templates') {
                                $msg .= 'Installing module skin...' . "\n";
                            } else {
                                $msg .= 'Installing...' . "\n";
                            }
                            $msg .= $item . "\n";
                            $queue = array($k => array(0 => $item));
                            $is_done = $this->apply_updates($queue);
                            $msg_log = $this->_log_msg(true);
                            if (!empty($msg_log)) {
                                $msg .= implode("\n", $msg_log) . "\n";
                            }
                            if (isset($is_done[0])) {
                                if (isset($is_done[0]['success'])) {
                                    $msg .= $is_done[0]['success'] . "\n";
                                } elseif (isset($is_done[0]['warning'])) {
                                    $msg .= $is_done[0]['warning'] . "\n";
                                } elseif (isset($is_done[0]['message'])) {
                                    $msg .= $is_done[0]['message'] . "\n";
                                }
                            } else {
                                $msg .= 'ERROR...' . "\n";
                                $msg .= print_r($is_done, true);
                            }
                            unset($work[$k][$ik]);
                            $this->app->cache_manager->save($work, $c_id, $cache_group);
                            return $msg;
                        }
                    } else {
                        unset($work[$k]);
                        ///  $this->composer_run();
                        if ($k == 'mw_version') {
                            $install = array('mw_version' => 'latest');
                            $is_done = $this->apply_updates($install);
                        }
                        $this->app->cache_manager->save($work, $c_id, $cache_group);
                        //  $msg = "Installed all " . $k . "\n";
                        //  $msg = "Installed " . "\n";
                        $msg = 'done';
                        return $msg;
                    }
                }
            } else {
                $this->app->cache_manager->save(false, $c_id, $cache_group);
            }
        } else {
            $this->app->cache_manager->save(false, $c_id, $cache_group);
        }
        return 'done';
    }