Example #1
0
 public function testConstruction()
 {
     $kirby = $this->kirbyInstance();
     $site = $this->siteInstance($kirby);
     $page = new Page($site, '1-a');
     $this->assertInstanceOf('Kirby', $page->kirby());
     $this->assertEquals($kirby, $page->kirby());
     $this->assertInstanceOf('Site', $page->site());
     $this->assertEquals($site, $page->site());
     $this->assertInstanceOf('Site', $page->parent());
     $this->assertEquals($site, $page->parent());
     $this->assertEquals('1-a', $page->dirname());
     $this->assertEquals(1, $page->depth());
     $this->assertEquals($kirby->roots()->content() . DS . '1-a', $page->root());
     $this->assertEquals('1', $page->num());
     $this->assertEquals('a', $page->uid());
     $this->assertEquals('a', $page->id());
     $this->assertEquals('1-a', $page->diruri());
     $this->assertEquals('/a', $page->url());
     $this->assertTrue($page->isCachable());
     $this->assertEquals('a', $page->slug());
     $this->assertTrue($page->is($page));
     $this->assertTrue($page->equals($page));
     $this->assertFalse($page->isSite());
     $this->assertFalse($page->isActive());
     $this->assertFalse($page->isOpen());
     $this->assertTrue($page->isVisible());
     $this->assertFalse($page->isInvisible());
     $this->assertFalse($page->isHomePage());
     $this->assertFalse($page->isErrorPage());
     $this->assertEquals($page->id(), (string) $page);
 }
Example #2
0
 public function save($slug, Request $request)
 {
     if (Auth::check() && Auth::user()->id == Page::slug($slug)->user->id) {
         $page = Page::slug($slug);
         $page->content = $request->content;
         $page->save();
     }
     return Redirect::intended('/page/' . $slug);
 }
        return Response::create(new Template('404'), 404);
    }
    // search templating vars
    Registry::set('page', $page);
    Registry::set('page_offset', $offset);
    Registry::set('search_term', $term);
    Registry::set('search_results', new Items($posts));
    Registry::set('total_posts', $total);
    return new Template('search');
});
Route::post('search', function () {
    // search and save search ID
    $term = filter_var(Input::get('term', ''), FILTER_SANITIZE_STRING);
    // replace spaces with double-dash to pass through url
    $term = str_replace(' ', '--', $term);
    Session::put(slug($term), $term);
    return Response::redirect('search/' . slug($term));
});
/**
 * View pages
 */
Route::get('(:all)', function ($uri) {
    if (!($page = Page::slug($slug = basename($uri)))) {
        return Response::create(new Template('404'), 404);
    }
    if ($page->redirect) {
        return Response::redirect($page->redirect);
    }
    Registry::set('page', $page);
    return new Template('page');
});
Example #4
0
        default:
            $whatSearch = 'all';
            break;
    }
    return Response::redirect('search/' . $whatSearch . '/' . $term);
});
/**
 * View pages
 */
Route::get('(:all)', function ($uri) {
    $parts = explode('/', $uri);
    $page = false;
    if ($parts > 0) {
        foreach ($parts as $uri) {
            $last = $page;
            if (!($page = Page::slug($uri))) {
                return Response::create(new Template('404'), 404);
            }
            if ($page->parent and !$last or $page->parent and $last->id != $page->parent) {
                return Response::create(new Template('404'), 404);
            }
        }
    }
    if ($page->redirect) {
        return Response::redirect($page->redirect);
    }
    Registry::set('page', $page);
    if ($page->status != 'published') {
        if (!Auth::user()) {
            Registry::set('page', false);
            return Response::create(new Template('404'), 404);
Example #5
0
     $vars['page_fields']['bioimage'] = Extend::field('page', 'bioimage', $biopage->id);
     $vars['page_fields']['biofirstpart'] = Extend::field('page', 'biofirstpart', $biopage->id);
     $vars['page_fields']['biosecondpart'] = Extend::field('page', 'biosecondpart', $biopage->id);
     $vars['page_fields']['biothirdpart'] = Extend::field('page', 'biothirdpart', $biopage->id);
     $vars['statuses'] = array('published' => __('global.published'), 'draft' => __('global.draft'), 'archived' => __('global.archived'));
     $vars['categories'] = Category::dropdown();
     return View::create('accueil/editBio_en', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer');
 });
 Route::post(array('admin/accueil/editBio'), function () {
     $page = Page::slug('biographie');
     Extend::process('page', $page->id);
     Notify::success(__('accueil.updated_bio'));
     return Response::redirect('admin/accueil');
 });
 Route::post(array('admin/accueil/editBio_en'), function () {
     $page = Page::slug('biographie');
     Extend::process('page', $page->id);
     Notify::success(__('accueil.updated_bio'));
     return Response::redirect('admin/accueil');
 });
 /**
  * Person infos
  */
 Route::get('admin/accueil/editInfo/(:any)', function ($key) {
     $vars['messages'] = Notify::read();
     $vars['token'] = Csrf::token();
     $vars['variableInfo'] = Query::table(Base::table('meta'))->where('key', '=', $key)->fetch();
     return View::create('accueil/editInfo', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer');
 });
 Route::post('admin/accueil/editInfo/(:any)', function ($key) {
     $input = Input::get(array('value'));
Example #6
0
 /**
  * Get related posts
  *
  *  <code> 
  *      echo Blog::getRelatedPosts();
  *  </code>
  *
  * @return string
  */
 public static function getRelatedPosts($limit = null)
 {
     $related_posts = array();
     $tags = Blog::getTagsArray(Page::slug());
     foreach ($tags as $tag) {
         $query = '[parent="' . Blog::$parent_page_name . '" and status="published" and contains(tags, "' . $tag . '") and slug!="' . Page::slug() . '"]';
         if ($result = Arr::subvalSort(Pages::$pages->select($query, $limit == null ? 'all' : (int) $limit), 'date', 'DESC')) {
             $related_posts = $result;
         }
     }
     // Display view
     return View::factory('blog/views/frontend/related_posts')->assign('related_posts', $related_posts)->render();
 }