forked from Public/pics
Initial commit.
This is to be the new HashRU website based on the Aaronweb.net/Kabuki CMS.
This commit is contained in:
58
controllers/ViewTimeline.php
Normal file
58
controllers/ViewTimeline.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
/*****************************************************************************
|
||||
* ViewTimeline.php
|
||||
* Contains the photo timeline index controller
|
||||
*
|
||||
* Kabuki CMS (C) 2013-2015, Aaron van Geffen
|
||||
*****************************************************************************/
|
||||
|
||||
class ViewTimeline extends HTMLController
|
||||
{
|
||||
protected $iterator;
|
||||
protected $total_count;
|
||||
protected $base_url;
|
||||
|
||||
const PER_PAGE = 24;
|
||||
|
||||
public function __construct($title = 'Photos - ' . SITE_TITLE)
|
||||
{
|
||||
// What page are we at?
|
||||
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
|
||||
|
||||
parent::__construct('Timeline - Page ' . $page . ' - ' . SITE_TITLE);
|
||||
|
||||
// Load a photo mosaic.
|
||||
list($this->iterator, $total_count) = AssetIterator::getByOptions([
|
||||
'order' => 'date_captured',
|
||||
'direction' => 'desc',
|
||||
'limit' => self::PER_PAGE,
|
||||
'page' => $page,
|
||||
], true);
|
||||
|
||||
$mosaic = $total_count > 0 ? new PhotoMosaic($this->iterator) : null;
|
||||
if (isset($mosaic))
|
||||
$this->page->adopt(new PhotosIndex($mosaic, Registry::get('user')->isAdmin()));
|
||||
|
||||
// Make a page index as needed, while we're at it.
|
||||
if ($total_count > self::PER_PAGE)
|
||||
{
|
||||
$index = new PageIndex([
|
||||
'recordCount' => $total_count,
|
||||
'items_per_page' => self::PER_PAGE,
|
||||
'start' => (isset($_GET['page']) ? $_GET['page'] - 1 : 0) * self::PER_PAGE,
|
||||
'base_url' => BASEURL . '/timeline/',
|
||||
'page_slug' => 'page/%PAGE%/',
|
||||
]);
|
||||
$this->page->adopt(new Pagination($index));
|
||||
}
|
||||
|
||||
// Set the canonical url.
|
||||
$this->page->setCanonicalUrl(BASEURL . '/timeline/');
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
if (isset($this->iterator))
|
||||
$this->iterator->clean();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user