public function requireDefaultRecords() { parent::requireDefaultRecords(); // Make sure the syncrotron identifier is initially set. $configuration = SiteConfig::current_site_config(); $configuration->getSyncroIdentifier(); }
public function requireDefaultRecords() { parent::requireDefaultRecords(); if (!ProductWeight::get()->exists()) { $weight = new ProductWeight(); $weight->Title = "Kilograms"; $weight->Unit = "kg"; $weight->write(); $weight->flushCache(); DB::alteration_message('Kilograms weight created', 'created'); $weight = new ProductWeight(); $weight->Title = "Grams"; $weight->Unit = "g"; $weight->write(); $weight->flushCache(); DB::alteration_message('Grams weight created', 'created'); $weight = new ProductWeight(); $weight->Title = "Pound"; $weight->Unit = "lb"; $weight->write(); $weight->flushCache(); DB::alteration_message('Pounds weight created', 'created'); $weight = new ProductWeight(); $weight->Title = "Ounce"; $weight->Unit = "oz"; $weight->write(); $weight->flushCache(); DB::alteration_message('Ounces weight created', 'created'); } }
/** * The process to automatically construct data object output configurations, executed on project build. */ public function requireDefaultRecords() { parent::requireDefaultRecords(); // Grab the list of data objects that have been completely removed. foreach (DB::getConn()->tableList() as $table) { // Delete existing output configurations for these data objects. if (!class_exists($table)) { $existing = DataObjectOutputConfiguration::get_one('DataObjectOutputConfiguration', "IsFor = '" . Convert::raw2sql($table) . "'"); $this->deleteConfiguration($table, $existing); } } // Grab the list of all data object types, along with any inclusions/exclusions defined. $objects = ClassInfo::subclassesFor('DataObject'); $inclusions = self::$custom_inclusions; $exclusions = array_unique(array_merge(self::$exclusions, self::$custom_exclusions)); // Check existing output configurations for these data objects. foreach ($objects as $object) { $existing = DataObjectOutputConfiguration::get_one('DataObjectOutputConfiguration', "IsFor = '" . Convert::raw2sql($object) . "'"); // Delete existing output configurations for invalid data objects, or for those excluded. if ($existing && (self::$disabled || get_parent_class($object) !== 'DataObject' || ClassInfo::classImplements($object, 'TestOnly') || count($inclusions) > 0 && !in_array($object, $inclusions) || count($inclusions) === 0 && in_array($object, $exclusions))) { $this->deleteConfiguration($object, $existing); } else { if (!$existing && !self::$disabled && get_parent_class($object) === 'DataObject' && !ClassInfo::classImplements($object, 'TestOnly') && (count($inclusions) > 0 && in_array($object, $inclusions) || count($inclusions) === 0 && !in_array($object, $exclusions))) { $this->addConfiguration($object); } } } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); $existing = DataObject::get('AccessRole'); if ($existing && $existing->count()) { return; } $dp = self::allPermissions(); $role = new AccessRole(); $role->Title = 'Admin'; $role->Composes = array_values($dp); $role->write(); $ownerPerms = $dp; // get rid of publish from owners unset($ownerPerms['Publish']); $role = new AccessRole(); $role->Title = 'Owner'; $role->Composes = array_keys($ownerPerms); $role->write(); unset($dp['TakeOwnership']); unset($dp['Configure']); $role = new AccessRole(); $role->Title = 'Manager'; $role->Composes = array_keys($dp); $role->write(); $role = new AccessRole(); $role->Title = 'Editor'; $role->Composes = array('View', 'Write', 'CreateChildren'); $role->write(); }
public function requireDefaultRecords() { parent::requireDefaultRecords(); // create a catch-all group if (!OptionGroup::get()->filter(array('Title' => 'Options'))->first()) { $do = new OptionGroup(); $do->Title = "Options"; $do->write(); } if (!OptionGroup::get()->filter(array('Title' => 'Size'))->first()) { $do = new OptionGroup(); $do->Title = "Size"; $do->write(); } if (!OptionGroup::get()->filter(array('Title' => 'Color'))->first()) { $do = new OptionGroup(); $do->Title = "Color"; $do->write(); } if (!OptionGroup::get()->filter(array('Title' => 'Type'))->first()) { $do = new OptionGroup(); $do->Title = "Type"; $do->write(); } }
public function requireDefaultRecords() { // If no tax rates, setup some defaults if (!TaxRate::get()->exists()) { $vat = TaxRate::create(); $vat->Title = "VAT"; $vat->Amount = 20; $vat->Code = "T1"; $vat->write(); DB::alteration_message('VAT tax rate created.', 'created'); $reduced = TaxRate::create(); $reduced->Title = "Reduced rate"; $reduced->Amount = 5; $reduced->Code = "T2"; $reduced->write(); DB::alteration_message('Reduced tax rate created.', 'created'); $zero = TaxRate::create(); $zero->Title = "Zero rate"; $zero->Amount = 0; $zero->Code = "T4"; $zero->write(); DB::alteration_message('Zero tax rate created.', 'created'); } parent::requireDefaultRecords(); }
public function requireDefaultRecords() { parent::requireDefaultRecords(); if (!CommerceCurrency::get()->exists()) { $gbp = new CommerceCurrency(); $gbp->Title = "UK Pounds"; $gbp->HTMLNotation = "£"; $gbp->GatewayCode = "GBP"; $gbp->write(); $gbp->flushCache(); DB::alteration_message('UK Pounds created', 'created'); $eur = new CommerceCurrency(); $eur->Title = "Euro"; $eur->HTMLNotation = "€"; $eur->GatewayCode = "EUR"; $eur->write(); $eur->flushCache(); DB::alteration_message('Euro created', 'created'); $usd = new CommerceCurrency(); $usd->Title = "US Dollars"; $usd->HTMLNotation = "$"; $usd->GatewayCode = "USD"; $usd->write(); $usd->flushCache(); DB::alteration_message('US Dollars created', 'created'); } }
/** * The process to automatically consolidate existing and configuration defined tag types, executed on project build. */ public function requireDefaultRecords() { parent::requireDefaultRecords(); // Retrieve existing and configuration defined tag types that have not been consolidated. foreach ($this->service->getFusionTagTypes() as $type => $field) { if (($tags = $type::get()->filter('FusionTagID', 0)) && $tags->exists()) { foreach ($tags as $tag) { // Determine whether there's an existing fusion tag. if (!($existing = FusionTag::get()->filter('Title', $tag->{$field})->first())) { // There is no fusion tag, therefore instantiate one using the current tag. $fusion = FusionTag::create(); $fusion->Title = $tag->{$field}; $fusion->TagTypes = serialize(array($tag->ClassName => $tag->ClassName)); $fusion->write(); $fusionID = $fusion->ID; } else { // There is a fusion tag, therefore append the current tag type. $types = unserialize($existing->TagTypes); $types[$tag->ClassName] = $tag->ClassName; $existing->TagTypes = serialize($types); $existing->write(); $fusionID = $existing->ID; } // Update the current tag to point to this. $tag->FusionTagID = $fusionID; $tag->write(); DB::alteration_message("\"{$tag->{$field}}\" Fusion Tag", 'created'); } } } }
/** * When rebuilding the database we need to ensure that all the threads have been assigned * a last post and when people upgrade to this version running the rebuild should fix the data * rather than the entire migrate script * * @return void */ function requireDefaultRecords() { if (DB::query("SELECT COUNT(*) FROM \"ForumThread\" WHERE \"LastPostID\" = 0")->value() > 0) { $migrate = new ForumMigrationTask(); $migrate->attachLastPostIDs(); } parent::requireDefaultRecords(); }
/** * Migrate data from Member_UnsubscribeRecord (the obsolete table) * to UnsubscribeRecord. */ function requireDefaultRecords() { parent::requireDefaultRecords(); if (in_array('Email_BlackList', DB::getConn()->tableList())) { DB::query("INSERT INTO \"UnsubscribeRecord\" SELECT * FROM \"Member_UnsubscribeRecord\""); DB::query("RENAME TABLE \"Member_UnsubscribeRecord\" TO \"_obsolete_Member_UnsubscribeRecord\""); echo "<div style=\"padding:5px; color:white; background-color:blue;\">Data in Member_UnsubscribeRecord has been moved to the new UnsubscribeRecord table. To drop the obsolete table, issue this SQL command: \"DROP TABLE '_obsolete_Member_UnsubscribeRecord'\".</div>"; } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); $moduleManager = DataObject::get_one('ModuleManager'); if (!$moduleManager) { self::make_module_manager(); DB::alteration_message("Added default module manager", "created"); } }
/** * Setup a default ShopConfig record if none exists */ public function requireDefaultRecords() { parent::requireDefaultRecords(); if (!self::current_shop_config()) { $shopConfig = new ShopConfig(); $shopConfig->write(); DB::alteration_message('Added default shop config', 'created'); } }
/** * Setup a default SiteDesigner record if none exists */ public function requireDefaultRecords() { parent::requireDefaultRecords(); $siteDesigner = DataObject::get_one('SiteDesigner'); if (!$siteDesigner) { self::make_site_designer(); DB::alteration_message("Added default site designer", "created"); } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); $moduleManager = ModuleManager::get()->First(); if (!$moduleManager) { self::make_module_manager(); DB::alteration_message("Added default module manager", "created"); } }
/** * {@inheritdoc} */ public function requireDefaultRecords() { parent::requireDefaultRecords(); // run the population task if required. if (PopulateTimeZonesTask::config()->run_during_dev_build) { $task = new PopulateTimeZonesTask(); $task->up(); } }
function requireDefaultRecords() { parent::requireDefaultRecords(); $bt = defined('DB::USE_ANSI_SQL') ? "\"" : "`"; DB::query("DROP TABLE IF EXISTS PageRating_TEMP;"); DB::query("CREATE TABLE PageRating_TEMP (ParentID INTEGER(11), Rating INTEGER);"); DB::query("ALTER TABLE {$bt}PageRating_TEMP{$bt} ADD INDEX ( {$bt}ParentID{$bt} ) "); DB::query("ALTER TABLE {$bt}PageRating_TEMP{$bt} ADD INDEX ( {$bt}Rating{$bt} ) "); DB::alteration_message("create PageRating_TEMP", "created"); }
public function requireDefaultRecords() { parent::requireDefaultRecords(); //Ensure at least 1 spam keyword exists. if (!SuspendSpammerKeyword::get()->Exists()) { $keyword = SuspendSpammerKeyword::create(); $keyword->Title = 'astrologer'; $keyword->write(); } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); $conf = DataObject::get_one('SolrServerConfig'); if (!$conf || !$conf->ID) { $conf = new SolrServerConfig(); $conf->RunLocal = false; $conf->InstanceID = md5(mt_rand(0, 1000) . time()); $conf->write(); } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); $allCats = DataObject::get('ProductCategory'); if (!$allCats->count()) { $cat = new ProductCategory(); $cat->Title = 'Default'; $cat->Code = 'DEFAULT'; $cat->write(); } }
function requireDefaultRecords() { parent::requireDefaultRecords(); $simplestSpamFieldQuestion = SimplestSpamFieldQuestion::get()->First(); if (!$simplestSpamFieldQuestion) { $simplestSpamFieldQuestion = new SimplestSpamFieldQuestion(); $simplestSpamFieldQuestion->Question = 'What is the original name for New Zealand?'; $simplestSpamFieldQuestion->Answer = 'Aotearoa'; $simplestSpamFieldQuestion->write(); DB::alteration_message($simplestSpamFieldQuestion->ClassName . "Created default entry for SimplestSpamFieldQuestion", 'created'); } }
/** * Update previous media attributes. */ public function requireDefaultRecords() { parent::requireDefaultRecords(); // Retrieve existing "start time" attributes. $attributes = MediaAttribute::get()->innerJoin('MediaPage', 'MediaAttribute.MediaPageID = MediaPage.ID')->innerJoin('MediaType', 'MediaPage.MediaTypeID = MediaType.ID')->where(array('MediaType.Title = ?' => 'Event', 'OriginalTitle = ?' => 'Start Time')); foreach ($attributes as $attribute) { // These should now be "time" attributes. $attribute->OriginalTitle = 'Time'; $attribute->Title = 'Time'; $attribute->write(); } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); // get schemas that need creating $schemas = $this->config()->get('default_schemas'); require_once 'spyc/spyc.php'; foreach ($schemas as $file) { if (file_exists(Director::baseFolder() . '/' . $file)) { $parser = new Spyc(); $factory = new FixtureFactory(); $fixtureContent = $parser->loadFile(Director::baseFolder() . '/' . $file); if (isset($fixtureContent['MetadataSchema'])) { $toBuild = array(); // check if it exists or not, if so don't re-create it foreach ($fixtureContent['MetadataSchema'] as $id => $desc) { $name = isset($desc['Name']) ? $desc['Name'] : null; if (!$name) { throw new Exception("Cannot create metadata schema without a name"); } $existing = MetadataSchema::get()->filter('Name', $name)->first(); if ($existing) { $factory->setId('MetadataSchema', $id, $existing->ID); } else { $factory->createObject('MetadataSchema', $id, $desc); DB::alteration_message('Metadata schema ' . $id . ' created', 'created'); } } // don't need this now unset($fixtureContent['MetadataSchema']); // go through and unset any existing fields $toBuild = array(); foreach ($fixtureContent as $class => $items) { foreach ($items as $identifier => $data) { $nameField = isset($data['Name']) ? 'Name' : (isset($data['Key']) ? 'Key' : ''); if (!strlen($nameField)) { throw new Exception("Metadata fields must have a Name or Key field defined"); } if (!isset($data['Title'])) { $data['Title'] = $data[$nameField]; } $existing = $class::get()->filter($nameField, $data[$nameField])->first(); if ($existing) { $factory->setId($class, $identifier, $existing->ID); } else { $factory->createObject($class, $identifier, $data); DB::alteration_message('Metadata field ' . $data[$nameField] . ' created', 'created'); } } } } } } }
/** * Add default records to database. This function is called whenever the * database is built, after the database tables have all been created. * * @uses DataExtension->requireDefaultRecords() */ public function requireDefaultRecords() { /* Inherit Default Record Creation */ parent::requireDefaultRecords(); /* If no records exist, create defaults */ if (!StoreSettings::get_settings()) { //Fetch SiteConfig $SiteConfig = SiteConfig::current_site_config(); $n = new StoreSettings(); $n->StoreSettings_StoreAvailable = "1"; $n->StoreSettings_StoreAvailableMessage = "Our store is currently offline for maintenance and will be back online soon."; $n->StoreSettings_StoreName = $SiteConfig->Title . " Online Store"; $n->StoreSettings_StoreCountry = "GB"; $n->StoreSettings_ProductWeight = "Grams"; $n->StoreSettings_ProductDimensions = "Centimetres"; $n->DisplaySettings_FeaturedProducts = "5"; $n->DisplaySettings_NewProducts = "5"; $n->DisplaySettings_CartQuantity = "1"; $n->DisplaySettings_ShowPrice = "1"; $n->DisplaySettings_ShowSKU = "1"; $n->DisplaySettings_ShowWeight = "1"; $n->DisplaySettings_ShowDimensions = "1"; $n->DisplaySettings_ProductSort = "Created DESC"; $n->DisplaySettings_ProductPagePhotoWidth = "250"; $n->DisplaySettings_ProductPagePhotoHeight = "250"; $n->DisplaySettings_ProductThumbnailPhotoWidth = "125"; $n->DisplaySettings_ProductThumbnailPhotoHeight = "125"; $n->DisplaySettings_ProductEnlargedPhotoWidth = "1280"; $n->DisplaySettings_ProductEnlargedPhotoHeight = "768"; $n->CheckoutSettings_InitialStatus = "1"; $n->CheckoutSettings_GuestCheckout = "1"; $n->CheckoutSettings_GuestCheckoutAccount = "1"; $n->CheckoutSettings_OrderComments = "1"; $n->EmailNotification_AccountCreated = "1"; $n->EmailNotification_OrderPlaced = "1"; $n->EmailNotification_OrderStatuses = "3,8,4,7,2,6,5"; $n->Stock_StockManagement = "1"; $n->Stock_PendingOrdersFreezeStock = "90"; $n->Stock_LowStockThreshold = "2"; $n->Stock_OutOfStockThreshold = "0"; $n->Stock_OutofStockMessage = "Out of Stock"; $n->Stock_ProductOutOfStock = "3"; $n->Stock_OptionOutOfStock = "2"; $n->Stock_StockLevelDisplay = "3"; $n->TaxSettings_InclusiveExclusive = "1"; $n->TaxSettings_ShippingInclusiveExclusive = "1"; $n->TaxSettings_CalculateUsing = "1"; $n->write(); unset($n); DB::alteration_message('Created default store configuration', 'created'); } }
/** * Set up default records based on the yaml config */ public function requireDefaultRecords() { parent::requireDefaultRecords(); foreach ($this->getDefaultSetNames() as $name) { $existingRecord = MenuSet::get()->filter('Name', $name)->first(); if (!$existingRecord) { $set = new MenuSet(); $set->Name = $name; $set->write(); DB::alteration_message("MenuSet '{$name}' created", 'created'); } } }
/** * Create default categories from YAML configuration */ public function requireDefaultRecords() { parent::requireDefaultRecords(); // Only create default records if no records are present if (!self::get()->count()) { $categories = $this->config()->default_categories; if ($categories) { foreach ($categories as $name) { self::create(array('Title' => $name))->write(); } } } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); $records = DataList::create("RecurringDayOfMonth"); if (!$records->exists()) { self::create_default_records(); } elseif ($records->count() != 31) { foreach ($records as $record) { $record->delete(); } self::create_default_records(); } }
function requireDefaultRecords() { parent::requireDefaultRecords(); if ($this->class == 'NewsletterCategory') { if (!DataObject::get($this->class)) { $n = new NewsletterCategory(); $n->Title = "Newsletter"; $n->Description = "Default Newsletter"; $n->write(); Database::alteration_message("default newsletter category created", "created"); } } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); foreach ($this->roles as $role) { $ScoutRole = DataObject::get_one('ScoutRole', "Title = '" . $role['Title'] . "'"); if (!$ScoutRole) { $ScoutRole = new ScoutRole(); $ScoutRole->Title = $role['Title']; $ScoutRole->Acronym = $role['Acronym']; $ScoutRole->write(); DB::alteration_message($ScoutRole->Title . ' (' . $ScoutRole->Acronym . ') Scout Role created', 'created'); } } }
public function requireDefaultRecords() { parent::requireDefaultRecords(); $employeeSet = DataObject::get('Employee'); foreach ($employeeSet as $employee) { $employee->delete(); } foreach ($this->data() as $employeeName) { $employee = new Employee(); $employee->Name = $employeeName; $employee->write(); } DB::alteration_message("Added default records to Employee table", "created"); }
/** * Adds the default languages if they are missing */ public function requireDefaultRecords() { parent::requireDefaultRecords(); $defaultLangs = array_keys($this->defaultLanguages); $dbLangCount = SnippetLanguage::get()->filter('Name', $defaultLangs)->filter('UserLanguage', 0)->Count(); if ($dbLangCount < count($defaultLangs)) { foreach ($this->defaultLanguages as $name => $data) { if (!SnippetLanguage::get()->find('Name', $name)) { $lang = new SnippetLanguage(); $lang->Name = $name; $lang->FileExtension = $data['Extension']; $lang->HighlightCode = $data['HighlightCode']; $lang->UserLanguage = false; $lang->write(); DB::alteration_message('Created snippet language "' . $name . '"', 'created'); } } } //Look for config languages $configLanguages = CodeBank::config()->extra_languages; if (!empty($configLanguages)) { foreach ($configLanguages as $language) { //Validate languages if (empty($language['Name']) || empty($language['FileName']) || empty($language['HighlightCode']) || empty($language['Brush'])) { user_error('Invalid snippet user language found in config, user languages defined in config must contain a Name, FileName, HighlightCode and Brush file path', E_USER_WARNING); continue; } $lang = SnippetLanguage::get()->filter('Name', Convert::raw2sql($language['Name']))->filter('HighlightCode', Convert::raw2sql($language['HighlightCode']))->filter('UserLanguage', true)->first(); if (empty($lang) || $lang === false || $lang->ID <= 0) { if (Director::is_absolute($language['Brush']) || Director::is_absolute_url($language['Brush'])) { user_error('Invalid snippet user language found in config, user languages defined in config must contain a path to the brush relative to the SilverStripe base (' . Director::baseFolder() . ')', E_USER_WARNING); continue; } if (preg_match('/\\.js$/', $language['Brush']) == 0) { user_error('Invalid snippet user language found in config, user languages defined in config must be javascript files', E_USER_WARNING); continue; } //Add language $lang = new SnippetLanguage(); $lang->Name = $language['Name']; $lang->FileExtension = $language['FileName']; $lang->HighlightCode = $language['HighlightCode']; $lang->BrushFile = $language['Brush']; $lang->UserLanguage = true; $lang->write(); DB::alteration_message('Created snippet user language "' . $language['Name'] . '"', 'created'); } } } }