Example #1
0
 /**
  * @method POST
  */
 function update($pageUniqId)
 {
     // get an authuser
     $authUser = new AuthUser();
     if (isset($authUser->UserUniqId)) {
         // check if authorized
         parse_str($this->request->data, $request);
         // parse request
         // get request params
         $name = $request['name'];
         $friendlyId = $request['friendlyId'];
         $description = $request['description'];
         $keywords = $request['keywords'];
         $callout = $request['callout'];
         $rss = $request['rss'];
         $layout = $request['layout'];
         $stylesheet = $request['stylesheet'];
         $beginDate = $request['beginDate'];
         $endDate = $request['endDate'];
         $timeZone = $request['timeZone'];
         $location = $request['location'];
         $latitude = $request['latitude'];
         $longitude = $request['longitude'];
         // default is a root element
         $pageTypeUniqId = -1;
         // get a reference to a page
         $page = Page::GetByPageUniqId($pageUniqId);
         // make sure the user is part of the site (or is a superadmin)
         if ($authUser->IsSuperAdmin == false && $authUser->SiteId != $page['SiteId']) {
             return new Tonic\Response(Tonic\Response::UNAUTHORIZED);
         }
         // get a pagetypeuniqid
         if ($page['PageTypeId'] != -1) {
             $pageType = PageType::GetByPageTypeId($page['PageTypeId']);
             $pageTypeUniqId = $pageType['PageTypeUniqId'];
         }
         // get permissions (both publishers and editors can save settings)
         $canEdit = Utilities::CanPerformAction($pageTypeUniqId, $authUser->CanEdit);
         $canPublish = Utilities::CanPerformAction($pageTypeUniqId, $authUser->CanPublish);
         // check permissions
         if ($canEdit == false && $canPublish == false) {
             return new Tonic\Response(Tonic\Response::UNAUTHORIZED);
         }
         // edits settings
         Page::EditSettings($pageUniqId, $name, $friendlyId, $description, $keywords, $callout, $beginDate, $endDate, $timeZone, $location, $latitude, $longitude, $rss, $layout, $stylesheet, $authUser->UserId);
         // add categories to the page (if set)
         if (isset($request['categories'])) {
             // remove categories
             Page::RemoveCategories($page['PageId']);
             $categories = $request['categories'];
             $arr = explode(',', $categories);
             foreach ($arr as $categoryUniqId) {
                 $category = Category::GetByCategoryUniqId($categoryUniqId);
                 if ($category != NULL) {
                     Page::AddCategory($page['PageId'], $category['CategoryId']);
                 }
             }
         }
         return new Tonic\Response(Tonic\Response::OK);
     } else {
         // unauthorized access
         return new Tonic\Response(Tonic\Response::UNAUTHORIZED);
     }
     return new Tonic\Response(Tonic\Response::NOTIMPLEMENTED);
 }