/** * Adds example configuration to SilverCart when triggered in ModelAdmin. * * @return SS_HTTPResponse * * @author Sebastian Diel <*****@*****.**> * @since 21.02.2013 */ public function add_example_config() { SilvercartConfig::enableTestData(); $result = SilvercartRequireDefaultRecords::createTestConfiguration(); if ($result) { $responseText = _t('SilvercartConfig.ADDED_EXAMPLE_CONFIGURATION'); } else { $responseText = _t('SilvercartConfig.EXAMPLE_CONFIGURATION_ALREADY_ADDED'); } $this->owner->getResponse()->addHeader('X-Status', rawurlencode($responseText)); return $this->owner->getResponseNegotiator()->respond($this->owner->getRequest()); }
/** * disables the creation of test data on /dev/build. This is set by default, * so you do not have to disable creation of test data if it was not enabled * before. * * @return void * * @author Sebastian Diel <*****@*****.**> * @since 21.02.2011 */ public static function disableTestData() { self::$enableTestData = false; }
/** * disables the creation of test data on /dev/build. This is set by default, * so you do not have to disable creation of test data if it was not enabled * before. * * @return void * * @author Sebastian Diel <*****@*****.**> * @since 21.02.2011 */ public static function disableTestData() { SilvercartRequireDefaultRecords::disableTestData(); }
/** * writes a payment method to the db in case none does exist yet * * @return void * * @author Sascha Koehler <*****@*****.**>, Sebastian Diel <*****@*****.**> * @since 21.02.2013 */ public function requireDefaultRecords() { parent::requireDefaultRecords(); $this->createUploadFolder(); // not a base class if ($this->moduleName !== '') { $className = $this->ClassName; /** * original expression * $has_multiple_payment_channels = $className::$has_multiple_payment_channels; * was replaced with eval call to provide compatibility to PHP 5.2 */ $has_multiple_payment_channels = eval('return ' . $className . '::$has_multiple_payment_channels;'); if ($has_multiple_payment_channels) { $paymentModule = new $className(); foreach ($paymentModule->getPossiblePaymentChannels() as $channel => $name) { if (!DataObject::get($className)->filter('PaymentChannel', $channel)->exists()) { $paymentMethod = new $className(); $paymentMethod->isActive = 0; $paymentMethod->PaymentChannel = $channel; $paymentMethod->write(); $languages = array('de_DE', 'en_US', 'en_GB'); if (!in_array(Translatable::get_current_locale(), $languages)) { $languages[] = Translatable::get_current_locale(); } $languageClassName = $this->ClassName . 'Language'; foreach ($languages as $language) { $relationField = $this->ClassName . 'ID'; $filter = sprintf("\"SilvercartPaymentMethodLanguage\".\"Locale\" = '%s' AND \"%s\" = '%s'", $language, $relationField, $paymentMethod->ID); $langObj = DataObject::get_one($languageClassName, $filter); if (!$langObj) { $langObj = new $languageClassName(); $langObj->Locale = $language; } $langObj->Name = $name; $langObj->{$relationField} = $paymentMethod->ID; $langObj->write(); } } } } elseif (!DataObject::get_one($className)) { // entry does not exist yet //prepayment's default record gets activated if test data is enabled if ($this->moduleName == "Prepayment" && SilvercartRequireDefaultRecords::isEnabledTestData()) { $this->isActive = 1; //As we do not know if the country is instanciated yet we do write this relation in the country class too. $germany = SilvercartCountry::get()->filter('ISO2', 'DE')->first(); if ($germany) { $this->SilvercartCountries()->add($germany); } } else { $this->isActive = 0; } $this->Name = _t($className . '.NAME', $this->moduleName); $this->Title = _t($className . '.TITLE', $this->moduleName); $this->write(); $languages = array('de_DE', 'en_US', 'en_GB'); foreach ($languages as $language) { $filter = sprintf("\"SilvercartPaymentMethodLanguage\".\"Locale\" = '%s' AND \"%sID\" = '%s'", $language, $this->class, $this->ID); $langObjClassName = $this->class . 'Language'; $langObjClassNameId = $langObjClassName . 'ID'; $langObj = DataObject::get_one($langObjClassName, $filter); if (!$langObj) { $langObj = new $langObjClassName(); $langObj->Locale = $language; } $langObj->Name = $this->moduleName; $langObj->setField($langObjClassNameId, $this->ID); $langObj->write(); } } } }