/**
  * 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;
 }
Exemplo n.º 3
0
 /**
  * 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();
             }
         }
     }
 }