getAllForDateRangeCount() public static method

Get the number of items in a date range
public static getAllForDateRangeCount ( integer $start, integer $end ) : integer
$start integer The start date as a UNIX-timestamp.
$end integer The end date as a UNIX-timestamp.
return integer
Example #1
0
 /**
  * Load the data, don't forget to validate the incoming data
  */
 private function getData()
 {
     // get parameters
     $this->year = $this->URL->getParameter(1);
     $this->month = $this->URL->getParameter(2);
     // redirect /2010/6 to /2010/06 to avoid duplicate content
     if ($this->month !== null && mb_strlen($this->month) != 2) {
         $queryString = isset($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : '';
         $this->redirect(FrontendNavigation::getURLForBlock('Blog', 'Archive') . '/' . $this->year . '/' . str_pad($this->month, 2, '0', STR_PAD_LEFT) . $queryString, 301);
     }
     if (mb_strlen($this->year) != 4) {
         $this->redirect(FrontendNavigation::getURL(404));
     }
     // redefine
     $this->year = (int) $this->year;
     if ($this->month !== null) {
         $this->month = (int) $this->month;
     }
     // validate parameters
     if ($this->year == 0 || $this->month === 0) {
         $this->redirect(FrontendNavigation::getURL(404));
     }
     // requested page
     $requestedPage = $this->URL->getParameter('page', 'int', 1);
     // rebuild url
     $url = $this->year;
     // build timestamp
     if ($this->month !== null) {
         $this->startDate = gmmktime(00, 00, 00, $this->month, 01, $this->year);
         $this->endDate = gmmktime(23, 59, 59, $this->month, gmdate('t', $this->startDate), $this->year);
         $url .= '/' . str_pad($this->month, 2, '0', STR_PAD_LEFT);
     } else {
         // year
         $this->startDate = gmmktime(00, 00, 00, 01, 01, $this->year);
         $this->endDate = gmmktime(23, 59, 59, 12, 31, $this->year);
     }
     // set URL and limit
     $this->pagination['url'] = FrontendNavigation::getURLForBlock('Blog', 'Archive') . '/' . $url;
     $this->pagination['limit'] = $this->get('fork.settings')->get('Blog', 'overview_num_items', 10);
     // populate count fields in pagination
     $this->pagination['num_items'] = FrontendBlogModel::getAllForDateRangeCount($this->startDate, $this->endDate);
     $this->pagination['num_pages'] = (int) ceil($this->pagination['num_items'] / $this->pagination['limit']);
     // redirect if the request page doesn't exists
     if ($requestedPage > $this->pagination['num_pages'] || $requestedPage < 1) {
         $this->redirect(FrontendNavigation::getURL(404));
     }
     // populate calculated fields in pagination
     $this->pagination['requested_page'] = $requestedPage;
     $this->pagination['offset'] = $this->pagination['requested_page'] * $this->pagination['limit'] - $this->pagination['limit'];
     // get articles
     $this->items = FrontendBlogModel::getAllForDateRange($this->startDate, $this->endDate, $this->pagination['limit'], $this->pagination['offset']);
 }