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