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();
 }
示例#2
0
 /**
  * @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;
 }
示例#7
0
 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;
 }