protected function TemplateDetails($className) { $obj = TemplateOverviewDescription::get()->filter(array("ClassNameLink" => $className))->First(); if (!$obj) { $obj = new TemplateOverviewDescription(); $obj->ClassNameLink = $className; $obj->ParentID = $this->ID; $obj->write(); } DB::query("UPDATE TemplateOverviewDescription SET ParentID = " . $this->ID . ";"); return $obj; }
function requireDefaultRecords() { parent::requireDefaultRecords(); $data = ClassInfo::subclassesFor("SiteTree"); $templateOverviewPage = TemplateOverviewPage::get()->First(); $fileList = null; if ($this->Config()->get("image_source_folder")) { $fileList = CMSHelp::get_list_of_files($this->Config()->get("image_source_folder")); if (!is_array($fileList)) { $fileList = null; } elseif (!count($fileList)) { $fileList = null; } } if ($fileList) { $destinationDir = Director::baseFolder() . "/assets/" . $this->Config()->get("image_folder_name") . "/"; $destinationFolder = Folder::find_or_make($this->Config()->get("image_folder_name")); } if ($data && $templateOverviewPage) { foreach ($data as $className) { $object = TemplateOverviewDescription::get()->filter(array("ClassNameLink" => $className))->First(); if (!$object) { $object = new TemplateOverviewDescription(); $object->ClassNameLink = $className; $object->ParentID = $templateOverviewPage->ID; $object->write(); DB::alteration_message("adding template description for {$className}", "created"); } else { $otherObjects = TemplateOverviewDescription::get()->filter(array("ClassNameLink" => $className))->exclude(array("ID" => $object->ID)); foreach ($otherObjects as $otherObject) { DB::alteration_message("Deleting superfluous TemplateOverviewDescription with Class Name Link: {$className}", "deleted"); $otherObject->delete(); } } if ($fileList) { $i = 0; foreach ($fileList as $fileArray) { $explodeByDot = explode(".", $fileArray["FileName"]); if (is_array($explodeByDot) && count($explodeByDot)) { $base = $explodeByDot[0]; $explodeByUnderscore = explode("_", $base); if (is_array($explodeByUnderscore) && count($explodeByUnderscore)) { $base = $explodeByUnderscore[0]; $classNameOptionArray = array($className); for ($j = 0; $j < 10; $j++) { $classNameOptionArray[] = $className . $j; } foreach ($classNameOptionArray as $potentialBase) { if ($base == $potentialBase) { $i++; $filename = "" . $this->Config()->get("image_folder_name") . "/" . $fileArray["FileName"]; if (!file_exists($destinationDir . $fileArray["FileName"])) { copy($fileArray["FullLocation"], $destinationDir . $fileArray["FileName"]); } $image = $Image::get()->filter(array("ParentID" => $destinationFolder - ID, "Name" => $fileArray["FileName"]))->First(); if (!$image) { $image = new Image(); $image->ParentID = $destinationFolder->ID; $image->Filename = $filename; $image->Name = $fileArray["FileName"]; $image->Title = $fileArray["Title"]; $image->write(); } $fieldName = "Image{$i}" . "ID"; if ($object->{$fieldName} != $image->ID) { $object->{$fieldName} = $image->ID; $object->write(); DB::alteration_message("adding image to {$className}: " . $image->Title . " (" . $image->Filename . ") using {$fieldName} field.", "created"); } } } } } } } else { DB::alteration_message("no design images found for {$className}", "deleted"); } } } $helpDirectory = Director::baseFolder() . "/" . Config::inst()->get("CMSHelp", "help_file_directory_name") . "/"; if (!file_exists($helpDirectory)) { mkdir($helpDirectory); } $this->createManifestExcludeFile($helpDirectory); $devDirectory = Director::baseFolder() . "/" . Config::inst()->get("CMSHelp", "dev_file_directory_name") . "/"; if (!file_exists($devDirectory)) { mkdir($devDirectory); } $this->createManifestExcludeFile($devDirectory); $this->createHTACCESSDenyAll($devDirectory); }