function save()
 {
     $return = parent::save();
     $manager = rex_cronjob_manager::factory();
     $manager->saveNextTime();
     return $return;
 }
예제 #2
0
파일: form.php 프로젝트: DECAF/redaxo
 protected function save()
 {
     $nexttime = $this->getElement($this->mainFieldset, 'nexttime');
     $timestamp = rex_cronjob_manager_sql::calculateNextTime($this->intervalField->getValue());
     $nexttime->setValue($timestamp ? rex_sql::datetime($timestamp) : null);
     $return = parent::save();
     rex_cronjob_manager_sql::factory()->saveNextTime();
     return $return;
 }
예제 #3
0
파일: form.php 프로젝트: skerbis/redaxo
 protected function save()
 {
     if ($this->isEditMode()) {
         $nexttime = $this->getElement($this->mainFieldset, 'nexttime');
         if (strtotime($nexttime->getValue()) > 0) {
             $interval = $this->getElement($this->mainFieldset, 'interval');
             $nexttime->setValue(rex_sql::datetime(rex_cronjob_manager_sql::calculateNextTime($interval->getValue())));
         }
     }
     $return = parent::save();
     rex_cronjob_manager_sql::factory()->saveNextTime();
     return $return;
 }
 function save()
 {
     global $I18N_META_INFOS;
     $fieldName = $this->getFieldValue('name');
     if ($fieldName == '') {
         return $I18N_META_INFOS->msg('field_error_name');
     }
     if (preg_match('/[^a-zA-Z0-9\\_]/', $fieldName)) {
         return $I18N_META_INFOS->msg('field_error_chars_name');
     }
     // Prüfen ob schon eine Spalte mit dem Namen existiert (nur beim add nötig)
     if (!$this->isEditMode()) {
         $sql = new rex_sql();
         $sql->setQuery('SELECT * FROM ' . $this->tableName . ' WHERE name="' . $this->addPrefix($fieldName) . '" LIMIT 1');
         if ($sql->getRows() == 1) {
             return $I18N_META_INFOS->msg('field_error_unique_name');
         }
     }
     // Den alten Wert aus der DB holen
     // Dies muss hier geschehen, da in parent::save() die Werte für die DB mit den
     // POST werten überschrieben werden!
     $fieldOldName = '';
     $fieldOldPrior = 9999999999999;
     // dirty, damit die prio richtig läuft...
     $fieldOldDefault = '';
     if ($this->sql->getRows() == 1) {
         $fieldOldName = $this->sql->getValue('name');
         $fieldOldPrior = $this->sql->getValue('prior');
         $fieldOldDefault = $this->sql->getValue('default');
     }
     if (parent::save()) {
         global $REX, $I18N;
         $this->organizePriorities($this->getFieldValue('prior'), $fieldOldPrior);
         rex_generateAll();
         $fieldName = $this->addPrefix($fieldName);
         $fieldType = $this->getFieldValue('type');
         $fieldDefault = $this->getFieldValue('default');
         $sql = rex_sql::getInstance();
         $result = $sql->getArray('SELECT `dbtype`, `dblength` FROM `' . $REX['TABLE_PREFIX'] . '62_type` WHERE id=' . $fieldType);
         $fieldDbType = $result[0]['dbtype'];
         $fieldDbLength = $result[0]['dblength'];
         // TEXT Spalten dürfen in MySQL keine Defaultwerte haben
         if ($fieldDbType == 'text') {
             $fieldDefault = null;
         }
         if ($this->isEditMode()) {
             // Spalte in der Tabelle verändern
             $tmRes = $this->tableManager->editColumn($fieldOldName, $fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
         } else {
             // Spalte in der Tabelle anlegen
             $tmRes = $this->tableManager->addColumn($fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
         }
         if ($tmRes) {
             // DefaultWerte setzen
             if ($fieldDefault != $fieldOldDefault) {
                 $qry = 'UPDATE `' . $this->tableManager->getTableName() . '` SET `' . $fieldName . '`="' . $fieldDefault . '" WHERE `' . $fieldName . '`="' . $fieldOldDefault . '"';
                 return $sql->setQuery($qry);
             }
             // Default werte haben schon zuvor gepasst, daher true zurückgeben
             return true;
         }
     }
     return false;
 }
예제 #5
0
 protected function save()
 {
     $fieldName = $this->elementPostValue($this->getFieldsetName(), 'name');
     // Den alten Wert aus der DB holen
     // Dies muss hier geschehen, da in parent::save() die Werte fuer die DB mit den
     // POST werten ueberschrieben werden!
     $fieldOldName = '';
     $fieldOldPriority = 9999999999999;
     // dirty, damit die prio richtig l�uft...
     $fieldOldDefault = '';
     if ($this->sql->getRows() == 1) {
         $fieldOldName = $this->sql->getValue('name');
         $fieldOldPriority = $this->sql->getValue('priority');
         $fieldOldDefault = $this->sql->getValue('default');
     }
     if (parent::save()) {
         $this->organizePriorities($this->elementPostValue($this->getFieldsetName(), 'priority'), $fieldOldPriority);
         $fieldName = $this->addPrefix($fieldName);
         $fieldType = $this->elementPostValue($this->getFieldsetName(), 'type_id');
         $fieldDefault = $this->elementPostValue($this->getFieldsetName(), 'default');
         $sql = rex_sql::factory();
         $sql->setDebug($this->debug);
         $result = $sql->getArray('SELECT `dbtype`, `dblength` FROM `' . rex::getTablePrefix() . 'metainfo_type` WHERE id=' . $fieldType);
         $fieldDbType = $result[0]['dbtype'];
         $fieldDbLength = $result[0]['dblength'];
         // TEXT Spalten duerfen in MySQL keine Defaultwerte haben
         if ($fieldDbType == 'text') {
             $fieldDefault = null;
         }
         if ($this->isEditMode()) {
             // Spalte in der Tabelle ver�ndern
             $tmRes = $this->tableManager->editColumn($fieldOldName, $fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
         } else {
             // Spalte in der Tabelle anlegen
             $tmRes = $this->tableManager->addColumn($fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
         }
         rex_delete_cache();
         if ($tmRes) {
             // DefaultWerte setzen
             if ($fieldDefault != $fieldOldDefault) {
                 try {
                     $upd = rex_sql::factory();
                     $upd->setDebug($this->debug);
                     $upd->setTable($this->tableManager->getTableName());
                     $upd->setWhere([$fieldName => $fieldOldDefault]);
                     $upd->setValue($fieldName, $fieldDefault);
                     $upd->update();
                     return true;
                 } catch (rex_sql_exception $e) {
                     return false;
                 }
             }
             // Default werte haben schon zuvor gepasst, daher true zur�ckgeben
             return true;
         }
     }
     return false;
 }
 /**
  * Speichert das Formular
  *
  * Gibt true zur�ck wenn alles ok war, false bei einem allgemeinen Fehler oder
  * einen String mit einer Fehlermeldung.
  */
 function save()
 {
     global $REX;
     if (isset($this->languageDependent['id']) and isset($this->languageDependent['clang']) and $this->mode == 'add') {
         $sql = rex_sql::getInstance();
         foreach ($REX['CLANG'] as $key => $val) {
             $sql->debugsql = $this->debug;
             $sql->setTable($this->tableName);
             if (!isset($id) or !$id) {
                 $id = $sql->setNewId($this->languageDependent['id']);
             } else {
                 $sql->setValue($this->languageDependent['id'], $id);
             }
             $sql->setValue($this->languageDependent['clang'], $key);
             foreach ($this->getFieldsets() as $fieldsetName) {
                 // POST-Werte ermitteln
                 $fieldValues = $this->fieldsetPostValues($fieldsetName);
                 foreach ($fieldValues as $fieldName => $fieldValue) {
                     // Callback, um die Values vor dem Speichern noch beeinflussen zu k�nnen
                     $fieldValue = $this->preSave($fieldsetName, $fieldName, $fieldValue, $sql);
                     if (is_array($fieldValue)) {
                         $fieldValue = implode('|+|', $fieldValue);
                     }
                     // Element heraussuchen
                     $element = $this->getElement($fieldsetName, $fieldName);
                     // Den POST-Wert als Value in das Feld speichern
                     // Da generell alles von REDAXO escaped wird, hier slashes entfernen
                     $element->setValue(stripslashes($fieldValue));
                     // Den POST-Wert in die DB speichern (inkl. slahes)
                     $sql->setValue($fieldName, $fieldValue);
                 }
             }
             if ($sql->insert()) {
                 $msg = true;
             } else {
                 $msg = false;
             }
         }
         return $msg;
     } else {
         return parent::save();
     }
 }
 function save()
 {
     $fieldName = $this->elementPostValue($this->getFieldsetName(), 'name');
     // Den alten Wert aus der DB holen
     // Dies muss hier geschehen, da in parent::save() die Werte für die DB mit den
     // POST werten überschrieben werden!
     $fieldOldName = '';
     $fieldOldPrior = 9999999999999.0;
     // dirty, damit die prio richtig läuft...
     $fieldOldDefault = '';
     if ($this->sql->getRows() == 1) {
         $fieldOldName = $this->sql->getValue('name');
         $fieldOldPrior = $this->sql->getValue('prior');
         $fieldOldDefault = $this->sql->getValue('default');
     }
     if (parent::save()) {
         global $REX, $I18N;
         $this->organizePriorities($this->elementPostValue($this->getFieldsetName(), 'prior'), $fieldOldPrior);
         $fieldName = $this->addPrefix($fieldName);
         $fieldType = $this->elementPostValue($this->getFieldsetName(), 'type');
         $fieldDefault = $this->elementPostValue($this->getFieldsetName(), 'default');
         $sql = rex_sql::factory();
         $sql->debugsql =& $this->debug;
         $result = $sql->getArray('SELECT `dbtype`, `dblength` FROM `' . $REX['TABLE_PREFIX'] . '62_type` WHERE id=' . $fieldType);
         $fieldDbType = $result[0]['dbtype'];
         $fieldDbLength = $result[0]['dblength'];
         // TEXT Spalten dürfen in MySQL keine Defaultwerte haben
         if ($fieldDbType == 'text') {
             $fieldDefault = null;
         }
         if ($this->isEditMode()) {
             // Spalte in der Tabelle verändern
             $tmRes = $this->tableManager->editColumn($fieldOldName, $fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
         } else {
             // Spalte in der Tabelle anlegen
             $tmRes = $this->tableManager->addColumn($fieldName, $fieldDbType, $fieldDbLength, $fieldDefault);
         }
         OORedaxo::$vars = array();
         rex_generateAll();
         if ($tmRes) {
             // DefaultWerte setzen
             if ($fieldDefault != $fieldOldDefault) {
                 $upd = rex_sql::factory();
                 $upd->debugsql =& $this->debug;
                 $upd->setTable($this->tableManager->getTableName());
                 $upd->setWhere('`' . $fieldName . '`="' . addSlashes($fieldOldDefault) . '"');
                 $upd->setValue($fieldName, addSlashes($fieldDefault));
                 return $upd->update();
             }
             // Default werte haben schon zuvor gepasst, daher true zurückgeben
             return true;
         }
     }
     return false;
 }