example 1:
$sql->setWhere(array('id' => 3, 'field' => '')); // results in id = 3 AND field = ''
$sql->setWhere(array(array('id' => 3, 'field' => ''))); // results in id = 3 OR field = ''
example 2:
$sql->setWhere('myid = :id OR anotherfield = :field', array('id' => 3, 'field' => ''));
example 3 (deprecated):
$sql->setWhere('myid="35" OR abc="zdf"');
/** * publish a news by id & clang * if publish-lang == all => $clang is not needed, but must be set * @param $id * @param $clang * @param DateTime $time * @return string */ public static function publishNews($id, $clang, DateTime $time) { /** * @var array $REX * @var i18n $I18N */ global $REX, $I18N; $sql = new rex_sql(); $sql->setTable(rex_asd_news_config::getTable()); $sql->setWhere('`id` = ' . $id . ' AND `clang` = ' . $clang); if (rex_asd_news_config::getConfig('published-lang') == 'all') { $sql->setWhere('`id` = ' . $id); } $sql->setValue('publishedAt', $time->format('Y-m-d H:i')); $sql->setValue('publishedBy', $REX['USER']->getValue('user_id')); $sql->setValue('status', 1); $sql->update(); $sql->setQuery('SELECT * FROM `' . rex_asd_news_config::getTable() . '` WHERE `id` = ' . $id . ' AND `clang` = ' . $clang); return ' <td>' . $id . '</td> <td>' . $sql->getValue('title') . '</td> <td><span>' . $time->format('d.m.Y H:i') . '</span></td> <td><a href="' . self::getBaseUrl($clang) . 'unpublish&id=' . $id . '" class="rex-online" onclick="return confirm(\'' . $I18N->msg('asd_news_really_unpublish') . '\');">' . $I18N->msg('asd_news_published') . '</a></td> <td><a href="' . self::getBaseUrl($clang) . 'edit&id=' . $id . '">' . $I18N->msg('edit') . '</a></td> <td><a href="' . self::getBaseUrl($clang) . 'delete&id=' . $id . '" onclick="return confirm(\'' . $I18N->msg('asd_news_really_delete') . '\');">' . $I18N->msg('delete') . '</a></td> <td><a href="' . self::getBaseUrl($clang) . 'status&id=' . $id . '" class="rex-online">' . $I18N->msg('status_online') . '</a></td>'; }
/** * check if entrys exists for the addon * @return bool */ public static function checkEntrys() { global $REX; $sql = new rex_sql(); $sql->setTable($REX['TABLE_PREFIX'] . 'url_control_generate'); $sql->setWhere('`table` = "' . rex_asd_news_config::getTable() . '"'); $sql->select('1'); return (bool) $sql->getRows(); }
function a724_deletePathnamesFromTable() { $debug = false; // Alle Urls der Tabelle loeschen $sqld = new rex_sql(); $sqld->setDebug($debug); $sqld->setTable('rex_a724_frau_schultze'); $sqld->setWhere('name != "" AND url_table != "" AND url_table_parameters = ""'); $sqld->delete(); }
function asd_news_deleteClang($params) { $id = $params['id']; $name = $params['name']; $sql = new rex_sql(); $sql->setTable(rex_asd_news_config::getTable()); $sql->setWhere('`clang`= ' . $id); if ($sql->delete()) { echo rex_info('ASD News: Neuigkeiten wurden gelöscht'); } else { echo rex_warning('<b>ASD News Fehler:</b> Neuigkeiten aus der Sprache "' . $name . '" konnte nicht gelöscht werden'); } }
function execute() { // echo "DB EXECUTE"; // return; $sql = new rex_sql(); if ($this->params["debug"]) { $sql->debugsql = TRUE; } $main_table = ""; if (isset($this->action["elements"][2]) && $this->action["elements"][2] != "") { $main_table = $this->action["elements"][2]; } else { $main_table = $this->params["main_table"]; } if ($main_table == "") { $this->params["form_show"] = TRUE; $this->params["hasWarnings"] = TRUE; $this->params["warning_messages"][] = $this->params["Error-Code-InsertQueryError"]; return FALSE; } $sql->setTable($main_table); $where = ""; if (isset($this->action["elements"][3]) && trim($this->action["elements"][3]) != "") { $where = trim($this->action["elements"][3]); } // SQL Objekt mit Werten füllen foreach ($this->elements_sql as $key => $value) { $sql->setValue($key, $value); if ($where != "") { $where = str_replace('###' . $key . '###', addslashes($value), $where); } } if ($where != "") { $sql->setWhere($where); $sql->update(); $flag = "update"; } else { $sql->insert(); $flag = "insert"; $id = $sql->getLastId(); $this->elements_email["ID"] = $id; // $this->elements_sql["ID"] = $id; if ($id == 0) { $this->params["form_show"] = TRUE; $this->params["hasWarnings"] = TRUE; $this->params["warning_messages"][] = $this->params["Error-Code-InsertQueryError"]; } } }
static function syncCatname2Artname($params) { global $REX, $I18N; $id = $params['id']; $clang = $params['clang']; $name = $params['data']['catname']; if ($name != '') { $sql = new rex_sql(); $sql->setTable($REX['TABLE_PREFIX'] . 'article'); $sql->setWhere('id=' . $id . ' AND clang=' . $clang); $sql->setValue('name', $name); $sql->addGlobalUpdateFields(); $sql->update(); rex_deleteCacheArticle($id, $clang); } }
function getInsertValue($value) { $value = (array) $value; $section =& $this->getSection(); // Alle vorhanden Werte löschen $sql = new rex_sql(); $sql->setTable($this->foreignTable); $sql->setWhere($section->_getWhereString()); $sql->delete(); // und anschließend alle neu eintragen foreach ($value as $val) { // Parameter aus der Ursprungstabelle mit abspeichern damit später darüber verknüpft werden kann foreach ($section->getWhere() as $whereColName => $whereColValue) { $sql->setValue($whereColName, $whereColValue); } // Den zu speichernden Wert $sql->setValue($this->foreignField, $val); $sql->setTable($this->foreignTable); $sql->insert(); } // null zurückgeben, damit zu diesem Feld nichts im rexForm gespeichert wird return null; }
/** * Kopiert die Metadaten eines Artikels in einen anderen Artikel * * @param $from_id ArtikelId des Artikels, aus dem kopiert werden (Quell ArtikelId) * @param $to_id ArtikelId des Artikel, in den kopiert werden sollen (Ziel ArtikelId) * @param [$from_clang] ClangId des Artikels, aus dem kopiert werden soll (Quell ClangId) * @param [$to_clang] ClangId des Artikels, in den kopiert werden soll (Ziel ClangId) * @param [$params] Array von Spaltennamen, welche kopiert werden sollen */ function rex_copyMeta($from_id, $to_id, $from_clang = 0, $to_clang = 0, $params = array()) { global $REX, $REX_USER; $from_clang = (int) $from_clang; $to_clang = (int) $to_clang; $from_id = (int) $from_id; $to_id = (int) $to_id; if (!is_array($params)) { $params = array(); } if ($from_id == $to_id && $from_clang == $to_clang) { return false; } $gc = new rex_sql(); $gc->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article where clang='{$from_clang}' and id='{$from_id}'"); if ($gc->getRows() == 1) { $uc = new rex_sql(); // $uc->debugsql = 1; $uc->setTable($REX['TABLE_PREFIX'] . "article"); $uc->setWhere("clang='{$to_clang}' and id='{$to_id}'"); $uc->addGlobalUpdateFields(); foreach ($params as $key => $value) { $var = $gc->getValue("{$value}"); $uc->setValue("{$value}", $var); } $uc->update(); rex_generateArticle($to_id, false); return true; } return false; }
} if ($func == 'delete') { $sql = new rex_sql(); $sql->setTable(rex_asd_news_config::getTable()); $sql->setWhere('id=' . $id . ' AND clang = ' . $clang); if ($sql->delete()) { echo rex_info($I18N->msg('asd_news_deleted')); } else { echo rex_warning($sql->getError()); } $func = ''; } if ($func == 'unpublish') { $sql = new rex_sql(); $sql->setTable(rex_asd_news_config::getTable()); $sql->setWhere('id=' . $id . ' AND clang = ' . $clang); $sql->setValue('publishedAt', '0000-00-00 00:00:00'); $sql->setValue('publishedBy', 0); $successMessage = $I18N->msg('asd_news_unpublished_s'); if (rex_asd_news_config::getConfig('published-lang') == 'all') { $sql->setWhere('`id` = ' . $id); $successMessage = $I18N->msg('asd_news_unpublished_m'); } if ($sql->update()) { echo rex_info($successMessage); } else { echo rex_warning($sql->getError()); } $func = ''; } if ($func == '') {
// $modultyp->setQuery("INSERT INTO ".$REX['TABLE_PREFIX']."modultyp (category_id, name, eingabe, ausgabe) VALUES ('$category_id', '$mname', '$eingabe', '$ausgabe')"); $IMOD = new rex_sql(); $IMOD->setTable($REX['TABLE_PREFIX'] . 'module'); $IMOD->setValue('name', $mname); $IMOD->setValue('eingabe', $eingabe); $IMOD->setValue('ausgabe', $ausgabe); $IMOD->addGlobalCreateFields(); $message = $IMOD->insert($I18N->msg('module_added')); } else { $modultyp->setQuery('select * from ' . $REX['TABLE_PREFIX'] . 'module where id=' . $modul_id); if ($modultyp->getRows() == 1) { $old_ausgabe = $modultyp->getValue('ausgabe'); // $modultyp->setQuery("UPDATE ".$REX['TABLE_PREFIX']."modultyp SET name='$mname', eingabe='$eingabe', ausgabe='$ausgabe' WHERE id='$modul_id'"); $UMOD = new rex_sql(); $UMOD->setTable($REX['TABLE_PREFIX'] . 'module'); $UMOD->setWhere('id=' . $modul_id); $UMOD->setValue('name', $mname); $UMOD->setValue('eingabe', $eingabe); $UMOD->setValue('ausgabe', $ausgabe); $UMOD->addGlobalUpdateFields(); $message = $UMOD->update($I18N->msg('module_updated') . ' | ' . $I18N->msg('articel_updated')); $new_ausgabe = stripslashes($ausgabe); if ($old_ausgabe != $new_ausgabe) { // article updaten - nur wenn ausgabe sich veraendert hat $gc = new rex_sql(); $gc->setQuery("SELECT DISTINCT(" . $REX['TABLE_PREFIX'] . "article.id) FROM " . $REX['TABLE_PREFIX'] . "article\r\n LEFT JOIN " . $REX['TABLE_PREFIX'] . "article_slice ON " . $REX['TABLE_PREFIX'] . "article.id=" . $REX['TABLE_PREFIX'] . "article_slice.article_id\r\n WHERE " . $REX['TABLE_PREFIX'] . "article_slice.modultyp_id='{$modul_id}'"); for ($i = 0; $i < $gc->getRows(); $i++) { rex_deleteCacheArticle($gc->getValue($REX['TABLE_PREFIX'] . "article.id")); $gc->next(); } }
/** * @param rex_news_form $form * @param $id * @param $clang */ public static function saveOverLangValues(rex_news_form $form, $id, $clang) { global $REX; $lang = new rex_sql(); $lang->setQuery('SELECT `id` FROM `' . $REX['TABLE_PREFIX'] . 'clang` WHERE `id` != ' . $clang); for ($i = 1; $i <= $lang->getRows(); $i++) { $sql = new rex_sql(); $sql->setTable($form->getTableName()); $sql->setDebug(true); $sql->setWhere('`id` = ' . $id . ' AND `clang` = ' . $lang->getValue('id')); $sql->select('id'); $sql->setTable($form->getTableName()); $sql->setDebug(true); $sql->setWhere('`id` = ' . $id . ' AND `clang` = ' . $lang->getValue('id')); if (OOAddon::isAvailable('metainfo')) { $sql->setValues($form->getMetaValues()); } if ($sql->getRows()) { $sql->setValues(array_intersect_key($form->getValues(), array_flip($form->getOverSavedFields()))); $sql->setValue('clang', $lang->getValue('id')); $sql->setValue('id', $id); $sql->update(); } else { $sql->setValues($form->getValues()); $sql->setValue('clang', $lang->getValue('id')); $sql->setValue('id', $id); $sql->insert(); } $lang->next(); } }
// Allgemeine Funktionen aufrufen bei Listenansicht (Offline stellen etc.) switch ($func) { case 'setstatus': $oid = rex_request('oid', 'int'); $statusfield = rex_request('statusfield', 'string'); $oldstatus = rex_request('oldstatus', 'int'); $minstatus = rex_request('minstatus', 'int', 0); $maxstatus = rex_request('maxstatus', 'int'); if (setStatus(TBL_NEWS, $oid, $statusfield, $oldstatus, $minstatus, $maxstatus)) { echo rex_info('Statusupdate erfolgreich'); } else { echo rex_warning('Statusupdate nicht erfolgreich'); } $func = ''; break; case 'delete': $postparams = implode(",", $_POST['ids']); $sql = new rex_sql(); $sql->setTable(TBL_NEWS); $sql->setWhere('id IN (' . $postparams . ')'); $success = $sql->delete(); if ($sql->getRows() > 0) { echo rex_info('Die Datensätze wurden gelöscht'); } else { echo rex_warning('Die Datensätze konnten nicht gelöscht werden'); } $func = ''; break; } require $file; require $REX['INCLUDE_PATH'] . "/layout/bottom.php";
<?php /** * * @package redaxo4 * @version svn:$Id$ */ // *************************************** SUBPAGE: KATEGORIEN if ($PERMALL) { $edit_id = rex_request('edit_id', 'int'); if ($media_method == 'edit_file_cat') { $cat_name = rex_request('cat_name', 'string'); $db = new rex_sql(); $db->setTable($REX['TABLE_PREFIX'] . 'file_category'); $db->setWhere('id=' . $edit_id); $db->setValue('name', $cat_name); $db->addGlobalUpdateFields(); if ($db->update()) { $info = $I18N->msg('pool_kat_updated', $cat_name); } else { $warning = $db->getError(); } } elseif ($media_method == 'delete_file_cat') { $gf = new rex_sql(); $gf->setQuery('SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'file WHERE category_id=' . $edit_id); $gd = new rex_sql(); $gd->setQuery('SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'file_category WHERE re_id=' . $edit_id); if ($gf->getRows() == 0 && $gd->getRows() == 0) { $gf->setQuery('DELETE FROM ' . $REX['TABLE_PREFIX'] . 'file_category WHERE id=' . $edit_id); $info = $I18N->msg('pool_kat_deleted'); } else {
header('Location: index.php?page=content&article_id=' . $category_id . '&mode=meta&clang=' . $clang . '&ctype=' . $ctype . '&message=' . urlencode($message)); exit; } else { $message = $I18N->msg('content_error_movecategory'); } } else { $message = $I18N->msg('no_rights_to_this_function'); } } // ------------------------------------------ END: MOVE CATEGORY // ------------------------------------------ START: SAVE METADATA if (rex_post('savemeta', 'string')) { $meta_sql = new rex_sql(); $meta_sql->setTable($REX['TABLE_PREFIX'] . "article"); // $meta_sql->debugsql = 1; $meta_sql->setWhere("id='{$article_id}' AND clang={$clang}"); $meta_sql->setValue('name', $meta_article_name); $meta_sql->addGlobalUpdateFields(); if ($meta_sql->update()) { $article->setQuery("SELECT * FROM " . $REX['TABLE_PREFIX'] . "article WHERE id='{$article_id}' AND clang='{$clang}'"); $message = $I18N->msg("metadata_updated") . $message; rex_generateArticle($article_id); // ----- EXTENSION POINT $message = rex_register_extension_point('ART_META_UPDATED', $message, array('id' => $article_id, 'clang' => $clang, 'name' => $meta_article_name)); } else { $message .= $meta_sql->getError(); } } // ------------------------------------------ END: SAVE METADATA // ------------------------------------------ START: CONTENT HEAD MENUE $num_ctypes = count($REX['CTYPE']);
public static function setTableField($table_name, array $table_field) { unset($table_field['id']); if ($table_name == '') { throw new Exception('table_name must be set'); } if (count($table_field) == 0) { throw new Exception('field must be a filled array'); } $fieldIdentifier = array('type_id' => $table_field['type_id'], 'type_name' => $table_field['type_name'], 'name' => $table_field['name']); $currentFields = rex_xform_manager_table::get($table_name)->getFields($fieldIdentifier); // validate specials if ($table_field['type_id'] == 'validate') { $table_field['list_hidden'] = 1; $table_field['search'] = 0; } self::createMissingFieldColumns($table_field); if (count($currentFields) > 1) { throw new Exception('more than one field found for table: ' . $table_name . ' with Fieldidentifier: ' . implode(', ', $fieldIdentifier) . ''); } elseif (count($currentFields) == 0) { // Insert $field_insert = new rex_sql(); $field_insert->debugsql = self::$debug; $field_insert->setTable(rex_xform_manager_field::table()); $field_insert->setValue('table_name', $table_name); foreach ($table_field as $field_name => $field_value) { $field_insert->setValue($field_name, $field_value); } if (!isset($table['prio'])) { $field_insert->setValue('prio', rex_xform_manager_table::get($table_name)->getMaximumPrio() + 1); } $field_insert->insert(); } else { // Update $currentField = $currentFields[0]->toArray(); foreach ($table_field as $field_name => $field_value) { $currentField[$field_name] = $field_value; } $field_update = new rex_sql(); $field_update->debugsql = self::$debug; $field_update->setTable(rex_xform_manager_field::table()); $add_where = array(); foreach ($fieldIdentifier as $field => $value) { $add_where[] = '`' . mysql_real_escape_string($field) . '`="' . mysql_real_escape_string($table_name) . '"'; } $where = 'table_name="' . mysql_real_escape_string($table_name) . '"'; if (count($add_where) > 0) { $where .= ' and (' . implode(' and ', $add_where) . ') '; } $field_update->setWhere($where); foreach ($table_field as $field_name => $field_value) { $field_update->setValue($field_name, $field_value); } $field_update->update(); } }
function rex_setup_setUtf8() { global $REX; $gt = new rex_sql(); $gt->setQuery("show tables"); foreach ($gt->getArray() as $t) { $table = $t["Tables_in_" . $REX['DB']['1']['NAME']]; $gc = new rex_sql(); $gc->setQuery("show columns from {$table}"); if (substr($table, 0, strlen($REX['TABLE_PREFIX'])) == $REX['TABLE_PREFIX']) { $columns = array(); $pri = ""; foreach ($gc->getArray() as $c) { $columns[] = $c["Field"]; if ($pri == "" && $c["Key"] == "PRI") { $pri = $c["Field"]; } } if ($pri != "") { $gr = new rex_sql(); $gr->setQuery("select * from {$table}"); foreach ($gr->getArray() as $r) { reset($columns); $privalue = $r[$pri]; $uv = new rex_sql(); $uv->setTable($table); $uv->setWhere($pri . '= "' . $privalue . '"'); foreach ($columns as $key => $column) { if ($pri != $column) { $value = $r[$column]; $newvalue = utf8_decode($value); $uv->setValue($column, addslashes($newvalue)); } } $uv->update(); } } } } }
/** * @access public * @return Returns <code>true</code> on success or <code>false</code> on error */ function save() { $sql = new rex_sql(); $sql->setTable($this->_getTableName()); $sql->setValue('re_file_id', $this->getParentId()); $sql->setValue('category_id', $this->getCategoryId()); $sql->setValue('filetype', $this->getType()); $sql->setValue('filename', $this->getFileName()); $sql->setValue('originalname', $this->getOrgFileName()); $sql->setValue('filesize', $this->getSize()); $sql->setValue('width', $this->getWidth()); $sql->setValue('height', $this->getHeight()); $sql->setValue('title', $this->getTitle()); if ($this->getId() !== null) { $sql->addGlobalUpdateFields(); $sql->setWhere('file_id=' . $this->getId() . ' LIMIT 1'); return $sql->update(); } else { $sql->addGlobalCreateFields(); return $sql->insert(); } }
</div>'; } } else { $warning = $I18N->msg('pool_file_not_found'); $subpage = ""; } } // *************************************** EXTRA FUNCTIONS if ($PERMALL && $media_method == 'updatecat_selectedmedia') { $selectedmedia = rex_post('selectedmedia', 'array'); if ($selectedmedia[0] > 0) { foreach ($selectedmedia as $file_id) { $db = new rex_sql(); // $db->debugsql = true; $db->setTable($REX['TABLE_PREFIX'] . 'file'); $db->setWhere('file_id=' . $file_id); $db->setValue('category_id', $rex_file_category); $db->addGlobalUpdateFields(); if ($db->update()) { $info = $I18N->msg('pool_selectedmedia_moved'); } else { $warning = $I18N->msg('pool_selectedmedia_error'); } } } else { $warning = $I18N->msg('pool_selectedmedia_error'); } } if ($PERMALL && $media_method == 'delete_selectedmedia') { $selectedmedia = rex_post("selectedmedia", "array"); if (count($selectedmedia) > 0) {
} // Gruppen $a = new rex_sql(); $a->setTable("rex_62_params"); $a->setValue("title", "Gruppen"); $a->setValue("name", "art_com_groups"); $a->setValue("prior", "12"); $a->setValue("type", "3"); $a->setValue("attributes", "multiple=multiple"); $a->setValue("params", "select name as label,id from rex_com_group order by label"); $a->setValue("validate", NULL); $a->addGlobalCreateFields(); $g = new rex_sql(); $g->setQuery('select * from rex_62_params where name="art_com_groups"'); if ($g->getRows() == 1) { $a->setWhere('name="art_com_groups"'); $a->update(); } else { $a->insert(); } $g = new rex_sql(); $g->setQuery('show columns from rex_article Like "art_com_groups"'); if ($g->getRows() == 0) { $a->setQuery("ALTER TABLE `rex_article` ADD `art_com_groups` VARCHAR( 255 ) NOT NULL"); } // ************************************************************** CACHE LOESCHEN $info = rex_generateAll(); // quasi kill cache .. $REX['ADDON']['install']['auth'] = 1; if ($error != "") { $REX['ADDON']['install']['auth'] = 0;
$TPL->setValue("name", $templatename); $TPL->setValue("active", $active); $TPL->setValue("content", $content); if ($function == "add") { $attributes = rex_setAttributes("ctype", $ctypes, ""); $TPL->setValue("attributes", addslashes($attributes)); $TPL->addGlobalCreateFields(); if ($TPL->insert()) { $template_id = $TPL->getLastId(); $message = $I18N->msg("template_added"); } else { $message = $TPL->getError(); } } else { $attributes = rex_setAttributes("ctype", $ctypes, $attributes); $TPL->setWhere("id='{$template_id}'"); $TPL->setValue("attributes", addslashes($attributes)); $TPL->addGlobalUpdateFields(); $message = $TPL->update($I18N->msg("template_updated")); } // werte werden direkt wieder ausgegeben $templatename = stripslashes($templatename); $content = stripslashes($content); rex_deleteDir($REX['INCLUDE_PATH'] . "/generated/templates", 0); if (isset($goon) and $goon != "") { $function = "edit"; $save = "nein"; } else { $function = ""; } }
$module_id = $module["id"]; $module_name = $module["name"]; } if (isset($_REQUEST["install"]) && $_REQUEST["install"] == 1) { $xform_module_name = "rex - X-Form"; // Daten einlesen $in = rex_get_file_contents($REX["INCLUDE_PATH"] . "/addons/xform/module/module_in.inc"); $out = rex_get_file_contents($REX["INCLUDE_PATH"] . "/addons/xform/module/module_out.inc"); $mi = new rex_sql(); // $mi->debugsql = 1; $mi->setTable("rex_module"); $mi->setValue("eingabe", addslashes($in)); $mi->setValue("ausgabe", addslashes($out)); // altes Module aktualisieren if (isset($_REQUEST["module_id"]) && $module_id == $_REQUEST["module_id"]) { $mi->setWhere('id="' . $module_id . '"'); $mi->update(); echo rex_info('Modul "' . $module_name . '" wurde aktualisiert'); } else { $mi->setValue("name", $xform_module_name); $mi->insert(); echo rex_info('XForm Modul wurde angelegt unter "' . $xform_module_name . '"'); } } ?> <div class="rex-addon-output"> <h2 class="rex-hl2">Modul installieren</h2> <div class="rex-addon-content"> <p> Um die XForm sinnvoll nutzen können, muß ein Modul erstellt werden, <br />mit welchem
/** * Holt ein upgeloadetes File und legt es in den Medienpool * Dabei wird kontrolliert ob das File schon vorhanden ist und es * wird eventuell angepasst, weiterhin werden die Fileinformationen übergeben * * @param $FILE * @param $rex_file_category * @param $FILEINFOS * @param $userlogin */ function rex_mediapool_updateMedia($FILE, &$FILEINFOS, $userlogin = null) { global $REX, $I18N; $RETURN = array(); $FILESQL = new rex_sql(); // $FILESQL->debugsql = 1; $FILESQL->setTable($REX['TABLE_PREFIX'] . 'file'); $FILESQL->setWhere('file_id=' . $FILEINFOS["file_id"]); $FILESQL->setValue('title', $FILEINFOS["title"]); $FILESQL->setValue('category_id', $FILEINFOS["rex_file_category"]); $msg = ''; $updated = false; if ($_FILES['file_new']['name'] != '' && $_FILES['file_new']['name'] != 'none') { $ffilename = $_FILES['file_new']['tmp_name']; $ffiletype = $_FILES['file_new']['type']; $ffilesize = $_FILES['file_new']['size']; if ($ffiletype == $FILEINFOS["filetype"] || OOMedia::compareImageTypes($ffiletype, $FILEINFOS["filetype"])) { if (move_uploaded_file($ffilename, $REX['MEDIAFOLDER'] . '/' . $FILEINFOS["filename"]) || copy($ffilename, $REX['MEDIAFOLDER'] . '/' . $FILEINFOS["filename"])) { $RETURN["msg"] = $I18N->msg('pool_file_changed'); $FILEINFOS["filetype"] = $ffiletype; $FILEINFOS["filesize"] = $ffilesize; $FILESQL->setValue('filetype', $FILEINFOS["filetype"]); // $FILESQL->setValue('originalname',$ffilename); $FILESQL->setValue('filesize', $FILEINFOS["filesize"]); if ($size = @getimagesize($REX['MEDIAFOLDER'] . '/' . $FILEINFOS["filename"])) { $FILESQL->setValue('width', $size[0]); $FILESQL->setValue('height', $size[1]); } @chmod($REX['MEDIAFOLDER'] . '/' . $FILEINFOS["filename"], $REX['FILEPERM']); $updated = true; } else { $RETURN["msg"] = $I18N->msg('pool_file_upload_error'); } } else { $RETURN["msg"] = $I18N->msg('pool_file_upload_errortype'); } } $RETURN["ok"] = 0; if (!isset($RETURN["msg"])) { $RETURN["msg"] = $I18N->msg('pool_file_infos_updated'); $RETURN["filename"] = $FILEINFOS["filename"]; $RETURN["filetype"] = $FILEINFOS["filetype"]; $RETURN["file_id"] = $FILEINFOS["file_id"]; $RETURN["ok"] = 1; } $FILESQL->addGlobalUpdateFields(); $FILESQL->update(); /* $RETURN['title'] = $FILEINFOS['title']; $RETURN['type'] = $FILETYPE; $RETURN['msg'] = $message; // Aus BC gruenden hier mit int 1/0 $RETURN['ok'] = $success ? 1 : 0; $RETURN['filename'] = $NFILENAME; $RETURN['old_filename'] = $FILENAME; */ return $RETURN; }
$sel_extra->setSize(10); $sel_extra->setName('userperm_extra[]'); $sel_extra->setId('userperm_extra'); if (isset($REX['EXTRAPERM'])) { sort($REX['EXTRAPERM']); $sel_extra->addArrayOptions($REX['EXTRAPERM'], false); } // --------------------------------- Title rex_title($I18N->msg('title_user'), ''); // --------------------------------- FUNCTIONS if (isset($FUNC_UPDATE) && $FUNC_UPDATE != '' || (isset($FUNC_APPLY) and $FUNC_APPLY != '')) { $loginReset = rex_request('logintriesreset', 'int'); $userstatus = rex_request('userstatus', 'int'); $updateuser = new rex_sql(); $updateuser->setTable($REX['TABLE_PREFIX'] . 'user'); $updateuser->setWhere('user_id=' . $user_id); $updateuser->setValue('name', $username); $updateuser->addGlobalUpdateFields(); if ($REX['PSWFUNC'] != '' && $userpsw != $sql->getValue($REX['TABLE_PREFIX'] . 'user.psw')) { $userpsw = call_user_func($REX['PSWFUNC'], $userpsw); } $updateuser->setValue('psw', $userpsw); $updateuser->setValue('description', $userdesc); if ($loginReset == 1) { $updateuser->setValue('login_tries', '0'); } if ($userstatus == 1) { $updateuser->setValue('status', 1); } else { $updateuser->setValue('status', 0); }
/** * @param $clang * @return bool */ public static function removeLanguageData($clang) { global $REX; $sql = new rex_sql(); $sql->setTable($REX['TABLE_PREFIX'] . 'global_settings'); $sql->setWhere('clang = ' . (int) $clang); return $sql->delete(); }
function organizePriorities($newPrio, $oldPrio) { if ($newPrio == $oldPrio) { return; } if ($newPrio < $oldPrio) { $addsql = 'desc'; } else { $addsql = 'asc'; } $sql = new rex_sql(); $sql->debugsql =& $this->debug; $sql->setQuery('SELECT field_id FROM ' . $this->tableName . ' WHERE name LIKE "' . $this->metaPrefix . '%" ORDER BY prior, updatedate ' . $addsql); $updateSql = new rex_sql(); $updateSql->debugsql =& $this->debug; for ($i = 0; $i < $sql->getRows(); $i++) { $updateSql->setTable($this->tableName); $updateSql->setValue('prior', $i + 1); $updateSql->setWhere('name LIKE "' . $this->metaPrefix . '%" AND field_id = ' . $sql->getValue('field_id')); $updateSql->update(); $sql->next(); } }
$faction->setValue('preview', $previewaction); $faction->setValue('presave', $presaveaction); $faction->setValue('postsave', $postsaveaction); $faction->setValue('previewmode', $previewmode); $faction->setValue('presavemode', $presavemode); $faction->setValue('postsavemode', $postsavemode); if ($function == 'add') { $faction->addGlobalCreateFields(); if ($faction->insert()) { $info = $I18N->msg('action_added'); } else { $warning = $faction->getError(); } } else { $faction->addGlobalUpdateFields(); $faction->setWhere('id=' . $action_id); if ($faction->update()) { $info = $I18N->msg('action_updated'); } else { $warning = $faction->getError(); } } if (isset($goon) and $goon != '') { $save = 'nein'; } else { $function = ''; } } if ($save != '1') { if ($function == 'edit') { $legend = $I18N->msg('action_edit') . ' [ID=' . $action_id . ']';
/** * Truncates the cache or deletes all data that are concerned with the given index-ids. * * @param mixed $_indexIds * * */ function deleteCache($_indexIds = false) { if ($_indexIds === false) { // delete entire search-chache $delete = new rex_sql(); $delete->setTable($this->tablePrefix . '587_searchcacheindex_ids'); $delete->delete(); $delete2 = new rex_sql(); $delete2->setTable($this->tablePrefix . '587_searchcache'); $delete2->delete(); } elseif (is_array($_indexIds) and !empty($_indexIds)) { $sql = new rex_sql(); $query = sprintf(' SELECT cache_id FROM %s WHERE index_id IN (%s)', $this->tablePrefix . '587_searchcacheindex_ids', implode(',', $_indexIds)); $deleteIds = array(0); foreach ($sql->getArray($query) as $cacheId) { $deleteIds[] = $cacheId['cache_id']; } // delete from search-cache where indexed IDs exist $delete = new rex_sql(); $delete->setTable($this->tablePrefix . '587_searchcache'); $delete->setWhere('id IN (' . implode(',', $deleteIds) . ')'); $delete->delete(); // delete the cache-ID and index-ID $delete2 = new rex_sql(); $delete2->setTable($this->tablePrefix . '587_searchcacheindex_ids'); $delete2->setWhere('cache_id IN (' . implode(',', $deleteIds) . ')'); $delete2->delete(); // delete all cached searches which had no result (because now they maybe will have) $delete3 = new rex_sql(); $delete3->setTable($this->tablePrefix . '587_searchcache'); $delete3->setWhere(sprintf('id NOT IN (SELECT cache_id FROM `%s`)', $this->tablePrefix . '587_searchcacheindex_ids')); $delete3->delete(); } }
} else { $amessage = $AART->getError(); } } rex_generateArticle($id); // ----- EXTENSION POINT $amessage = rex_register_extension_point('ART_ADDED', $amessage, array('id' => $id, 'status' => 0, 'name' => $article_name, 're_id' => $category_id, 'prior' => $Position_New_Article, 'path' => $KATPATH, 'template_id' => $template_id)); } elseif (!empty($artedit_function) && $article_id != '' && $KATPERM) { // --------------------- ARTIKEL EDIT $Position_Article = (int) $Position_Article; if ($Position_Article == 0) { $Position_Article = 1; } $EA = new rex_sql(); $EA->setTable($REX['TABLE_PREFIX'] . "article"); $EA->setWhere("id='{$article_id}' and clang={$clang}"); $EA->setValue('name', $article_name); $EA->setValue('template_id', $template_id); // $EA->setValue('path',$KATPATH); $EA->addGlobalUpdateFields(); $EA->setValue('prior', $Position_Article); if ($EA->update()) { $amessage = $I18N->msg('article_updated'); // ----- PRIOR rex_newArtPrio($category_id, $clang, $Position_Article, $thisArt->getValue('prior')); rex_generateArticle($article_id); // ----- EXTENSION POINT $amessage = rex_register_extension_point('ART_UPDATED', $amessage, array('id' => $article_id, 'status' => $thisArt->getValue('status'), 'name' => $article_name, 'clang' => $clang, 're_id' => $category_id, 'prior' => $Position_Article, 'path' => $KATPATH, 'template_id' => $template_id)); } else { $amessage = $EA->getError(); }
/** * @access public * @return Returns <code>true</code> on success or <code>false</code> on error */ function save() { $sql = new rex_sql(); $sql->setTable($this->_getTableName()); $sql->setValue('re_id', $this->getParentId()); $sql->setValue('name', $this->getName()); $sql->setValue('path', $this->getPath()); $sql->setValue('hide', $this->isHidden()); if ($this->getId() !== null) { $sql->addGlobalUpdateFields(); $sql->setWhere('id=' . $this->getId() . ' LIMIT 1'); return $sql->update(); } else { $sql->addGlobalCreateFields(); return $sql->insert(); } }
/** * Ändert den Status des Artikels * * @param int $article_id Id des Artikels die gelöscht werden soll * @param int $clang Id der Sprache * @param int|null $status Status auf den der Artikel gesetzt werden soll, oder NULL wenn zum nächsten Status weitergeschaltet werden soll * * @return array Ein Array welches den status sowie eine Fehlermeldung beinhaltet */ function rex_articleStatus($article_id, $clang, $status = null) { global $REX, $I18N; $success = false; $message = ''; $artStatusTypes = rex_articleStatusTypes(); $GA = new rex_sql(); $GA->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article where id='{$article_id}' and clang={$clang}"); if ($GA->getRows() == 1) { // Status wurde nicht von außen vorgegeben, // => zyklisch auf den nächsten Weiterschalten if (!$status) { $newstatus = ($GA->getValue('status') + 1) % count($artStatusTypes); } else { $newstatus = $status; } $EA = new rex_sql(); $EA->setTable($REX['TABLE_PREFIX'] . "article"); $EA->setWhere("id='{$article_id}' and clang={$clang}"); $EA->setValue('status', $newstatus); $EA->addGlobalUpdateFields(); if ($EA->update()) { $message = $I18N->msg('article_status_updated'); rex_deleteCacheArticle($article_id, $clang); // ----- EXTENSION POINT $message = rex_register_extension_point('ART_STATUS', $message, array('id' => $article_id, 'clang' => $clang, 'status' => $newstatus)); $success = true; } else { $message = $EA->getError(); } } else { $message = $I18N->msg("no_such_category"); } return array($success, $message); }