function SetCaseStudy() { if (isset($_GET['ID']) && is_numeric($_GET['ID'])) { $UserStory = $_GET['ID']; } else { die; } $setCaseStudy = $_GET['Set'] == 1 ? 1 : 0; $story = SiteTree::get_by_id("UserStory", $UserStory); $story->ShowCaseStudy = $setCaseStudy; $story->write(); $story->publish("Live", "Stage"); $this->owner->setMessage('Success', 'Case Study updated for <b>' . $story->Title . '</b>'); Controller::curr()->redirectBack(); }
/** * @return FieldList */ public function getCMSFields() { if (!$this->exists()) { // The new module state Requirements::css(MODULATOR_PATH . '/css/PageModule.css'); Requirements::javascript(MODULATOR_PATH . '/javascript/PageModule.js'); $allowedModules = array(); // Determine the type of the parent page $currentPageID = Session::get('CMSMain.currentPage'); if ($currentPageID) { $currentPage = SiteTree::get_by_id('SiteTree', $currentPageID); if ($currentPage) { $currentPageClass = $currentPage->ClassName; // Get the list of allowed modules for this page type if (class_exists($currentPageClass) && method_exists($currentPageClass, 'getAllowedModules')) { $allowedModules = $currentPageClass::getAllowedModules(); } } } $classList = array(); foreach ($allowedModules as $class) { $instance = new $class(); $classList[$class] = '<img src="' . $instance::$icon . '"><strong>' . $class::$label . '</strong><p>' . $class::$description . '</p>'; } $fields = new FieldList(); if (!count($allowedModules)) { $typeField = new LiteralField('Type', '<span class="message required">There are no module types defined, please create some.</span>'); $fields->push($typeField); } else { $labelField = new TextField('Title', 'Label'); $labelField->setDescription('A reference name for this block, not displayed on the website'); $fields->push($labelField); $typeField = new OptionSetField('NewClassName', 'Type', $classList); $typeField->setDescription('The type of module determines what content and functionality it will provide'); $fields->push($typeField); } $this->extend('updateCMSFields', $fields); } else { // Existing module state $fields = parent::getCMSFields(); // Don't expose Order to the CMS $fields->removeFieldFromTab('Root.Main', 'Order'); $fields->removeFieldFromTab('Root.Main', 'PageID'); // Helps us keep track of preview focus $fields->addFieldToTab('Root.Main', new HiddenField('ModulatorID', 'ModulatorID', $this->ID)); } return $fields; }
function SetAdminSS() { if (isset($_GET['ID']) && is_numeric($_GET['ID'])) { $UserStory = $_GET['ID']; } else { die; } $showinAdmin = isset($_GET['Set']) && intval($_GET['Set']) === 1 ? 1 : 0; $story = SiteTree::get_by_id("UserStory", $UserStory); $parent = UserStoryHolder::get()->first(); if (!$parent) { $this->owner->setMessage('Error', 'could not publish user story bc there is not any available parent page(UserStoryHolder).'); Controller::curr()->redirectBack(); } $story->ShowInAdmin = $showinAdmin; $story->setParent($parent); // Should set the ID once the Holder is created... $story->write(); $story->publish("Live", "Stage"); $this->owner->setMessage('Success', '<b>' . $story->Title . '</b> updated.'); $this->owner->redirectBack(); }
public function MetaTags(&$tags) { $page = $this->getOwner(); $config = SiteConfig::current_site_config(); while ($page && !$page->has_extension('GeoTagsExtension')) { if ($parent = $page->ParentID) { $page = SiteTree::get_by_id('SiteTree', $parent); } else { $page = false; } } if ($page) { $data = $page; } else { if ($config->has_extension('GeoTagsExtension')) { $data = $config; } } if ($data) { $region = ''; if (strlen($data->GeoCountry)) { $region = $data->GeoCountry; if (strlen($data->GeoRegion)) { $region .= '-' . $data->GeoRegion; } } if ($region) { $tags .= '<meta name="geo.region" content="' . $region . '" />'; } if (strlen($data->GeoPlacename)) { $tags .= '<meta name="geo.placename" content="' . $data->GeoPlacename . '" />'; } if (strlen($data->GeoLatitude) && strlen($data->GeoLongitude)) { $tags .= '<meta name="geo.position" content="' . $data->GeoLatitude . ';' . $data->GeoLongitude . '" />'; $tags .= '<meta name="ICBM" content="' . $data->GeoLatitude . ', ' . $data->GeoLongitude . '" />'; } } return $tags; }
/** * Return the appropriate staged JSON/XML output for the corresponding page. * * @parameter <{PAGE_ID}> integer * @parameter <{OUTPUT_TYPE}> string * @URLparameter s <{STAGE_OR_LIVE}> string * @return JSON/XML */ public function retrieveStaged($page, $output) { // Bypass any staging preview restrictions where required. $request = Controller::curr()->getRequest(); $stage = $request->getVar('s') ? $request->getVar('s') : $request->getVar('stage'); $output = strtoupper($output); if (($stage === 'Stage' || $stage === 'Live') && ($output === 'JSON' || $output === 'XML')) { // Set the appropriate staging mode. Versioned::reading_stage($stage); // Compose the appropriate JSON/XML. $function = "retrieve{$output}"; $temporary = array(0 => SiteTree::get_by_id('SiteTree', $page)->toMap()); return $this->{$function}($temporary, false, true); } // The current request was not valid. return array(); }
/** * Retrieve the page associated with this link mapping redirection. * * @return site tree */ public function getRedirectPage() { return ClassInfo::exists('SiteTree') && $this->RedirectPageID ? SiteTree::get_by_id('SiteTree', $this->RedirectPageID) : null; }
public function newpageselected(SS_HTTPRequest $request) { $sitetree_id = $request->param('ID'); $page = SiteTree::get_by_id($sitetree_id); $result = array(); if ($page) { $result['Title'] = $page->Title; } return json_encode($result); }
static function import($page) { include_once '../googledocspage/libs/simplehtmldom/simple_html_dom.php'; //if import url is set, use that, else fall back on google doc id if (strlen($page->ImportURL) > 1) { $url = $page->ImportURL; } else { $url = GoogleDocsPage::$gdoc_pub_urlbase . $page->GoogleDocID; } //echo $url; $html = file_get_html($url); //$contents = $html->find('div[id="contents"]', 0)->innertext; $contents = $html->find('div[id="contents"]', 0); // remove h1 //var_dump($contents->find('h1')); if (isset($contents)) { foreach ($contents->find('h1') as $e) { $e->outertext = ''; } } else { return "Error retrieving document. <br /> Try visiting this URL: <br /><br /><a href=\"{$url}\">{$url}</a>"; } // save style $style = ""; foreach ($contents->find('style') as $e) { $style = $e->innertext; } $e->outertext = ''; //changing img path $i = 1; foreach ($html->find('img') as $e) { if ($i < 99) { //echo $e->src . "<br />"; //$e->outertext = ''; $e->src = "http://docs.google.com/document/" . $e->src; //var_dump($page->PageID); $folderPath = 'import/' . $page->ID; //var_dump($folderPath); $folder = Folder::findOrMake($folderPath); //$tempFileName = $i . ".png"; $tempFileName = $i; $filepath = "assets/" . $folderPath . "/" . $tempFileName; $src = str_replace("amp;", "", $e->src); $img = file_get_contents($src); //$size = getimagesize($img); //var_dump($img); $file = File::find($filepath); if (!$file) { $file = new File(); $file->Filename = $filepath; } file_put_contents(Director::baseFolder() . "/" . $filepath, $img); //$file->Name = $a["FileName"]; //$file->setName($tempFileName); $file->write(); $file->setName($i); $file->setParentID($folder->ID); //$file->setName($filepath); $file->ClassName = "Image"; $file->write(); $e->src = "/" . $filepath; } $i = $i + 1; } //echo '<style>.c2 { font-weight:bold;}</style>'; //echo $contents->innertext; //echo "importing"; $import = new GoogleDocsPage_Import(); //$import->Imported = date("Y-m-d H:i:s"); $import->Content = $contents->innertext; $import->Css = $style; $import->CssParsed = GoogleDocsPage_Import::parsecss($style); $import->PageID = $page->ID; $import->write(); //this is not neccessary, as it is done already be referencing the PageID //$pageimports = $page->Imports(); //$pageimports->add($import); //writing content to the page //making sure the "real" page object is being used $page = SiteTree::get_by_id("Page", $page->ID); $page->Content = $import->Content; $page->writeToStage('Stage'); $page->Publish('Stage', 'Live'); $page->Status = "Published"; $page->flushCache(); return "import successful"; //return $import; }