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'); } }
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; }
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 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"]; } } }
function a724_generatePathnamesFromTable($params) { $debug = false; $sql = new rex_sql(); $results = $sql->getArray('SELECT article_id, url_table, url_table_parameters FROM rex_a724_frau_schultze WHERE url_table != "" AND url_table_parameters != ""'); $URLPATH = array(); if ($sql->getRows() >= 1) { a724_deletePathnamesFromTable(); foreach ($results as $result) { if (is_array($result) && count($result) > 0) { $path = rex_getUrl($result['article_id']) . '/'; $path = str_replace('.html', '', $path); $table = $result['url_table']; $params = unserialize($result['url_table_parameters']); $col_name = $params[$table][$table . "_name"]; $col_id = $params[$table][$table . "_id"]; // Daten zum Aufbau der Urls holen $sqlu = new rex_sql(); $sqlu->setDebug($debug); $res = $sqlu->getArray('SELECT ' . $col_name . ' AS name, ' . $col_id . ' AS id FROM ' . $table); if ($sqlu->getRows() >= 1) { // Urls in die Datenbank schreiben $sqli = new rex_sql(); $sqli->setDebug($debug); foreach ($res as $re) { $table_path = $path . strtolower(rex_parse_article_name($re['name'])) . '.html'; $table_id = $re['id']; $URLPATH[$result['url_table']][$table_id] = $table_path; $sqli->setTable('rex_a724_frau_schultze'); $sqli->setValue('article_id', $result['article_id']); $sqli->setValue('status', '1'); $sqli->setValue('url_table', $result['url_table']); $sqli->setValue('name', $table_path); $sqli->insert(); } } } } } rex_put_file_contents(A724_URL_TABLE_PATHLIST, "<?php\n\$URLPATH = " . var_export($URLPATH, true) . ";\n"); }
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; }
$AART->setValue('name', $article_name); $AART->setValue('catname', $category_name); // TODO Neue noch nicht verwendete Datenbankspalten // $AART->setValue('attributes', $category_attributes); $AART->setValue('attributes', ''); $AART->setValue('clang', $key); $AART->setValue('re_id', $category_id); $AART->setValue('prior', $Position_New_Article); $AART->setValue('path', $KATPATH); $AART->setValue('startpage', 0); $AART->setValue('status', 0); $AART->setValue('template_id', $template_id); // TODO hier Update + Createfields? $AART->addGlobalCreateFields(); $AART->addGlobalUpdateFields(); if ($AART->insert()) { // ----- PRIOR 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; }
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; }
} $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 { $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';
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) { $err_msg .= $I18N->msg('setup_044'); } } if ($err_msg == '') { $checkmodus = 5; $send = ''; }
/** * @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(); } }
/** * 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; }
$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; $REX['ADDON']['installmsg']['auth'] = $error; }
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() == ''; }
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(); } }
/** * @param $from * @param $to * @return bool */ public static function copyLanguageData($from, $to) { global $REX; $sql = new rex_sql(); $sql->setQuery('SELECT * FROM `' . $REX['TABLE_PREFIX'] . 'global_settings` WHERE `clang` = ' . (int) $from); for ($i = 1; $i <= $sql->getRows(); $i++) { $save = new rex_sql(); $save->setTable($REX['TABLE_PREFIX'] . 'global_settings'); $save->setValues($sql->getRow()); $save->setValue('clang', $to); return $save->insert(); } return false; }
} // Daten wieder in den Rohzustand versetzen, da für serialize()/unserialize() // keine Zeichen escaped werden dürfen for ($i = 1; $i < count($ctypes) + 1; $i++) { $ctypes[$i] = stripslashes($ctypes[$i]); } $TPL = new rex_sql(); $TPL->setTable($REX['TABLE_PREFIX'] . "template"); $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);
function saveMedia($FILE, $rex_file_category, $FILEINFOS) { global $REX; $FILENAME = $FILE['name']; $FILESIZE = $FILE['size']; $FILETYPE = $FILE['type']; $NFILENAME = ""; $message = ''; // ----- neuer filename und extension holen $NFILENAME = strtolower(preg_replace("/[^a-zA-Z0-9.\\-\$\\+]/", "_", $FILENAME)); if (strrpos($NFILENAME, ".") != "") { $NFILE_NAME = substr($NFILENAME, 0, strlen($NFILENAME) - (strlen($NFILENAME) - strrpos($NFILENAME, "."))); $NFILE_EXT = substr($NFILENAME, strrpos($NFILENAME, "."), strlen($NFILENAME) - strrpos($NFILENAME, ".")); } else { $NFILE_NAME = $NFILENAME; $NFILE_EXT = ""; } // ---- ext checken $ERROR_EXT = array(".php", ".php3", ".php4", ".php5", ".phtml", ".pl", ".asp", ".aspx", ".cfm"); if (in_array($NFILE_EXT, $ERROR_EXT)) { $NFILE_NAME .= $NFILE_EXT; $NFILE_EXT = ".txt"; } $picext = array(".jpg", ".gif", ".jpeg", ".png"); if (!in_array($NFILE_EXT, $picext)) { $RETURN = FALSE; $RETURN['ok'] = FALSE; return $RETURN; } $NFILENAME = $NFILE_NAME . $NFILE_EXT; // ----- datei schon vorhanden -> namen aendern -> _1 .. if (file_exists($REX['MEDIAFOLDER'] . "/{$NFILENAME}")) { for ($cf = 1; $cf < 1000; $cf++) { $NFILENAME = $NFILE_NAME . "_{$cf}" . "{$NFILE_EXT}"; if (!file_exists($REX['MEDIAFOLDER'] . "/{$NFILENAME}")) { break; } } } // ----- dateiupload $upload = true; if (!@move_uploaded_file($FILE['tmp_name'], $REX['MEDIAFOLDER'] . "/{$NFILENAME}")) { if (!@copy($FILE['tmp_name'], $REX['MEDIAFOLDER'] . "/{$NFILENAME}")) { $message .= "move file {$FILENAME} failed | "; $ok = 0; $upload = false; } } if ($upload) { @chmod($REX['MEDIAFOLDER'] . "/{$NFILENAME}", $REX['FILEPERM']); // get widht height $size = @getimagesize($REX['MEDIAFOLDER'] . "/{$NFILENAME}"); $FILESQL = new rex_sql(); // $FILESQL->debugsql=1; $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); $FILESQL->setValue("createdate", time()); $FILESQL->setValue("createuser", "system"); $FILESQL->setValue("updatedate", time()); $FILESQL->setValue("updateuser", "system"); $FILESQL->insert(); $ok = 1; } $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 $RETURN; }
$del->setQuery("DELETE FROM " . $REX['TABLE_PREFIX'] . "module_action WHERE module_id='{$modul_id}'"); $message = $I18N->msg("module_deleted"); } } if ($function == 'add' or $function == 'edit') { if (isset($save) and $save == 'ja') { $modultyp = new rex_sql(); 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) {
$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 { $warning = $I18N->msg('pool_kat_not_deleted'); } } elseif ($media_method == 'add_file_cat') { $db = new rex_sql(); $db->setTable($REX['TABLE_PREFIX'] . 'file_category'); $db->setValue('name', rex_request('catname', 'string')); $db->setValue('re_id', rex_request('cat_id', 'int')); $db->setValue('path', rex_request('catpath', 'string')); $db->addGlobalCreateFields(); $db->addGlobalUpdateFields(); if ($db->insert()) { $info = $I18N->msg('pool_kat_saved', stripslashes(rex_request('catname'))); } else { $warning = $db->getError(); } } $link = 'index.php?page=mediapool&subpage=categories&cat_id='; $textpath = '<li> : <a href="' . $link . '0">Start</a></li>'; $cat_id = rex_request('cat_id', 'int'); if ($cat_id == 0 || !($OOCat = OOMediaCategory::getCategoryById($cat_id))) { $OOCats = OOMediaCategory::getRootCategories(); $cat_id = 0; $catpath = "|"; } else { $OOCats = $OOCat->getChildren(); // TODO getParentTree() verwenden
/** * Stores a search result in the cache. * * @param string $_result * @param array $_indexIds * * @return bool */ function cacheSearch($_result, $_indexIds) { $sql = new rex_sql(); $sql->setTable($this->tablePrefix . '587_searchcache'); $sql->setValues(array('hash' => $this->cacheHash($this->searchString), 'returnarray' => $sql->escape($_result))); $sql->insert(); $lastId = $sql->getLastId(); $Ainsert = array(); foreach ($_indexIds as $id) { $Ainsert[] = sprintf('(%d,%d)', $id, $lastId); } $sql2 = new rex_sql(); return $sql2->setQuery(sprintf('INSERT INTO `%s` (index_id,cache_id) VALUES %s;', $this->tablePrefix . '587_searchcacheindex_ids', implode(',', $Ainsert))); }
/** * 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_saveMedia($FILE, $rex_file_category, $FILEINFOS, $userlogin = null, $doSubindexing = TRUE) { 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; } $isFileUpload = isset($FILE['tmp_name']); if ($isFileUpload) { $doSubindexing = TRUE; } $FILENAME = $FILE['name']; $FILESIZE = $FILE['size']; $FILETYPE = $FILE['type']; $NFILENAME = rex_mediapool_filename($FILENAME, $doSubindexing); $message = ''; // ----- alter/neuer filename $srcFile = $REX['MEDIAFOLDER'] . '/' . $FILENAME; $dstFile = $REX['MEDIAFOLDER'] . '/' . $NFILENAME; $success = true; if ($isFileUpload) { if (!@move_uploaded_file($FILE['tmp_name'], $dstFile)) { $message .= $I18N->msg("pool_file_movefailed"); $success = false; } } else { if (!@rename($srcFile, $dstFile)) { $message .= $I18N->msg("pool_file_movefailed"); $success = false; } } if ($success) { @chmod($dstFile, $REX['FILEPERM']); // get widht height $size = @getimagesize($dstFile); if ($FILETYPE == '' && isset($size['mime'])) { $FILETYPE = $size['mime']; } $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); if ($size) { $FILESQL->setValue('width', $size[0]); $FILESQL->setValue('height', $size[1]); } $FILESQL->setValue('category_id', $rex_file_category); $FILESQL->addGlobalCreateFields($userlogin); $FILESQL->addGlobalUpdateFields($userlogin); $FILESQL->insert(); $message .= $I18N->msg("pool_file_added"); } $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; if ($size) { $RETURN['width'] = $size[0]; $RETURN['height'] = $size[1]; } // ----- EXTENSION POINT if ($success) { rex_register_extension_point('MEDIA_ADDED', '', $RETURN); } return $RETURN; }
// 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 man die entsprechenden Formulare erstellen kann. </p> <ul> <li><a href="index.php?page=xform&subpage=module&install=1">Neues Modul mit der XForm installieren</a></li> <?php
$del->setQuery("DELETE FROM " . $REX['TABLE_PREFIX'] . "module_action WHERE module_id='{$modul_id}'"); $info = $I18N->msg("module_deleted"); } } if ($function == 'add' or $function == 'edit') { if ($save == '1') { $modultyp = new rex_sql(); 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(); if ($IMOD->insert()) { $info = $I18N->msg('module_added'); } else { $warning = $IMOD->getError(); } } 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);
/** * @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(); } }
/** * 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(); }
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; }
} } // userperm_media if (isset($userperm_media)) { foreach ($userperm_media as $_perm) { $perm .= '#media[' . $_perm . ']'; } } // userperm_module if (isset($userperm_module)) { foreach ($userperm_module as $_perm) { $perm .= '#module[' . $_perm . ']'; } } $adduser->setValue('rights', $perm . '#'); $adduser->insert(); $user_id = 0; unset($FUNC_ADD); $message = $I18N->msg('user_added'); } else { if ($useradmin == 1) { $adminchecked = ' checked="checked"'; } if ($allcats == 1) { $allcatschecked = ' checked="checked"'; } if ($allmcats == 1) { $allmcatschecked = ' checked="checked"'; } // userperm_all foreach ($userperm_all as $_perm) {
/** * @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; }