/** * Shield Attacher * --------------- */ Route::accept($config->manager->slug . '/shield/(attach|eject)/id:(:any)', function ($path = "", $slug = "") use($config, $speak) { $new_config = Get::state_config(); $new_config['shield'] = $path === 'attach' ? $slug : 'normal'; File::serialize($new_config)->saveTo(STATE . DS . 'config.txt', 0600); $G = array('data' => array('id' => $slug, 'action' => $path)); $mode = $path === 'eject' ? 'eject' : 'mount'; Notify::success(Config::speak('notify_success_updated', $speak->shield)); Weapon::fire('on_shield_update', array($G, $G)); Weapon::fire('on_shield_' . $mode, array($G, $G)); Weapon::fire('on_shield_' . md5($slug) . '_update', array($G, $G)); Weapon::fire('on_shield_' . md5($slug) . '_' . $mode, array($G, $G)); foreach (glob(SYSTEM . DS . 'log' . DS . 'asset.*.log', GLOB_NOSORT) as $asset_cache) { File::open($asset_cache)->delete(); } Guardian::kick($config->manager->slug . '/shield/' . $slug); }); /** * Shield Backup * ------------- */ Route::accept($config->manager->slug . '/shield/backup/id:(:any)', function ($folder = "") use($config, $speak) { $name = $folder . '.zip'; Package::take(SHIELD . DS . $folder)->pack(ROOT . DS . $name, true); $G = array('data' => array('path' => ROOT . DS . $name, 'file' => ROOT . DS . $name)); Weapon::fire('on_backup_construct', array($G, $G)); Guardian::kick($config->manager->slug . '/backup/send:' . $name); });
<?php if ($package = File::exist($destination . DS . $name)) { if (is_file($package)) { Package::take($package)->extract(); // Extract the ZIP file File::open($package)->delete(); // Delete the ZIP file Config::load(); // Refresh the configuration data ... Guardian::kick(Config::get('manager.slug') . '/' . $segment); } }
<?php if ($uploaded = File::exist($task_connect_path . DS . $name)) { Package::take($uploaded)->extract(); // Extract the ZIP file File::open($uploaded)->delete(); // Delete the ZIP file Config::load(); // Refresh the configuration data ... Guardian::kick(Config::get('manager')->slug . '/' . $task_connect_kick); }
Shield::abort(); } $info = Plugin::info($slug, true); $info['slug'] = $slug; Config::set(array('page_title' => $speak->deleting . ': ' . $info['title'] . $config->title_separator . $config->manager->title, 'file' => $info, 'cargo' => DECK . DS . 'workers' . DS . 'kill.plugin.php')); if ($request = Request::post()) { Guardian::checkToken($request['token']); File::open(PLUGIN . DS . $slug)->delete(); $P = array('data' => array('id' => $slug)); Notify::success(Config::speak('notify_success_deleted', $speak->plugin)); Weapon::fire('on_plugin_update', array($P, $P)); Weapon::fire('on_plugin_destruct', array($P, $P)); Weapon::fire('on_plugin_' . md5($slug) . '_update', array($P, $P)); Weapon::fire('on_plugin_' . md5($slug) . '_destruct', array($P, $P)); Guardian::kick($config->manager->slug . '/plugin'); } else { Notify::warning(Config::speak('notify_confirm_delete_', '<strong>' . $info['title'] . '</strong>')); } Shield::lot('segment', 'plugin')->attach('manager', false); }); /** * Plugin Backup * ------------- */ Route::accept($config->manager->slug . '/plugin/backup/id:(:any)', function ($folder = "") use($config, $speak) { $name = $folder . '.zip'; Package::take(PLUGIN . DS . $folder)->pack(ROOT . DS . $name, true); $G = array('data' => array('path' => ROOT . DS . $name, 'file' => ROOT . DS . $name)); Weapon::fire('on_backup_construct', array($G, $G)); Guardian::kick($config->manager->slug . '/backup/send:' . $name); });
* ---------------- */ Route::accept($config->manager->slug . '/backup/origin:(:all)', function ($path = "", $origin = "") use($config, $speak) { if (Guardian::get('status') !== 'pilot') { Shield::abort(); } $time = date('Y-m-d-H-i-s'); $site = Text::parse($config->title, '->slug'); if (trim($origin, '.') === "") { $name = $site . '_' . $time . '.zip'; Package::take(ROOT)->pack(ROOT . DS . $name); } else { $name = $site . '.cabinet.' . str_replace('/', '.', $origin) . '_' . $time . '.zip'; Package::take(ROOT . DS . 'cabinet' . DS . $origin)->pack(ROOT . DS . $name); if ($origin === 'shields') { Package::take(ROOT . DS . $name)->deleteFiles(array('json.php', 'rss.php', 'sitemap.php', 'widgets.css', 'widgets.js')); } } Guardian::kick($config->manager->slug . '/backup/send:' . $name); }); /** * Downloading Backup File(s) * -------------------------- */ Route::accept($config->manager->slug . '/backup/send:(:any)', function ($file = "") use($config, $speak) { if (Guardian::get('status') !== 'pilot') { Shield::abort(); } if ($backup = File::exist(ROOT . DS . $file)) { $G = array('data' => array('path' => $backup, 'file' => $backup)); Weapon::fire('on_backup_construct', array($G, $G));
} $time = Date::slug(time()); $site = Text::parse($config->title, '->slug'); if (trim($origin, '.') === "") { $name = $site . '_' . $time . '.zip'; Package::take(ROOT)->pack(ROOT . DS . $name); } else { $name = $site . '.' . File::B(CARGO) . '.' . str_replace('/', '.', $origin) . '_' . $time . '.zip'; Package::take(CARGO . DS . $origin)->pack(ROOT . DS . $name); if ($origin === 'shields') { Package::take(ROOT . DS . $name)->deleteFolder('normal'); // delete `normal` shield Package::take(ROOT . DS . $name)->deleteFiles(array('json.php', 'rss.php', 'sitemap.php', 'widgets.css', 'widgets.js')); } if ($origin === 'extends') { Package::take(ROOT . DS . $name)->deleteFolder(File::B(CHUNK)); // delete `chunk` folder } /* if($origin === 'plugins') { Package::take(ROOT . DS . $name)->deleteFolders(array( // delete built-in plugin(s) '__editor', '__editor-button', '__preview', 'asset-version', 'cache', 'comment-location', 'comment-notify', 'empty', 'facebook-open-graph', 'manager',