sort = $sortingService; $this->settings = $settingsService; $this->contents = $contentService; $this->theme = $this->settings->getGlobal()['theme']; } public function archive() { $template = $this->theme . '.archive'; $data = $this->sort->archive(); $pageData = [ 'theme' => $this->theme, // for theme kit 'title' => 'Archives', 'dynamicRender' => $data['info']['dynamicRender'], 'archive' => $data['archive'], 'info' => $data['info'], 'menu' => $data['info']['menu'], 'media' => [ ['file' => $data['info']['image'], 'type' => trim(pathinfo($data['info']['image'], PATHINFO_EXTENSION))] ], ]; $location = '../public/archive.html'; File::put( $location, view($template) ->with($pageData) ->render() ); } public function tags() { $data = $this->sort->tags(); foreach ($data['tags'] as $item) { //$template = 'tags.twig'; $template = $this->theme . '.tags'; $pageData = [ 'theme' => $this->theme, // for theme kit 'title' => 'Pages Tagged as ' . $item['tag_name'], 'dynamicRender' => $data['info']['dynamicRender'], 'info' => $data['info'], 'menu' => $data['info']['menu'], 'pages' => $item['pages'], 'media' => [ ['file' => $data['info']['image'], 'type' => trim(pathinfo($data['info']['image'], PATHINFO_EXTENSION))] ], ]; $location = '../public/tags/' . $item['slug'] . '.html'; if (!is_dir('../public/tags')) { mkdir('../public/tags', 0755, true); } File::put( $location, view($template) ->with($pageData) ->render() ); } } public function pages() { $pages = $this->contents->loadAllPages(); foreach ($pages as $page) { $template; $page['layout'] == 'index' ? $template = $this->theme . '.index' : $template = $this->theme . '.page'; $data = $this->sort->page($page); $pageData = [ "theme" => $this->theme, "status" => false, "title" => $data['title'], "meta" => $data['meta'], "menu" => $data['menu'], "info" => $data['info'], "media" => $data['media'], "files" => $data['files'], "content" => $data['content'], "recent" => $data['recent'], "feature" => $data['featured'], "tags" => $data['tags'], "dynamicRender" => $data['dynamicRender'], ]; if (str_contains($page['layout'], 'index')) { $location = '../public/index.html'; } else { // if page is a menu item, render the page on public root if ($page['menu'] == 'true') { $location = '../public/' . $page['slug'] . '.html'; } else { $dir = '../public/' . $page['path']; if (!is_dir($dir)) { mkdir($dir, 0755, true); } $location = '../public/' . $page['path'] . '/' . $page['slug'] . '.html'; } } File::put($location, view($template)->with($pageData)->render()); } } }