Example #1
0
 /**
  * @method GET
  */
 function get($type)
 {
     $list = MenuItem::GetMenuItemsForType(SITE_ID, $type);
     $menu = array();
     foreach ($list as $row) {
         $scope = 'external';
         $pageUniqId = '';
         // set the scope of the link
         if ($row['PageId'] != '-1') {
             $scope = 'internal';
             $page = Page::GetByPageId($row['PageId']);
             if ($page != NULL) {
                 $pageUniqId = $page['PageUniqId'];
             }
         }
         // set the item
         $item = array('MenuItemUniqId' => $row['MenuItemUniqId'], 'Name' => $row['Name'], 'Url' => $row['Url'], 'PageUniqId' => $pageUniqId, 'Scope' => $scope);
         // push the item to the array
         array_push($menu, $item);
     }
     // return a json response
     $response = new Tonic\Response(Tonic\Response::OK);
     $response->contentType = 'application/json';
     $response->body = json_encode($menu);
     return $response;
 }
Example #2
0
 /**
  * @method POST
  */
 function form()
 {
     // parse request
     parse_str($this->request->data, $request);
     $siteId = $request['siteId'];
     $pageId = $request['pageId'];
     $site = Site::GetBySiteId($siteId);
     $page = Page::GetByPageId($pageId);
     // create a form (sent to webhooks)
     $wh_form = array('SiteId' => $siteId, 'PageId' => $pageId);
     if ($site != null && $page != null) {
         $subject = BRAND . ': Form Submission [' . $site['Name'] . ': ' . $page['Name'] . ']';
         $content = '<h3>Site Information</h3>' . '<table>' . '<tr>' . '<td style="width: 125px; padding: 5px 25px 5px 0;">Site</td>' . '<td style="padding: 5px 0">' . $site['Name'] . '</td>' . '</tr>' . '<tr>' . '<td style="width: 125px; padding: 5px 25px 5px 0;">Page</td>' . '<td style="padding: 5px 0">' . $page['Name'] . '</td>' . '</tr>' . '</table>' . '<h3>Form Details</h3>' . '<table>';
         foreach ($request as $key => $value) {
             if ($key != 'siteId' && $key != 'pageId') {
                 // clean up title
                 $title = urldecode($key);
                 $title = preg_replace('/(?!^)[A-Z]{2,}(?=[A-Z][a-z])|[A-Z][a-z]|[0-9]{1,}/', ' $0', $key);
                 $title = ucwords($title);
                 // decode value
                 $value = urldecode($value);
                 $content .= '<tr>' . '<td style="width: 125px; padding: 5px 25px 5px 0;">' . $title . '</td>' . '<td style="padding: 5px 0">' . $value . '</td>' . '</tr>';
                 $wh_form[$key] = $value;
             }
         }
         $content .= '</table>';
         // sends the email
         $to = $site['PrimaryEmail'];
         $from = $site['PrimaryEmail'];
         $fromName = $site['Name'];
         // send site email
         Utilities::SendSiteEmail($site, $to, $site['PrimaryEmail'], $site['Name'], $subject, $content);
         // send webhook
         Webhooks::FormSubmit($wh_form);
         // return a successful response (200)
         return new Tonic\Response(Tonic\Response::OK);
     } else {
         // unauthorized access
         return new Tonic\Response(Tonic\Response::UNAUTHORIZED);
     }
 }
Example #3
0
 public static function PublishMenu($siteUniqId, $root = '../')
 {
     $site = Site::GetBySiteUniqId($siteUniqId);
     $list = MenuItem::GetMenuItems($site['SiteId']);
     $menu = array();
     $count = 0;
     foreach ($list as $row) {
         if ($row['PageId'] != -1) {
             $page = Page::GetByPageId($row['PageId']);
             if ($page != null) {
                 $pageUniqId = $page['PageUniqId'];
             } else {
                 $pageUniqId = -1;
             }
         } else {
             $pageUniqId = -1;
         }
         $item = array('MenuItemUniqId' => $row['MenuItemUniqId'], 'Name' => $row['Name'], 'CssClass' => $row['CssClass'], 'Type' => $row['Type'], 'Url' => $row['Url'], 'PageUniqId' => $pageUniqId);
         $menu[$count] = $item;
         $count = $count + 1;
     }
     // encode to json
     $encoded = json_encode($menu);
     $dest = $root . 'sites/' . $site['FriendlyId'] . '/data/';
     Utilities::SaveContent($dest, 'menu.json', $encoded);
 }
Example #4
0
 public static function PublishPage($pageId, $preview = false, $remove_draft = false)
 {
     $page = Page::GetByPageId($pageId);
     if ($page != null) {
         $site = Site::GetBySiteId($page['SiteId']);
         // test for now
         Publish::PublishTemplate($page, $site, $preview, $remove_draft);
         // do not publish a static page for include only pages
         if ($page['IncludeOnly'] == 0) {
             Publish::PublishStaticPage($page, $site, $preview, $remove_draft);
         }
     }
 }
Example #5
0
 public static function PublishPage($pageId, $preview = false, $remove_draft = false)
 {
     $page = Page::GetByPageId($pageId);
     if ($page != null) {
         $site = Site::GetBySiteId($page['SiteId']);
         // test for now
         if ($site['UrlMode'] == 'static') {
             // for sites using static html pages (URL-based routing)
             Publish::PublishDynamicPage($page, $site, $preview, $remove_draft);
             // do not publish a static page for include only pages
             if ($page['IncludeOnly'] == 0) {
                 Publish::PublishStaticPage($page, $site, $preview, $remove_draft);
             }
             // inject controllers
             Publish::InjectControllers($site);
         } else {
             // publishes a dynamic version of the page (for sites using UI-ROUTER (html5, hashbang, etc)
             Publish::PublishDynamicPage($page, $site, $preview, $remove_draft);
             // inject states
             Publish::InjectStates($site);
         }
     }
 }
Example #6
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 #7
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 #8
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);
     }
 }