sort = $sortingService; $this->settings = $settingsService; $this->contents = $contentService; $this->theme = $this->settings->getGlobal()['theme']; } public function publishAll() { $message = []; $dynamicRender = $this->settings->getGlobal()['dynamicRender']; if (isset($dynamicRender) && $dynamicRender === 'true') { $message = [ 'message' => 'Auto Rendering is already enabled!', 'type' => 'RENDER_SUCCESS', ]; } else { try { $this->archive(); $this->tags(); $this->pages(); $message = [ 'message' => 'Site Rendered. GOOD EFFORT', 'type' => 'RENDER_SUCCESS', ]; } catch (Error $error) { $message = [ 'message' => 'Issue With Rendering. DONT PANIC', 'type' => 'RENDER_ERROR', ]; } } return $message; } public function archive() { $template = $this->theme . '.archive'; $pageData = $this->sort->archive(false); $location = '../public/archives.html'; File::put( $location, view($template) ->with($pageData) ->render() ); } public function tags() { $data = $this->sort->tags(false); 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['dynamicRender'], 'info' => $data['info'], 'menu' => $data['menu'], 'pages' => $item['pages'], 'media' => $data['media'], ]; $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'; $pageData = $this->sort->page($page, false); 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()); } } }