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;
 }
Example #2
0
 /**
  * @method POST
  */
 function post()
 {
     // get an authuser
     $authUser = new AuthUser();
     if (isset($authUser->UserUniqId)) {
         // check if authorized
         parse_str($this->request->data, $request);
         // parse request
         $friendlyId = $request['friendlyId'];
         // get page type
         $sort = $request['sort'];
         $categoryId = -1;
         if (isset($request['categoryUniqId'])) {
             $categoryUniqId = $request['categoryUniqId'];
             $category = Category::GetByCategoryUniqId($request['categoryUniqId']);
             $categoryId = $category['CategoryId'];
         }
         // default
         $orderBy = 'LastModifiedDate DESC';
         // don't pass directly to DB
         if ($sort == 'date desc') {
             $orderBy = 'LastModifiedDate DESC';
         }
         if ($sort == 'date asc') {
             $orderBy = 'LastModified ASC';
         }
         if ($sort == 'name desc') {
             $orderBy = 'Name DESC';
         }
         if ($sort == 'name asc') {
             $orderBy = 'Name ASC';
         }
         $siteId = $authUser->SiteId;
         $pageSize = 100;
         $page = 0;
         $pageTypeId = -1;
         $dir = '/';
         if ($friendlyId != 'root') {
             // get pagetype
             $pageType = PageType::GetByFriendlyId($friendlyId, $siteId);
             $pageTypeId = $pageType['PageTypeId'];
             $dir = strtolower($pageType['TypeS']) . '/';
         }
         // get site url
         $site = Site::GetBySiteId($authUser->SiteId);
         $dir = 'sites/' . $site['FriendlyId'] . '/files/';
         // get pages
         if ($categoryId == -1) {
             $list = Page::GetPages($siteId, $pageTypeId, $pageSize, $page, $orderBy);
         } else {
             $list = Page::GetPagesByCategory($siteId, $pageTypeId, $pageSize, $page, $orderBy, $categoryId);
         }
         $pages = array();
         foreach ($list as $row) {
             $page = Page::GetByPageId($row['PageId']);
             $fullName = $row['FirstName'] . ' ' . $row['LastName'];
             $page['LastModifiedFullName'] = $fullName;
             $thumbUrl = '';
             if ($page['Image'] != '') {
                 if (strpos($page['Image'], 't-') !== false) {
                     $thumbUrl = $dir . $page['Image'];
                 } else {
                     $thumbUrl = $dir . 't-' . $page['Image'];
                 }
             }
             $page['Thumb'] = $thumbUrl;
             $url = $page['FriendlyId'];
             // default permissions
             $canEdit = false;
             $canPublish = false;
             $canRemove = false;
             if ($page['PageTypeId'] != -1) {
                 $pageType = PageType::GetByPageTypeId($page['PageTypeId']);
                 $url = strtolower($pageType['TypeS']) . '/' . $page['FriendlyId'];
                 // set edit permissions
                 if ($authUser->CanEdit == 'All' || strpos($authUser->CanEdit, $pageType['PageTypeUniqId']) !== FALSE) {
                     $canEdit = true;
                 }
                 // set publish permissions
                 if ($authUser->CanPublish == 'All' || strpos($authUser->CanPublish, $pageType['PageTypeUniqId']) !== FALSE) {
                     $canPublish = true;
                 }
                 // set remove permissions
                 if ($authUser->CanRemove == 'All' || strpos($authUser->CanRemove, $pageType['PageTypeUniqId']) !== FALSE) {
                     $canRemove = true;
                 }
             } else {
                 // set edit permissions
                 if ($authUser->CanEdit == 'All' || strpos($authUser->CanEdit, 'root') !== FALSE) {
                     $canEdit = true;
                 }
                 // set publish permissions
                 if ($authUser->CanPublish == 'All' || strpos($authUser->CanPublish, 'root') !== FALSE) {
                     $canPublish = true;
                 }
                 // set remove permissions
                 if ($authUser->CanRemove == 'All' || strpos($authUser->CanRemove, 'root') !== FALSE) {
                     $canRemove = true;
                 }
             }
             $page['CanEdit'] = $canEdit;
             $page['CanPublish'] = $canPublish;
             $page['CanRemove'] = $canRemove;
             $page['Url'] = $url;
             // determine if the page has a draft
             $draft = '../sites/' . $site['FriendlyId'] . '/fragments/draft/' . $page['PageUniqId'] . '.html';
             $hasDraft = false;
             if (file_exists($draft)) {
                 $hasDraft = true;
             }
             $page['HasDraft'] = $hasDraft;
             $pages[$row['PageUniqId']] = $page;
         }
         // return a json response
         $response = new Tonic\Response(Tonic\Response::OK);
         $response->contentType = 'application/json';
         $response->body = json_encode($pages);
         return $response;
     } else {
         // unauthorized access
         return new Tonic\Response(Tonic\Response::UNAUTHORIZED);
     }
 }