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 a categoryUniqId (if set)
     $categoryUniqId = '-1';
     if (isset($request['category'])) {
         $categoryUniqId = $request['category'];
     }
     // get language
     $language = 'en';
     if (isset($request['language'])) {
         $language = $request['language'];
     }
     if ($orderBy == 'Created' or $orderBy == 'BeginDate') {
         // need to check these to prevent SQL injections
         $orderBy = $orderBy . ' DESC';
     } else {
         $orderBy = $orderBy . ' ASC';
     }
     if ($pageSize == '') {
         $pageSize = 10;
     }
     $site = Site::GetBySiteUniqId($siteUniqId);
     $pageType = PageType::GetByPageTypeUniqId($pageTypeUniqId);
     // 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::GetPagesByCategory($site['SiteId'], $pageType['PageTypeId'], $pageSize, $page, $orderBy, $category['CategoryId'], true);
         }
     }
     // if the category did not work or is not set, just get a list by the other params
     if ($hasCategory == false) {
         $list = Page::GetPages($site['SiteId'], $pageType['PageTypeId'], $pageSize, $page, $orderBy, true);
     }
     $pages = array();
     foreach ($list as $row) {
         $page = Page::GetByPageId($row['PageId']);
         // get name
         $name = $row['FirstName'] . ' ' . $row['LastName'];
         // get photo
         $hasPhoto = false;
         $photo = '';
         if ($row['PhotoUrl'] != null && $row['PhotoUrl'] != '') {
             $hasPhoto = true;
             $photo = 'files/' . $row['PhotoUrl'];
         }
         // get image url
         $thumbUrl = '';
         $imageUrl = '';
         $mImageUrl = '';
         $url = 'http://' . $site['Domain'] . '/' . strtolower($pageType['FriendlyId']) . '/' . $page['FriendlyId'];
         $local = new DateTimeZone($site['TimeZone']);
         // create a readable date
         $date = DateTime::createFromFormat('Y-m-d H:i:s', $page['LastModifiedDate']);
         $date->setTimezone($local);
         $readable = $date->format('D, M d y h:i a');
         // create a readable event date
         $readableEventBeginDate = $readable;
         $eventBeginDate = DateTime::createFromFormat('Y-m-d H:i:s', $page['BeginDate']);
         if ($eventBeginDate != null) {
             $eventBeginDate->setTimezone($local);
             $readableEventBeginDate = $eventBeginDate->format('D, M d y h:i a');
         }
         $item = array('PageUniqId' => $page['PageUniqId'], 'Name' => $page['Name'], 'Description' => $page['Description'], 'Callout' => $page['Callout'], 'Url' => $url, 'Image' => $imageUrl, 'Thumb' => $thumbUrl, 'LastModified' => $page['LastModifiedDate'], 'LastModifiedReadable' => $readable, 'BeginDateReadable' => $readableEventBeginDate, 'Author' => $name, 'HasPhoto' => $hasPhoto, 'Photo' => $photo);
         $fragment = '../fragments/render/' . $page['PageUniqId'] . '.php';
         if (file_exists($fragment)) {
             // set language to the domain for the site
             $domain = '../locale';
             Utilities::SetLanguage($language, $domain);
             ob_start();
             // start output buffer
             textdomain($domain);
             include $fragment;
             $content = ob_get_contents();
             // get contents of buffer
             ob_end_clean();
             //$content = file_get_contents($fragment); #old
         } else {
             $content = 'Not found';
         }
         // fix nested, relative URLs if displayed in the root
         if ($prefix == '') {
             $content = str_replace('src="../', 'src="', $content);
             $content = str_replace('href="../', 'href="', $content);
         }
         // update images with sites/[name] to a relative URL
         $content = str_replace('src="sites/' . $site['FriendlyId'] . '/', 'src="' . $prefix, $content);
         $item['Content'] = $content;
         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);
     }
 }