/** * @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; }