Example #1
0
 /**
  * @method POST
  */
 function get()
 {
     parse_str($this->request->data, $request);
     // parse request
     $siteUniqId = SITE_UNIQ_ID;
     $pageTypeUniqId = $request['pageTypeUniqId'];
     $pageSize = $request['pageSize'];
     $orderBy = $request['orderBy'];
     $page = $request['page'];
     $prefix = $request['prefix'];
     // get begin and end
     $beginDate = $request['beginDate'];
     $endDate = $request['endDate'];
     // get a categoryUniqId (if set)
     $categoryUniqId = '-1';
     if (isset($request['category'])) {
         $categoryUniqId = $request['category'];
     }
     // get language
     $language = 'en';
     if (isset($request['language'])) {
         $language = $request['language'];
     }
     // set order
     $orderBy = 'BeginDate ASC';
     if ($pageSize == '') {
         $pageSize = 10;
     }
     $site = Site::GetBySiteUniqId($siteUniqId);
     $pageType = PageType::GetByPageTypeUniqId($pageTypeUniqId);
     // set language to the domain for the site
     $domain = '../locale';
     Utilities::SetLanguage($language, $domain);
     // Get all pages
     $hasCategory = false;
     // if category is set, try to get pages by Category
     if ($categoryUniqId != '-1') {
         $category = Category::GetByCategoryUniqId($categoryUniqId);
         if (isset($category['CategoryId'])) {
             $hasCategory = true;
             $list = Page::GetPagesByCategoryForDates($site['SiteId'], $pageType['PageTypeId'], $pageSize, $page, $orderBy, $category['CategoryId'], true, $beginDate, $endDate);
         }
     }
     // if the category did not work or is not set, just get a list by the other params
     if ($hasCategory == false) {
         $list = Page::GetPagesForDates($site['SiteId'], $pageType['PageTypeId'], $pageSize, $page, $orderBy, true, $beginDate, $endDate);
     }
     $pages = array();
     foreach ($list as $row) {
         $page = Page::GetByPageId($row['PageId']);
         $name = $row['FirstName'] . ' ' . $row['LastName'];
         // get image url
         $thumbUrl = '';
         $imageUrl = '';
         $hasImage = false;
         if ($page['Image'] != '') {
             $hasImage = true;
             $thumbUrl = 'files/t-' . $page['Image'];
             $imageUrl = 'files/' . substr($page['Image'], 2);
         }
         // check for callout
         $hasCallout = false;
         if ($page['Callout'] != '') {
             $hasCallout = true;
         }
         // get photo
         $hasPhoto = false;
         $photo = '';
         if ($row['PhotoUrl'] != null && $row['PhotoUrl'] != '') {
             $hasPhoto = true;
             $photo = 'files/' . $row['PhotoUrl'];
         }
         $url = strtolower($pageType['FriendlyId']) . '/' . $page['FriendlyId'];
         // create a readable begin date
         $begin = DateTime::createFromFormat('Y-m-d H:i:s', $page['BeginDate']);
         $local = new DateTimeZone($site['TimeZone']);
         $begin->setTimezone($local);
         $beginReadable = $begin->format('D, M d y h:i a');
         // create a readable end date
         $end = DateTime::createFromFormat('Y-m-d H:i:s', $page['EndDate']);
         $local = new DateTimeZone($site['TimeZone']);
         $end->setTimezone($local);
         $endReadable = $end->format('D, M d y h:i a');
         $item = array('PageUniqId' => $page['PageUniqId'], 'Name' => _($page['Name']), 'Description' => _($page['Description']), 'Callout' => _($page['Callout']), 'HasCallout' => $hasCallout, 'Url' => $url, 'Image' => $imageUrl, 'Thumb' => $thumbUrl, 'HasImage' => $hasImage, 'BeginDate' => $begin->format('Y-m-d H:i:s'), 'BeginDateReadable' => $beginReadable, 'EndDate' => $end->format('Y-m-d H:i:s'), 'EndDateReadable' => $endReadable, 'LastModified' => $page['LastModifiedDate'], 'Author' => $name, 'HasPhoto' => $hasPhoto, 'Photo' => $photo);
         array_push($pages, $item);
     }
     // return a json response
     $response = new Tonic\Response(Tonic\Response::OK);
     $response->contentType = 'applicaton/json';
     $response->body = json_encode($pages);
     return $response;
 }