/** * Building menu to cache * @param Translate $lang * @return array */ static function build_menu(Translate $lang) { $store = NCStore::instance(); return $store->get('admin.main.menu', 120, function () use($lang) { return Helper::rebuild_menu($lang); }); }
public function configure() { // Control panel menu $this->view->assign('menu', Helper::build_menu($this->lang)); }
public function fmanager(Request $request) { $root = ROOT . S . 'static'; $method = strtolower($request->get('m', 'list')); $dir = $root . $request->get('d', S); function filterp($path) { return str_replace(S . S, S, str_replace('//', '/', $path)); } function filterup($path) { $path = explode(S, $path); array_pop($path); return implode(S, $path); } // Assign current directory path $this->view->assign('dir', rtrim($request->get('d', S), S) . S); // Assign prev directory path $up_dir = filterup($request->get('d', S)); $this->view->assign('up', $up_dir ? $up_dir : S); // Base URL for any item $url = filterp('/static/' . trim(str_replace(S, '/', $request->get('d', S)), '/') . '/'); $this->view->assign('base_url', $url); // Define wyi name $this->view->assign('wyi', $request->get('wyi', 'edit')); switch ($method) { // Delete file case 'delete': $filename = filterp(rtrim($dir, S) . S . $request->get('f')); if (file_exists($filename)) { Helper::delete($filename); } break; // Upload file // Upload file case 'upload': $uploader = new FileUploader(['file']); $uploader->upload($dir); break; // Rename file // Rename file case 'rename': $filename = filterp(rtrim($dir, S) . S . $request->get('f')); $newname = filterp(rtrim($dir, S) . S . $request->get('n')); if (file_exists($newname)) { Helper::delete($newname); } if (file_exists($filename)) { rename($filename, $newname); $this->view->assign('up', filterup($up_dir)); } break; // Create folder // Create folder case 'create': $dirname = filterp(rtrim($dir, S) . S . $request->get('f')); if (!file_exists($dirname) && $request->get('f', false)) { @mkdir($dirname, 0777, true); } break; default: break; } return $this->view->render('com/filemanager.twig', ['items' => Helper::items($dir, ['.', '..']), 'date' => date('Y-m-d')]); }