setWebRoot(FSC::$app['config']['content_directory']); $dirTree = $scanner->scan(__DIR__ . '/../../../www/' . FSC::$app['config']['content_directory'], 4); $scanResults = $scanner->getScanResults(); //获取目录 $menus = $scanner->getMenus(); $cateId = $this->get('id', $menus[0]['id']); $titles = []; $html = ''; $readmeFile = $scanner->getDefaultReadme(); if (!empty($readmeFile)) { $titles = $scanner->getMDTitles($readmeFile['id']); $Parsedown = new Parsedown(); $content = file_get_contents($readmeFile['realpath']); $html = $Parsedown->text($content); $html = $scanner->fixMDUrls($readmeFile['realpath'], $html); } //获取目录面包屑 $subcate = $scanResults[$cateId]; $breadcrumbs = $this->getBreadcrumbs($menus, $subcate); $pageTitle = !empty($titles) ? $titles[0]['name'] : "FileSite.io - 无数据库、基于文件和目录的Markdown文档、网址导航、图书、图片、视频网站PHP开源系统"; $viewName = '//site/index'; //共享视图 $params = compact('cateId', 'dirTree', 'scanResults', 'menus', 'html', 'breadcrumbs'); return $this->render($viewName, $params, $pageTitle); } //根据目录结构以及当前目录获取面包屑 protected function getBreadcrumbs($menus, $subcate) { $breads = []; array_push($breads, [ 'id' => $subcate['id'], 'name' => $subcate['directory'], 'url' => $subcate['path'], ]); $foundKey = array_search($subcate['pid'], array_column($menus, 'id')); if ($foundKey !== false) { array_unshift($breads, [ 'id' => $menus[$foundKey]['id'], 'name' => $menus[$foundKey]['directory'], 'url' => $menus[$foundKey]['path'], ]); } return $breads; } }