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';
}