Example #1
0
 public function render()
 {
     // Create the path titles with urls
     $parents = explode('/', $this->page->slug);
     $current = current(array_reverse($parents));
     debug("Current" . $current);
     $urls = [];
     foreach ($parents as $slug) {
         if ($slug == $current) {
             break;
         }
         $parentp = R::findOne('page', 'slug = :slug', ['slug' => $slug]);
         $title = $parentp->title;
         $title = current(explode(' | ', $title));
         foreach (self::$remove as $string) {
             $title = str_replace($string, '', $title);
         }
         $exploded = explode(' | ', $title);
         foreach ($exploded as $rem) {
             self::$remove[] = $rem;
         }
         $title = str_replace('|', '', $title);
         $title = trim($title);
         $u = ['label' => $title, 'href' => $parentp->slug];
         $urls[] = $u;
     }
     $title = $this->page->title;
     $title = current(explode(' | ', $title));
     foreach (self::$remove as $string) {
         $title = str_replace($string, '', $title);
     }
     //		$title = trim(str_replace('|', '', $title));
     $urls[] = ['label' => $title, 'href' => $this->page->slug];
     return Theme_Loader::get_instance()->render_file('modules/breadcrumb/breadcrumb.twig', ['urls' => $urls]);
 }
Example #2
0
 public function create($filename, \App_Config_Ini $config, $template, $mtime)
 {
     //Add the meta config to this config
     $meta_config = $this->get_meta_config();
     //First load the page that matches the slug
     $existing = current(R::findOrDispense('page', 'slug = :slug', ['slug' => $config->page->slug]));
     if ($existing->getID() && $existing->gen_filename != $filename) {
         throw new Exception("A page already exists inside the database with the same slug but built with the onscreen page creator");
         return false;
     }
     $page = current(R::findOrDispense('page', 'gen_filename = :file', ['file' => $filename]));
     /* @var $page \RedBeanPHP\OODBBean */
     /**
      * Creates the page database object
      */
     if (!$page->getID()) {
         // The Page does not exist
         $page->gen_filename = $filename;
         $page->title = $config->page->title;
         $page->description = $config->page->description;
     } else {
         $old_slug = $page->slug;
         $meta = new Meta_Generator($meta_config);
         $page->title = !empty($config->page->title) ? $config->page->title : $meta->get_title($page->slug);
         $page->description = !empty($config->page->description) ? $config->page->description : $meta->get_description($page->slug);
     }
     $page->slug = $config->page->slug;
     $page->layout = $this->theme->load_layout($config->page->layout ? $config->page->layout : 'layouts.default.twig', $this->theme->theme)->file;
     /*
      * Create the template file in the theme
      */
     $page->template = $this->theme->generate_template($filename, $template, $mtime);
     R::store($page);
     // Create a route for this page for loading
     $r_func = function ($slug) use($page) {
         //Load the front end instance loader
         $theme = Theme_Loader::get_instance();
         $theme->set_theme(THEME);
         G2_User::init();
         if (G()->logged_in()) {
             $theme->logged_in();
         }
         $_SESSION['theme'] = $theme;
         //Render the theme
         if ($theme->page_exists($page->slug)) {
             $theme->render($page->slug);
         }
     };
     $route = new Router();
     if (isset($old_slug)) {
         $route->delete_route($old_slug);
     }
     $route->create_route($page->slug, $r_func);
 }
Example #3
0
 public function crud($args)
 {
     $posttype = array_shift($args);
     $id = array_shift($args);
     $post = current(R::findOrDispense('post', 'id = :id', ['id' => $id]));
     $model = $this->loadModel('post_model');
     if ($model->crud($posttype, $post)) {
         Theme_Loader::get_instance()->get_cache_object()->clean('all');
         $this->redirect(PACKAGE_URL . "posts/view/{$posttype}");
     }
 }
Example #4
0
 public function render()
 {
     $c = HtmlPageCrawler::create($this->html);
     $this->process_html();
     $c = HtmlPageCrawler::create($this->html);
     $table = $c->filter('attribute[key="post-type"]')->text();
     $look_dir = 'modules/posts/';
     $template_name = $table . '-page.twig';
     if (Theme_Loader::get_instance()->getTwigLoader()->exists($look_dir . $template_name)) {
         $template = $look_dir . $template_name;
     } else {
         $template = $look_dir . 'post-page.twig';
     }
     return Theme_Loader::get_instance()->render_file($template, ['posts' => $this->posts]);
 }
Example #5
0
 public function _404()
 {
     //Load the front end instance loader
     $theme = Theme_Loader::get_instance();
     $theme->set_theme(THEME);
     G2_User::init();
     if (G()->logged_in()) {
         $theme->logged_in();
     }
     $_SESSION['theme'] = $theme;
     if ($theme->page_exists('404')) {
         http_response_code(404);
         $theme->render('404');
     } else {
         parent::_404();
     }
 }
Example #6
0
 function addAdminHtml()
 {
     return Theme_Loader::get_instance()->render_file('modules/navigation/admin.twig', ['navitems' => $this->nav_items]);
 }