Example #1
0
 /**
  * @method POST
  */
 function add()
 {
     // get token
     $token = Utilities::ValidateJWTToken();
     // check if token is not null
     if ($token != NULL) {
         parse_str($this->request->data, $request);
         // parse request
         $friendlyId = $request['friendlyId'];
         $layout = $request['layout'];
         $stylesheet = $request['stylesheet'];
         $isSecure = $request['isSecure'];
         $siteId = $token->SiteId;
         $lastModifiedBy = $token->UserId;
         // add pagetype
         $pageType = PageType::Add($friendlyId, $layout, $stylesheet, $isSecure, $siteId, $lastModifiedBy);
         // duplicate pages in pagetype (if set)
         if (isset($request['pageTypeId'])) {
             $pageTypeId = $request['pageTypeId'];
             // set order
             $pageSize = 100;
             $page = 0;
             $orderBy = 'Pages.PageId ASC';
             // get pages
             $list = Page::GetPages($siteId, $pageTypeId, $pageSize, $page, $orderBy);
             // walk through pages
             foreach ($list as $row) {
                 // duplicate page
                 $page = Page::Add($row['FriendlyId'], $row['Name'], $row['Description'], $row['Layout'], $row['Stylesheet'], $pageType['PageTypeId'], $token->SiteId, $token->UserId);
                 // set content for page
                 Page::EditContent($page['PageId'], $row['Content'], $token->UserId);
             }
         }
         // return a json response
         $response = new Tonic\Response(Tonic\Response::OK);
         $response->contentType = 'application/json';
         $response->body = json_encode($pageType);
         return $response;
     } else {
         // unauthorized access
         return new Tonic\Response(Tonic\Response::UNAUTHORIZED);
     }
 }
Example #2
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 #3
0
 /**
  * @method POST
  */
 function post()
 {
     parse_str($this->request->data, $request);
     // parse request
     $siteId = $request['siteId'];
     $friendlyId = $request['type'];
     $pageSize = $request['pagesize'];
     $orderBy = $request['orderby'];
     $current = $request['current'];
     // get language
     $language = 'en';
     // set order
     if ($orderBy == 'Created' || $orderBy == 'BeginDate') {
         $orderBy = 'Pages.' . $orderBy . ' DESC';
     } else {
         $orderBy = 'Pages.' . $orderBy . ' ASC';
     }
     if ($pageSize == '') {
         $pageSize = 10;
     }
     $site = Site::GetBySiteId($siteId);
     $pageType = PageType::GetByFriendlyId($friendlyId, $siteId);
     $list = Page::GetPages($site['SiteId'], $pageType['PageTypeId'], $pageSize, $current, $orderBy, true);
     $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/thumbs/' . $page['Image'];
             $imageUrl = 'files/' . substr($page['Image'], 2);
         }
         // check for callout
         $hasCallout = false;
         if ($page['Callout'] != '') {
             $hasCallout = true;
         }
         // build URL
         $url = strtolower($pageType['FriendlyId']) . '/' . $page['FriendlyId'];
         $beginDate = null;
         $beginReadable = '';
         if ($page['BeginDate'] != null) {
             // 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');
             $beginDate = $begin->format('Y-m-d H:i:s');
         }
         $endDate = null;
         $endReadable = '';
         if ($page['EndDate'] != null) {
             // 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');
             $endDate = $end->format('Y-m-d H:i:s');
         }
         $item = array('PageId' => $page['PageId'], 'Name' => $page['Name'], 'Description' => $page['Description'], 'Callout' => $page['Callout'], 'Location' => $page['Location'], 'LatLong' => $page['LatLong'], 'HasCallout' => $hasCallout, 'Url' => $url, 'Image' => $imageUrl, 'Thumb' => $thumbUrl, 'HasImage' => $hasImage, 'BeginDate' => $beginDate, 'BeginDateReadable' => $beginReadable, 'EndDate' => $endDate, 'EndDateReadable' => $endReadable, 'LastModified' => $page['LastModifiedDate'], 'Author' => $name, 'FirstName' => $row['FirstName'], 'LastName' => $row['LastName'], 'Photo' => $row['PhotoUrl'], 'Tags' => $page['Tags']);
         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;
     return new Tonic\Response(Tonic\Response::CREATED);
 }
Example #4
0
 /**
  * @method GET
  */
 function get($friendlyId)
 {
     // get an authuser
     $authUser = new AuthUser();
     if (isset($authUser->UserUniqId)) {
         // check if authorized
         $siteId = $authUser->SiteId;
         $pageSize = 100;
         $orderBy = 'Created DESC';
         $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
         $list = Page::GetPages($siteId, $pageTypeId, $pageSize, $page, $orderBy);
         $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'];
                 }
             }
             // set thumb
             $page['Thumb'] = $thumbUrl;
             $url = $page['FriendlyId'];
             if ($page['PageTypeId'] != -1) {
                 $pageType = PageType::GetByPageTypeId($page['PageTypeId']);
                 $url = strtolower($pageType['TypeS']) . '/' . $page['FriendlyId'];
             }
             // set url
             $page['Url'] = $url;
             // permissions are not applicable to this API call
             $page['CanEdit'] = '';
             $page['CanPublish'] = '';
             $page['CanRemove'] = '';
             $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);
     }
 }