function save() { $return = parent::save(); $manager = rex_cronjob_manager::factory(); $manager->saveNextTime(); return $return; }
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; }
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; }
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; }