function asd_news_addClang($params) { global $REX; $id = $params['id']; $name = $params['name']; $now = new DateTime(); $error = false; $sql = new rex_sql(); $sql->setQuery('SELECT * FROM `' . rex_asd_news_config::getTable() . '` WHERE `clang` = ' . $REX['START_CLANG_ID']); for ($i = 1; $i <= $sql->getRows(); $i++) { $save = new rex_sql(); $save->setTable(rex_asd_news_config::getTable()); $save->setValues($sql->getRow()); $save->setValue('clang', $id); $save->setValue('createdAt', $now->format('Y-m-d H:i:s')); $save->setValue('updatedAt', $now->format('Y-m-d H:i:s')); $save->setValue('publishedAt', '0000-00-00 00:00:00'); $save->setValue('createdBy', $REX['USER']->getValue('user_id')); $save->setValue('updatedBy', $REX['USER']->getValue('user_id')); $save->setValue('publishedBy', 0); $save->setValue('status', 0); unset($save->values['news_id']); if (!$save->insert()) { $error = $save->getError(); } } if ($error) { echo rex_warning('ASD News: Neuigkeiten in der Sprache "' . $name . '" konnten nicht angelegt werden<br />' . $error); } else { echo rex_info('ASD News: Neuigkeiten in der Sprache "' . $name . '" wurden angelegt'); } }
/** * 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>'; }
function rex_copyRevisionContent($article_id, $clang, $from_revision_id, $to_revision_id, $from_re_sliceid = 0, $to_revision_delete = FALSE) { global $REX; if ($to_revision_delete) { $dc = new rex_sql(); // $dc->debugsql = 1; $dc->setQuery('delete from ' . $REX['TABLE_PREFIX'] . 'article_slice where article_id=' . $article_id . ' and clang=' . $clang . ' and revision=' . $to_revision_id); } if ($from_revision_id == $to_revision_id) { return false; } $gc = new rex_sql(); // $gc->debugsql = 1; $gc->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article_slice where re_article_slice_id='{$from_re_sliceid}' and article_id='{$article_id}' and clang='{$clang}' and revision='{$from_revision_id}'"); if ($gc->getRows() == 1) { // letzt slice_id des ziels holen .. $glid = new rex_sql(); // $glid->debugsql = 1; $glid->setQuery("\n\t\t\t\t\tselect \n\t\t\t\t\t\tr1.id, r1.re_article_slice_id\n\t from \n\t\t\t\t\t\t" . $REX['TABLE_PREFIX'] . "article_slice as r1\n\t\t\t\t\tleft join " . $REX['TABLE_PREFIX'] . "article_slice as r2 on r1.id = r2.re_article_slice_id\n\t where \n\t\t\t\t\t\tr1.article_id = {$article_id} and r1.clang = {$clang} and \n\t\t\t\t\t\tr2.id is NULL and \n\t\t\t\t\t\tr1.revision='{$to_revision_id}';"); if ($glid->getRows() == 1) { $to_last_slice_id = $glid->getValue("r1.id"); } else { $to_last_slice_id = 0; } $ins = new rex_sql(); // $ins->debugsql = 1; $ins->setTable($REX['TABLE_PREFIX'] . "article_slice"); $cols = new rex_sql(); $cols->setquery("SHOW COLUMNS FROM " . $REX['TABLE_PREFIX'] . "article_slice"); for ($j = 0; $j < $cols->rows; $j++, $cols->next()) { $colname = $cols->getValue("Field"); if ($colname == "re_article_slice_id") { $value = $to_last_slice_id; } elseif ($colname == "revision") { $value = $to_revision_id; } elseif ($colname == "createdate") { $value = time(); } elseif ($colname == "updatedate") { $value = time(); } elseif ($colname == "createuser") { $value = $REX["USER"]->getValue("login"); } elseif ($colname == "updateuser") { $value = $REX["USER"]->getValue("login"); } else { $value = $gc->getValue($colname); } if ($colname != "id") { $ins->setValue($colname, $ins->escape($value)); } } $ins->insert(); // id holen und als re setzen und weitermachen.. rex_copyRevisionContent($article_id, $clang, $from_revision_id, $to_revision_id, $gc->getValue("id")); return true; } rex_generateArticle($article_id); return true; }
/** * 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 execute() { $subject_key = $this->action["elements"][2]; $body_key = $this->action["elements"][3]; $user_id_key = $this->action["elements"][4]; foreach ($this->elements_sql as $key => $value) { if ($subject_key == $key) { $subject = $value; } if ($body_key == $key) { $body = $value; } if ($user_id_key == $key) { $from_user_id = $value; } // echo "<br /> $key => $value"; } if ($subject == "" or $body == "" or $from_user_id == "") { return FALSE; } // User auslesen $gu = new rex_sql(); // $gu->debugsql = 1; // $gu->setQuery('select * from rex_com_user where id<>"'.$from_user_id.'" order by id'); $gu->setQuery('select * from rex_com_user order by id'); foreach ($gu->getArray() as $user) { $user_body = $body; $user_subject = $subject; $to_user_id = $user["id"]; // Empfaenger einbauen $in = new rex_sql(); // $in->debugsql = 1; $in->setTable("rex_com_message"); $in->setValue("user_id", $to_user_id); $in->setValue("from_user_id", $from_user_id); $in->setValue("to_user_id", $to_user_id); $in->setValue("subject", $user_subject); $in->setValue("body", $user_body); $in->setValue("create_datetime", time()); $in->insert(); /* $in = new rex_sql; // $in->debugsql = 1; $in->setTable("rex_com_message"); $in->setValue("user_id",$from_user_id); $in->setValue("from_user_id",$from_user_id); $in->setValue("to_user_id",$to_user_id); $in->setValue("subject",$user_subject); $in->setValue("body",$user_body); $in->setValue("create_datetime",time()); $in->insert(); */ rex_com_user::exeAction($to_user_id, "sendemail_newmessage", $user); } }
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; }
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 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(); } } } } }
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(); } }
$gm = new rex_sql(); $gm->setQuery('select * from rex_module where ausgabe LIKE "%' . $searchtext . '%"'); $module_id = 0; $module_name = ""; foreach ($gm->getArray() as $module) { $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 . '"'); } } ?>
function rex_medienpool_registerFile($physical_filename, $org_filename, $filename, $category_id, $title, $filesize, $filetype) { global $REX, $REX_USER; $abs_file = $REX['MEDIAFOLDER'] . '/' . $physical_filename; if (!file_exists($abs_file)) { return false; } if (empty($filesize)) { $filesize = filesize($abs_file); } if (empty($filetype) && function_exists('mime_content_type')) { $filetype = mime_content_type($abs_file); } @chmod($abs_file, $REX['FILEPERM']); $filename = rex_medienpool_filename($filename, false); $org_filename = strtolower($org_filename); // Ggf Alte Datei umbennen rename($abs_file, $REX['MEDIAFOLDER'] . '/' . $filename); $abs_file = $REX['MEDIAFOLDER'] . '/' . $filename; // get widht height $size = @getimagesize($abs_file); $FILESQL = new rex_sql(); // $FILESQL->debugsql=1; $FILESQL->setTable($REX['TABLE_PREFIX'] . "file"); $FILESQL->setValue('filename', $filename); $FILESQL->setValue('originalname', $org_filename); $FILESQL->setValue('category_id', $category_id); $FILESQL->setValue('title', $title); $FILESQL->setValue('filesize', $filesize); $FILESQL->setValue('filetype', $filetype); $FILESQL->setValue('width', $size[0]); $FILESQL->setValue('height', $size[1]); // TODO Hier Update + Create zugleich? $FILESQL->addGlobalUpdateFields(); $FILESQL->addGlobalCreateFields(); $FILESQL->insert(); return $FILESQL->getError() == ''; }
$err_msg .= ' '; } $err_msg .= $I18N->msg('setup_041'); } if ($err_msg == "") { $ga = new rex_sql(); $ga->setQuery("select * from " . $REX['TABLE_PREFIX'] . "user where login='******'"); if ($ga->getRows() > 0) { $err_msg .= $I18N->msg('setup_042'); } else { if ($REX['PSWFUNC'] != '') { $redaxo_user_pass = call_user_func($REX['PSWFUNC'], $redaxo_user_pass); } $user = new rex_sql(); // $user->debugsql = true; $user->setTable($REX['TABLE_PREFIX'] . 'user'); $user->setValue('name', 'Administrator'); $user->setValue('login', $redaxo_user_login); $user->setValue('psw', $redaxo_user_pass); $user->setValue('rights', '#admin[]#dev[]#import[]#stats[]#moveSlice[]#'); $user->addGlobalCreateFields('setup'); $user->setValue('status', '1'); if (!$user->insert()) { $err_msg .= $I18N->msg("setup_043"); } } } } else { $gu = new rex_sql(); $gu->setQuery("select * from " . $REX['TABLE_PREFIX'] . "user LIMIT 1"); if ($gu->getRows() == 0) {
function createTable($mifix = "", $data_table, $params = array(), $debug = FALSE) { // Tabelle erstellen wenn noch nicht vorhanden $c = rex_sql::factory(); $c->debugsql = $debug; $c->setQuery('CREATE TABLE IF NOT EXISTS `' . $data_table . '` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY );'); // Tabellenset in die Basics einbauen, wenn noch nicht vorhanden $c = new rex_sql(); $c->debugsql = $debug; $c->setQuery('DELETE FROM rex_xform_table where table_name="' . $data_table . '"'); $c->setTable('rex_xform_table'); $params["table_name"] = $data_table; if (!isset($params["status"])) { $params["status"] = 1; } if (!isset($params["name"])) { $params["name"] = 'Tabelle "' . $data_table . '"'; } if (!isset($params["prio"])) { $params["prio"] = 100; } if (!isset($params["search"])) { $params["search"] = 0; } if (!isset($params["hidden"])) { $params["hidden"] = 0; } if (!isset($params["export"])) { $params["export"] = 0; } foreach ($params as $k => $v) { $c->setValue($k, $v); } $c->insert(); return TRUE; }
if ($function == 'add') { // $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(); }
$message = $I18N->msg('category_moved'); ob_end_clean(); 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
// 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";
</div> </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");
rex_newArtPrio($category_id, $key, 0, $Position_New_Article); } 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();
/** * Erstellt eine Clang * * @param $id Id der Clang * @param $name Name der Clang */ function rex_addCLang($id, $name) { global $REX; $REX['CLANG'][$id] = $name; $content = ""; foreach ($REX['CLANG'] as $cur => $val) { $content .= "\$REX['CLANG']['{$cur}'] = \"{$val}\";\n"; } $file = $REX['INCLUDE_PATH'] . "/clang.inc.php"; rex_replace_dynamic_contents($file, $content); $add = new rex_sql(); $add->setQuery("select * from " . $REX['TABLE_PREFIX'] . "article where clang='0'"); $fields = $add->getFieldnames(); $adda = new rex_sql(); // $adda->debugsql = 1; for ($i = 0; $i < $add->getRows(); $i++) { $adda->setTable($REX['TABLE_PREFIX'] . "article"); foreach ($fields as $key => $value) { if ($value == 'pid') { echo ''; } else { if ($value == 'clang') { $adda->setValue('clang', $id); } else { if ($value == 'status') { $adda->setValue('status', '0'); } else { $adda->setValue($value, rex_addslashes($add->getValue($value))); } } } } $adda->insert(); $add->next(); } $add = new rex_sql(); $add->setQuery("insert into " . $REX['TABLE_PREFIX'] . "clang set id='{$id}',name='{$name}'"); // ----- EXTENSION POINT rex_register_extension_point('CLANG_ADDED', '', array('id' => $id, 'name' => $name)); rex_generateAll(); }
$previewstatus = rex_post('previewstatus', 'array'); $presavestatus = rex_post('presavestatus', 'array'); $postsavestatus = rex_post('postsavestatus', 'array'); $previewmode = 0; foreach ($previewstatus as $status) { $previewmode |= $status; } $presavemode = 0; foreach ($presavestatus as $status) { $presavemode |= $status; } $postsavemode = 0; foreach ($postsavestatus as $status) { $postsavemode |= $status; } $faction->setTable($REX['TABLE_PREFIX'] . 'action'); $faction->setValue('name', $name); $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 {
/** * @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(); } }
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(); } }
/** * 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(); } }
/** * 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_medienpool_saveMedia($FILE, $rex_file_category, $FILEINFOS, $userlogin = null) { global $REX, $I18N; $rex_file_category = (int) $rex_file_category; $gc = new rex_sql(); $gc->setQuery('SELECT * FROM ' . $REX['TABLE_PREFIX'] . 'file_category WHERE id=' . $rex_file_category); if ($gc->getRows() != 1) { $rex_file_category = 0; } $FILENAME = $FILE['name']; $FILESIZE = $FILE['size']; $FILETYPE = $FILE['type']; $NFILENAME = rex_medienpool_filename($FILENAME); $message = ''; // ----- neuer filename $dstFile = $REX['MEDIAFOLDER'] . '/' . $NFILENAME; // ----- dateiupload $upload = true; if (!@move_uploaded_file($FILE['tmp_name'], $dstFile) && !@copy($FILE['tmp_name'], $dstFile)) { $message .= $I18N->msg("pool_file_movefailed"); $ok = 0; $upload = false; } if ($upload) { chmod($dstFile, $REX['FILEPERM']); // get widht height $size = @getimagesize($dstFile); $FILESQL = new rex_sql(); $FILESQL->setTable($REX['TABLE_PREFIX'] . 'file'); $FILESQL->setValue('filetype', $FILETYPE); $FILESQL->setValue('title', $FILEINFOS['title']); $FILESQL->setValue('filename', $NFILENAME); $FILESQL->setValue('originalname', $FILENAME); $FILESQL->setValue('filesize', $FILESIZE); $FILESQL->setValue('width', $size[0]); $FILESQL->setValue('height', $size[1]); $FILESQL->setValue('category_id', $rex_file_category); // TODO Create + Update zugleich? $FILESQL->addGlobalCreateFields($userlogin); $FILESQL->addGlobalUpdateFields($userlogin); $FILESQL->insert(); $ok = 1; $message .= $I18N->msg("pool_file_added"); } $RETURN['title'] = $FILEINFOS['title']; $RETURN['width'] = $size[0]; $RETURN['height'] = $size[1]; $RETURN['type'] = $FILETYPE; $RETURN['msg'] = $message; $RETURN['ok'] = $ok; $RETURN['filename'] = $NFILENAME; $RETURN['old_filename'] = $FILENAME; return $RETURN; }
function getGuestbook($user_id, $aid, $params = array()) { global $REX; $MY = FALSE; if (is_object($REX['COM_USER']) && $REX['COM_USER']->getValue("rex_com_user.id") == $user_id) { $MY = TRUE; } $u = new rex_sql(); $u->setQuery("select * from rex_com_user where id=" . $user_id); if ($u->getRows() != 1) { return ""; } // ***** ADD MESSAGE if (is_object($REX['COM_USER']) && $_REQUEST["add_message"] != "") { $text = $_REQUEST["text"]; if ($text == "") { $errormessage = '<p class="warning" colspan=2>Es wurde keine Nachricht eingetragen !</p>'; } else { $addmsgsql = new rex_sql(); $addmsgsql->setTable("rex_com_guestbook"); $addmsgsql->setValue("user_id", $user_id); $addmsgsql->setValue("from_user_id", $REX['COM_USER']->getValue("id")); $addmsgsql->setValue("text", $text); $addmsgsql->setValue("create_datetime", time()); $addmsgsql->insert(); if ($user_id != $REX['COM_USER']->getValue('rex_com_user.id')) { rex_com_user::exeAction($user_id, "sendemail_guestbook", array("user_id" => $REX['COM_USER']->getValue('rex_com_user.id'), "firstname" => $REX['COM_USER']->getValue('rex_com_user.firstname'), "name" => $REX['COM_USER']->getValue('rex_com_user.name'), "login" => $REX['COM_USER']->getValue('rex_com_user.login'), "to_user_id" => $u->getValue('rex_com_user.id'), "to_firstname" => $u->getValue('rex_com_user.firstname'), "to_name" => $u->getValue('rex_com_user.name'), "to_login" => $u->getValue('rex_com_user.login'))); } } } elseif ($MY && $_REQUEST["delete_message"] != "") { $msg_id = (int) $_REQUEST["msg_id"]; if ($msg_id == 0) { $errormessage = '<p class="warning">Es wurde keine Nachricht ausgewählt!</p>'; } else { $addmsgsql = new rex_sql(); // $addmsgsql->debugsql = 1; $addmsgsql->setQuery('delete from rex_com_guestbook where id=' . $msg_id . ' and user_id="' . $REX['COM_USER']->getValue("id") . '"'); } } // ***** SHOW MESSAGES $guestsql = new rex_sql(); $guestsql->debugsql = 0; $guestsql->setQuery("SELECT * \n\t\t\tFROM rex_com_guestbook \n\t\t\tLEFT JOIN rex_com_user ON rex_com_guestbook.from_user_id=rex_com_user.id \n\t\t\tWHERE rex_com_guestbook.user_id='" . $user_id . "' \n\t\t\tORDER BY rex_com_guestbook.create_datetime desc"); if ($guestsql->getRows() <= 0) { $echo .= '<p class="com-whitebox">Kein Gästebucheintrag vorhanden !</p>'; } else { $cl = ""; for ($i = 0; $i < $guestsql->getRows(); $i++) { // $cl $echo .= ' <div class="com-guestbook"> <div class="com-image"> <p class="image">' . rex_com_showUser($guestsql, "image") . '</p> </div> <div class="com-content"> <div class="com-content-2"> <div class="com-content-name"> <p><span class="color-1">' . rex_com_showUser($guestsql, "name") . ', ' . rex_com_showUser($guestsql, "city", "", FALSE) . '</span> <br />' . rex_com_formatter($guestsql->getValue("rex_com_guestbook.create_datetime"), 'datetime') . ' </p> </div> <p><b>' . nl2br(htmlspecialchars($guestsql->getValue("rex_com_guestbook.text"))) . '</b></p>'; if ($guestsql->getValue("rex_com_user.motto") != '') { $echo .= '<p>Motto: ' . $guestsql->getValue("rex_com_user.motto") . '</p>'; } if ($MY) { $link_params = array_merge($params, array("user_id" => $user_id, "delete_message" => 1, "msg_id" => $guestsql->getValue("rex_com_guestbook.id"))); $echo .= '<br /><p class="link-button"><a href="' . rex_getUrl($aid, '', $link_params) . '"><span>Löschen</span></a></p>'; } $echo .= '</div></div> <div class="clearer"> </div> </div>'; if ($cl == "") { $cl = ' class="alternative"'; } else { $cl = ""; } $guestsql->next(); } } // $echo .= '</tr></table>'; if (is_object($REX['COM_USER'])) { $echo .= '<div id="rex-form" class="com-guestbook-form spcl-bgcolor"> <form action="' . $REX["FRONTEND_FILE"] . '" method="post" id="guestbookform"> <h2>Einen neuen Eintrag schreiben</h2> ' . $errormessage . ' <input type="hidden" name="add_message" value="1" /> <input type="hidden" name="user_id" value="' . $user_id . '" /> <input type="hidden" name="article_id" value="' . $aid . '" /> '; foreach ($params as $k => $v) { $echo .= '<input type="hidden" name="' . $k . '" value="' . htmlspecialchars($v) . '" />'; } $echo .= ' <p class="formtextarea"> <label for="f-message">Nachricht:</label> <textarea id="f-message" name="text" cols="40" rows="4" /></textarea> </p> <p class="link-save"> <a href="javascript:void(0);" onclick="document.getElementById(\'guestbookform\').submit()"><span>Speichern</span></a></p> </p> <div class="clearer"> </div> </form> </div>'; } return $echo; }
$func = ''; } 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 = ''; }
/** * @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(); } }
function createTable($mifix = '', $data_table, $params = array(), $debug = false) { // Tabelle erstellen wenn noch nicht vorhanden $c = rex_sql::factory(); $c->debugsql = $debug; $c->setQuery('CREATE TABLE IF NOT EXISTS `' . $data_table . '` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY );'); // Tabellenset in die Basics einbauen, wenn noch nicht vorhanden $c = new rex_sql(); $c->debugsql = $debug; $c->setQuery('DELETE FROM ' . rex_xform_manager_table::table() . ' where table_name="' . $data_table . '"'); $c->setTable(rex_xform_manager_table::table()); $params['table_name'] = $data_table; if (!isset($params['status'])) { $params['status'] = 1; } if (!isset($params['name'])) { $params['name'] = 'Tabelle "' . $data_table . '"'; } if (!isset($params['prio'])) { $params['prio'] = 100; } if (!isset($params['search'])) { $params['search'] = 0; } if (!isset($params['hidden'])) { $params['hidden'] = 0; } if (!isset($params['export'])) { $params['export'] = 0; } foreach ($params as $k => $v) { $c->setValue($k, $v); } $c->insert(); return true; }