/** * @method POST */ function add() { // get an authuser $authUser = new AuthUser(); if (isset($authUser->UserUniqId)) { // check if authorized parse_str($this->request->data, $request); // parse request $friendlyId = $request['friendlyId']; $typeS = $request['typeS']; $typeP = $request['typeP']; $layout = $request['layout']; $stylesheet = $request['stylesheet']; $isSecure = $request['isSecure']; $siteId = $authUser->SiteId; $createdBy = $authUser->UserId; $lastModifiedBy = $authUser->UserId; $pageType = PageType::Add($friendlyId, $typeS, $typeP, $layout, $stylesheet, $isSecure, $siteId, $createdBy, $lastModifiedBy); // 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); } }
/** * @method POST */ function add() { // get token $token = Utilities::ValidateJWTToken(apache_request_headers()); // 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; $pageType = PageType::Add($friendlyId, $layout, $stylesheet, $isSecure, $siteId, $lastModifiedBy); // 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); } }
/** * @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); } }
/** * @method POST */ function post() { parse_str($this->request->data, $request); // parse request $friendlyId = $request['friendlyId']; $name = $request['name']; $s_passcode = $request['passcode']; $timeZone = $request['timeZone']; $email = ''; $password = ''; $language = 'en-us'; // language for the app $userId = -1; $theme = DEFAULT_THEME; // set theme if (isset($request['theme'])) { $theme = $request['theme']; } // set language if set if (isset($request['language'])) { $language = $request['language']; } // check for email and password if (isset($request['email'])) { $userLanguage = 'en-us'; if (isset($request['userLanguage'])) { $userLanguage = $request['userLanguage']; } $email = $request['email']; $password = $request['password']; } else { // get an authuser $authUser = new AuthUser(); if ($authUser->UserUniqId && $authUser->IsSuperAdmin == true) { // check if authorized $userId = $authUser->UserId; } else { return new Tonic\Response(Tonic\Response::UNAUTHORIZED); } } // defaults $firstName = 'New'; $lastName = 'User'; $domain = APP_URL . '/sites/' . $friendlyId; $domain = str_replace('http://', '', $domain); $logoUrl = 'sample-logo.png'; if ($s_passcode == PASSCODE) { // check for uniqueness of email if ($email != '') { $isUserUnique = User::IsLoginUnique($email); if ($isUserUnique == false) { return new Tonic\Response(Tonic\Response::CONFLICT); } } $isFriendlyIdUnique = Site::IsFriendlyIdUnique($friendlyId); if ($isFriendlyIdUnique == false) { return new Tonic\Response(Tonic\Response::CONFLICT); } // add the site $site = Site::Add($domain, $name, $friendlyId, $logoUrl, $theme, $email, $timeZone, $language); // add the site // add the admin if ($email != '') { $isActive = 1; // admins by default are active $user = User::Add($email, $password, $firstName, $lastName, 'Admin', $userLanguage, $isActive, $site['SiteId']); $userId = $user['UserId']; } // set the stripe plan, customer id, status if (DEFAULT_STRIPE_PLAN != '') { Stripe::setApiKey(STRIPE_API_KEY); $customer = Stripe_Customer::create(array("plan" => DEFAULT_STRIPE_PLAN, "email" => $email)); $customerId = $customer->id; Site::EditCustomer($site['SiteUniqId'], $customerId); } // read the defaults file $default_json_file = '../themes/' . $theme . '/default.json'; // set $siteId $siteId = $site['SiteId']; // check to make sure the defaults.json exists if (file_exists($default_json_file)) { // get json from the file $json_text = file_get_contents($default_json_file); // decode json $json = json_decode($json_text, true); // pagetypes $pagetypes = array(); // menu counts $primaryMenuCount = 0; $footerMenuCount = 0; // walk through defaults array foreach ($json as &$value) { // get values from array $url = $value['url']; $source = $value['source']; $name = $value['name']; $description = $value['description']; $layout = $value['layout']; $stylesheet = $value['stylesheet']; $primaryMenu = $value['primaryMenu']; $footerMenu = $value['footerMenu']; if (strpos($url, '/') !== false) { // the url has a pagetype $arr = explode('/', $url); // get friendly ids from $url $pageTypeFriendlyId = $arr[0]; $pageFriendlyId = $arr[1]; $pageTypeId = -1; $pageType = PageType::GetByFriendlyId($pageTypeFriendlyId, $siteId); // create a new pagetype if ($pageType == NULL) { $pageType = PageType::Add($pageTypeFriendlyId, 'Page', 'Pages', $layout, $stylesheet, 0, $siteId, $userId, $userId); } // get newly minted page type $pageTypeId = $pageType['PageTypeId']; } else { // root, no pagetype $pageFriendlyId = $url; $pageTypeId = -1; } // create a page $page = Page::Add($pageFriendlyId, $name, $description, $layout, $stylesheet, $pageTypeId, $site['SiteId'], $userId); // set the page to active Page::SetIsActive($page['PageUniqId'], 1); // build the content file $filename = '../themes/' . $theme . '/' . $source; $content = ''; // get the content for the page if (file_exists($filename)) { $content = file_get_contents($filename); // fix images $content = str_replace('{{site-dir}}', 'sites/' . $site['FriendlyId'], $content); } // publish the fragment Publish::PublishFragment($site['FriendlyId'], $page['PageUniqId'], 'publish', $content); // build the primary menu if ($primaryMenu == true) { MenuItem::Add($name, '', 'primary', $url, $page['PageId'], $primaryMenuCount, $site['SiteId'], $userId, $userId); $primaryMenuCount++; } // build the footer menu if ($footerMenu == true) { MenuItem::Add($name, '', 'footer', $url, $page['PageId'], $footerMenuCount, $site['SiteId'], $userId, $userId); $footerMenuCount++; } } } else { return new Tonic\Response(Tonic\Response::BADREQUEST); } // publishes a theme for a site Publish::PublishTheme($site, $theme); // publish the site Publish::PublishSite($site['SiteUniqId']); // send welcome email if (SEND_WELCOME_EMAIL == true && $email != '') { $to = $email; $from = REPLY_TO; $fromName = REPLY_TO_NAME; $subject = BRAND . ': Welcome to ' . BRAND; $file = 'emails/new-user.html'; // create strings to replace $loginUrl = APP_URL; $newSiteUrl = APP_URL . '/sites/' . $site['FriendlyId']; $replace = array('{{brand}}' => BRAND, '{{reply-to}}' => REPLY_TO, '{{new-site-url}}' => $newSiteUrl, '{{login-url}}' => $loginUrl); // send email from file Utilities::SendEmailFromFile($to, $from, $fromName, $subject, $replace, $file); } return new Tonic\Response(Tonic\Response::OK); } else { return new Tonic\Response(Tonic\Response::UNAUTHORIZED); } }
public static function PublishDefaultContent($site, $theme, $userId) { // read the defaults file $default_json_file = APP_LOCATION . THEMES_FOLDER . '/' . $theme . '/default.json'; // set $siteId $siteId = $site['SiteId']; // check to make sure the defaults.json exists if (file_exists($default_json_file)) { // get json from the file $json_text = file_get_contents($default_json_file); // decode json $json = json_decode($json_text, true); // pagetypes $pagetypes = array(); // menu counts $primaryMenuCount = 0; $footerMenuCount = 0; // clear default types MenuItem::RemoveForType('primary', $siteId); MenuItem::RemoveForType('footer', $siteId); // walk through defaults array foreach ($json as &$value) { // get values from array $url = $value['url']; $source = $value['source']; $name = $value['name']; $description = $value['description']; $layout = $value['layout']; $stylesheet = $value['stylesheet']; $primaryMenu = $value['primaryMenu']; $footerMenu = $value['footerMenu']; $includeOnly = 0; // set includeOnly (if specified in default) if (isset($value['includeOnly'])) { if ($value['includeOnly'] == true) { $includeOnly = 1; } } // initialize PT $pageType = NULL; if (strpos($url, '/') !== false) { // the url has a pagetype $arr = explode('/', $url); // get friendly ids from $url $pageTypeFriendlyId = $arr[0]; $pageFriendlyId = $arr[1]; $pageTypeId = -1; $pageType = PageType::GetByFriendlyId($pageTypeFriendlyId, $siteId); // create a new pagetype if ($pageType == NULL) { $pageType = PageType::Add($pageTypeFriendlyId, $layout, $stylesheet, 0, $siteId, $userId); } // get newly minted page type $pageTypeId = $pageType['PageTypeId']; } else { // root, no pagetype $pageFriendlyId = $url; $pageTypeId = -1; } // determine if page is unique $isUnique = Page::IsFriendlyIdUnique($pageFriendlyId, $pageTypeId, $site['SiteId']); // initialize page $page = NULL; // if page has not been created, create a page if ($isUnique == true) { // create a page $page = Page::Add($pageFriendlyId, $name, $description, $layout, $stylesheet, $pageTypeId, $site['SiteId'], $userId); } else { // get the page $page = Page::GetByFriendlyId($pageFriendlyId, $pageTypeId, $site['SiteId']); } // quick check if ($page != NULL) { // set the page to active Page::SetIsActive($page['PageId'], 1); // set include only Page::SetIncludeOnly($page['PageId'], $includeOnly); // build the content file $filename = APP_LOCATION . THEMES_FOLDER . '/' . $theme . '/' . $source; $content = ''; // get the content for the page if (file_exists($filename)) { $content = file_get_contents($filename); // fix images $content = str_replace('{{site-dir}}', $site['Domain'], $content); } // edit the page content Page::EditContent($page['PageId'], $content, $userId); // build the primary menu if ($primaryMenu == true) { MenuItem::Add($name, '', 'primary', $url, $page['PageId'], $primaryMenuCount, $site['SiteId'], $userId); $primaryMenuCount++; } // build the footer menu if ($footerMenu == true) { MenuItem::Add($name, '', 'footer', $url, $page['PageId'], $footerMenuCount, $site['SiteId'], $userId); $footerMenuCount++; } } } } }