function con_edit_save_content($idsidelang, $container, $number, $idtype, $typenumber, $value) { global $db, $auth, $cms_db, $lang, $cfg_client, $cfg_client; $author = $auth->auth['uid']; // strip trailingslashes if they occur in internal links $value = preg_replace('#cms://(idcatside|idcat)=(\\d+)/#U', 'cms://\\1=\\2', $value); set_magic_quotes_gpc($value); // Eintrag in die 'con_content'-Tabelle $sql = "SELECT value FROM {$cms_db['content']} WHERE idsidelang='{$idsidelang}' AND container='{$container}' AND number='{$number}' AND idtype='{$idtype}' AND typenumber='{$typenumber}'"; $db->query($sql); // Steht schon Content in der Datenbank? if ($db->next_record()) { // hat sich was geändert? if (addslashes($db->f('value')) != $value) { // interne Bildpfade relativ machen $in = array("!href=(\\\\)?[\"\\']" . $cfg_client['htmlpath'] . "([^\"\\'\\\\]*)(\\\\)?[\"\\']!i", "!src=(\\\\)?[\"\\']" . $cfg_client['htmlpath'] . "([^\"\\'\\\\]*)(\\\\)?[\"\\']!i"); $out = array("href=\\1\"\\2\\3\"", "src=\\1\"\\2\\3\""); $value = preg_replace($in, $out, $value); // wurde überhaupt was eingegeben? if ($value != '') { $sql = "UPDATE {$cms_db['content']} SET value='{$value}', author='{$author}', lastmodified='" . time() . "' WHERE idsidelang='{$idsidelang}' AND container='{$container}' AND number='{$number}' AND idtype='{$idtype}' AND typenumber='{$typenumber}'"; $db->query($sql); $change = 'true'; } else { $sql = "DELETE FROM " . $cms_db['content'] . " WHERE idsidelang='{$idsidelang}' AND container='{$container}' AND number='{$number}' AND idtype='{$idtype}' AND typenumber='{$typenumber}'"; $db->query($sql); $change = 'true'; } } } else { if ($value != '') { // neuer Eintrag? $sql = "INSERT INTO {$cms_db['content']} (idsidelang, container, number, idtype, typenumber, value, author, created, lastmodified) VALUES('{$idsidelang}', '{$container}', '{$number}', '{$idtype}', '{$typenumber}', '{$value}', '{$author}', '" . time() . "', '" . time() . "')"; $db->query($sql); $change = 'true'; } } if ($change) { // Änderungsdatum aktualisieren $sql = "UPDATE {$cms_db['side_lang']} SET lastmodified='" . time() . "', author='{$author}' WHERE idsidelang='{$idsidelang}'"; $db->query($sql); // Seitenkopien suchen $sql = "SELECT idcatside FROM {$cms_db['side_lang']} A LEFT JOIN {$cms_db['cat_side']} B USING(idside) WHERE A.idsidelang='{$idsidelang}'"; $db->query($sql); while ($db->next_record()) { $list[] = $db->f('idcatside'); } // Status der Seite auf geändert stellen change_code_status($list, '1', 'idcatside'); unset($change); } }
function con_config_side_save($idcat, $idside, $idtpl, $idtplconf, $idsidelang, $idcatside, $idcatnew, $author, $title, $meta_keywords, $summary, $online, $user_protected, $view, $created, $lastmodified, $startdate, $starttime, $enddate, $endtime, $meta_author, $meta_description, $meta_robots, $meta_redirect_time, $meta_redirect, $meta_redirect_url, $rewrite_use_automatic, $rewrite_url, $idlay, $use_redirect = true) { global $db, $client, $sess, $perm, $lang, $cms_db, $cfg_client, $cms_lang, $val_ct; global $idcatside, $idside; if (!(is_numeric($idtpl) || is_int($idtpl))) { return; } if (!(is_numeric($idtplconf) || is_int($idtplconf))) { return; } if (empty($title)) { $title = $cms_lang['con_defaulttitle']; } $rewrite_use_automatic = $rewrite_use_automatic > 0 ? 1 : 0; rewriteGenerateMapping(); if ($rewrite_use_automatic) { $rewrite_url = rewriteGenerateUrlString($title); $rewrite_url = rewriteMakeUniqueStringForLang('idcatside', $idcatside, $rewrite_url); } else { $rewrite_url = rewriteGenerateUrlString($rewrite_url, true); } // idcatside für rechte $idcatside_for_rights = $idcatside; $idcat_for_rights = $idcat; if (!is_array($idcatnew)) { $idcatnew['0'] = $idcat; } $start = createDate($startdate, $starttime); $end = createDate($enddate, $endtime); $meta_redirect = $meta_redirect == '1' ? '1' : '0'; $meta_redirect_url = $meta_redirect_url == 'http://' || $meta_redirect_url == '' ? '' : $meta_redirect_url; set_magic_quotes_gpc($title); set_magic_quotes_gpc($summary); set_magic_quotes_gpc($meta_author); set_magic_quotes_gpc($meta_description); set_magic_quotes_gpc($meta_keywords); set_magic_quotes_gpc($meta_robots); set_magic_quotes_gpc($meta_redirect_url); if (empty($idside)) { //echo "new page";exit; // Seite erstellen $sql = "INSERT INTO {$cms_db['side']} (idclient) VALUES ('{$client}')"; $db->query($sql); // neue idside suchen $idside = mysql_insert_id(); // Seite in alle Ordner einfügen foreach ($idcatnew as $value) { //sortindex suchen $sql = "SELECT MAX(sortindex) AS sortindex FROM " . $cms_db['cat_side'] . " WHERE idcat='{$value}'"; $db->query($sql); if ($db->next_record()) { $sortindex = $db->f('sortindex') + 1; } else { $sortindex = 1; } $sql = "SELECT * FROM {$cms_db['cat_side']} WHERE idcat='{$value}' AND is_start='1'"; $db->query($sql); $is_start = $db->next_record() ? '0' : '1'; $sql = "INSERT INTO {$cms_db['cat_side']} (idcat, idside, sortindex, is_start) VALUES ('{$value}', '{$idside}', '{$sortindex}', '{$is_start}')"; $db->query($sql); } // idcatside suchen $sql = "SELECT idcatside FROM {$cms_db['cat_side']} WHERE idside='{$idside}'"; $idcatside = array(); getIdList($sql, $idcatside, '', 'idcatside'); // für jede Sprache erstellen $a_languages = get_languages_by_client($client); foreach ($a_languages as $tmp_lang) { if ($tmp_lang == $lang) { $side_online = $online; $side_start = $start; $side_end = $end; } else { $side_online = 0; $side_start = time(); $side_end = time(); } //TODO Problems to update template in multilang pages $catobject =& sf_factoryGetObject('PAGE', 'Cat'); $catobject->loadByIdcatIdlang($idcatnew['0'], $tmp_lang); $cat_is_protected = $catobject->getIsProtected(); if ($cat_is_protected) { $side_online = $side_online | 0x4; } if ($tmp_lang == $lang) { $tmp_meta_description = $meta_description; $tmp_meta_keywords = $meta_keywords; $tmp_meta_robots = $meta_robots; } else { $cfg_lang = $val_ct->get_by_group('cfg_lang', $client, $tmp_lang); $tmp_meta_description = htmlentities($cfg_lang['meta_description'], ENT_COMPAT, 'UTF-8'); $tmp_meta_keywords = htmlentities($cfg_lang['meta_keywords'], ENT_COMPAT, 'UTF-8'); $tmp_meta_robots = htmlentities($cfg_lang['meta_robots'], ENT_COMPAT, 'UTF-8'); } $sql = 'INSERT INTO ' . $cms_db['side_lang']; $sql .= ' (idside, idlang, title, meta_keywords, summary, created, lastmodified, author, meta_redirect, meta_redirect_url,'; $sql .= ' user_protected, online, start, end, meta_author, meta_description, meta_robots, meta_redirect_time, rewrite_use_automatic, rewrite_url) '; $sql .= 'VALUES ('; $sql .= " '{$idside}', '{$tmp_lang}', '{$title}', '{$tmp_meta_keywords}', '{$summary}', '{$created}', '{$lastmodified}', '{$author}', "; $sql .= " '{$meta_redirect}', '{$meta_redirect_url}', '{$user_protected}', '{$side_online}', '{$side_start}', '{$side_end}', "; $sql .= " '{$meta_author}', '{$tmp_meta_description}', '{$tmp_meta_robots}', '{$meta_redirect_time}', '{$rewrite_use_automatic}', '{$rewrite_url}')"; $db->query($sql); } // idsidelang für die Templateerstellung raussuchen $sql = "SELECT idsidelang FROM " . $cms_db['side_lang'] . " WHERE idside='{$idside}'"; $tmp_idsidelang = array(); $affectedrows = getIdList($sql, $tmp_idsidelang, '', 'idsidelang'); //print_r($tmp_idsidelang);exit; // Template erstellen if ($affectedrows) { foreach ($tmp_idsidelang as $value) { con_config_tpl_save($idtpl, $idlay, '', $value, $idtplconf); } //exit; } // Seite für Frontend erzeugen if ($cfg_client['publish'] == '1') { foreach ($a_languages as $tmp_lang) { $sql = 'INSERT INTO ' . $cms_db['code'] . "(idlang, idcatside, changed) VALUES ('{$tmp_lang}', '" . $idcatside['0'] . "', '1')"; $db->query($sql); } } // Event fire_event('con_side_new', array('idside' => $idside, 'name' => $title)); // Content aus Cache löschen sf_factoryCallMethod('UTILS', 'DbCache', null, null, 'flushByGroup', array('frontend', 'content')); // Danach ins Frontend? // ermittle redirect-url if ($view) { $url_location = $sess->url($cfg_client['htmlpath'] . $cfg_client['contentfile'] . '?lang=' . $lang . '&idcatside=' . $idcatside['0'] . '&view=' . $view); } else { $url_location = $sess->url("main.php?area=con_editframe&idcatside=" . $idcatside['0']); } $idcatside = $idcatside['0']; } else { // handle $online-Angabe // 0 -> offline setzen // 1 -> online setzen // 2 -> zeitsteuerung setzen switch ((int) $online) { case 0: $change_online = 'online & 0xFC'; break; case 1: $change_online = '((online & 0xFC) | 0x01)'; break; case 2: $change_online = '((online & 0xFC) | 0x02)'; break; default: $change_online = '0'; break; } // update der 'side_lang' Tabelle $sql = 'UPDATE ' . $cms_db['side_lang'] . ' '; $sql .= 'SET'; $sql .= " title='{$title}', meta_keywords='{$meta_keywords}', summary='{$summary}', meta_redirect='{$meta_redirect}', "; $sql .= " meta_redirect_url='{$meta_redirect_url}', user_protected = '{$user_protected}', online = {$change_online}, start='{$start}', "; $sql .= " end='{$end}', meta_author='{$meta_author}', meta_description='{$meta_description}', meta_robots='{$meta_robots}', "; $sql .= " meta_redirect_time = '{$meta_redirect_time}', rewrite_use_automatic = '{$rewrite_use_automatic}', rewrite_url = '{$rewrite_url}' "; $sql .= 'WHERE idsidelang = ' . $idsidelang; $db->query($sql); // in welchem Ordner existiert die Seite? $sql = 'SELECT idcat FROM ' . $cms_db['cat_side'] . ' WHERE idside = ' . $idside; $tmp_idcat = array(); getIdList($sql, $tmp_idcat, 'idcat'); if (is_array($tmp_idcat)) { // Seite in neue Ordner einfügen foreach ($idcatnew as $value) { if (!in_array($value, $tmp_idcat)) { $sql = 'SELECT * FROM ' . $cms_db['cat_side'] . ' WHERE idcat = ' . $value . ' AND is_start = 1'; $db->query($sql); $is_start = $db->next_record() ? '0' : '1'; //sortindex suchen $sql = "SELECT MAX(sortindex) AS sortindex FROM " . $cms_db['cat_side'] . " WHERE idcat='{$value}'"; $db->query($sql); if ($db->next_record()) { $sortindex = $db->f('sortindex') + 1; } else { $sortindex = 1; } if ($value == $idcatnew['0'] && !in_array($idcat, $idcatnew)) { $sql = 'UPDATE ' . $cms_db['cat_side'] . ' '; $sql .= 'SET'; $sql .= ' idcat = ' . $value . ','; $sql .= ' sortindex = ' . $sortindex . ','; $sql .= ' is_start = ' . $is_start . ' '; $sql .= 'WHERE idcat = ' . $idcat; $sql .= ' AND idside = ' . $idside; $db->query($sql); if (in_array($idcat, $idcatnew)) { unset($tmp_idcat[$idcat]); } //alte kategorie neu sortieren if (!function_exists('con_reindex_page_sort')) { include_once 'inc/fnc.con.php'; } con_reindex_page_sort($idcat); } else { //sortindex suchen $sql = "SELECT MAX(sortindex) AS sortindex FROM " . $cms_db['cat_side'] . " WHERE idcat='{$value}'"; $db->query($sql); if ($db->next_record()) { $sortindex = $db->f('sortindex') + 1; } else { $sortindex = 1; } $sql = 'INSERT INTO ' . $cms_db['cat_side'] . ' '; $sql .= ' (idcat , idside , is_start, sortindex) '; $sql .= 'VALUES'; $sql .= " ({$value}, {$idside}, {$is_start}, {$sortindex}) "; $db->query($sql); } } } // Seite aus nicht benutzen Ordnern löschen // jb_todo: rechte löschen?? foreach ($tmp_idcat as $value) { if (!in_array($value, $idcatnew)) { // suche alle idcatsides, die nicht mehr existieren $sql = 'SELECT idcatside FROM ' . $cms_db['cat_side'] . " WHERE idcat='{$value}' AND idside='{$idside}'"; $db->query($sql); $db->next_record(); // lösche alte 'code' Einträge $sql = 'DELETE FROM ' . $cms_db['code'] . " WHERE idcatside='" . $db->f('idcatside') . "'"; $db->query($sql); // lösche alte 'cat_side' Einträge $sql = 'DELETE FROM ' . $cms_db['cat_side'] . " WHERE idside='{$idside}' AND idcat='{$value}'"; $db->query($sql); // falls kein Startartikel mehr vorhanden neuen setzen $sql = 'SELECT * FROM ' . $cms_db['cat_side'] . " WHERE idcat='{$value}' AND is_start='1'"; $db->query($sql); if (!$db->affected_rows()) { $sql = 'UPDATE ' . $cms_db['cat_side'] . " SET is_start = '1' WHERE idcat='{$value}' ORDER BY sortindex LIMIT 1"; $db->query($sql); } //sortindex neu sortieren if (!function_exists('con_reindex_page_sort')) { include_once 'inc/fnc.con.php'; } con_reindex_page_sort($value); // jb_todo: // lösche alte 'tpl_conf' Einträge // muß noch eingetragen werden //Event fire_event('get_unused_idcatside_by_save_side', array('idside' => $idside, 'idcat' => $value, 'idcatside' => $db->f('idcatside'))); } } } // Template konfigurieren $have_perm_save_configdata = $perm->have_perm(27, 'side', $idcatside_for_rights, $idcat_for_rights); // if ($idtplconf == '0' && $idtpl != '0') { // $sql = 'SELECT idsidelang FROM ' . $cms_db['side_lang'] . " WHERE idside = $idside"; // $tmp_idsidelang = array(); // $affected_rows = getIdList($sql, $tmp_idsidelang, '', 'idsidelang'); // //print_r($tmp_idsidelang);exit; // // // Template erstellen // if ($affected_rows) { // foreach ($tmp_idsidelang as $value) { // con_config_tpl_save($idtpl, $idlay, '', $value, $idtplconf, $have_perm_save_configdata); // } // } // } // else { con_config_tpl_save($idtpl, $idlay, '', $idsidelang, $idtplconf, $have_perm_save_configdata); // } // Rechte setzen if ($perm->have_perm(22, 'side', $idcatside_for_rights, $idcat_for_rights)) { global $backend_cms_gruppenids, $backend_cms_gruppenrechte, $backend_cms_gruppenrechtegeerbt, $backend_cms_gruppenrechteueberschreiben; $perm->set_group_rights('side', $idcatside_for_rights, $backend_cms_gruppenids, $backend_cms_gruppenrechte, $backend_cms_gruppenrechtegeerbt, $backend_cms_gruppenrechteueberschreiben, '', 0x7ffd0000, $idcat_for_rights, 0x7ffd0000); } if ($perm->have_perm(14, 'cat', $idcat_for_rights)) { global $frontend_cms_gruppenids, $frontend_cms_gruppenrechte, $frontend_cms_gruppenrechtegeerbt, $frontend_cms_gruppenrechteueberschreiben; $perm->set_group_rights('frontendpage', $idcatside_for_rights, $frontend_cms_gruppenids, $frontend_cms_gruppenrechte, $frontend_cms_gruppenrechtegeerbt, $frontend_cms_gruppenrechteueberschreiben, '', 68719476735.0, $idcat_for_rights, 4294967295.0); } // Codestatus ändern change_code_status($idcatside_for_rights, 1, 'idcatside'); // Event fire_event('con_side_edit', array('idside' => $idside, 'name' => $title)); // Content aus Cache löschen sf_factoryCallMethod('UTILS', 'DbCache', null, null, 'flushByGroup', array('frontend', 'content')); // ermittle redirect-url if ($view) { $url_location = $sess->url($cfg_client['htmlpath'] . $cfg_client['contentfile'] . '?lang=' . $lang . '&idcatside=' . $idcatside . '&view=' . $view); } else { $url_location = $sess->url('main.php?area=con'); } } // Cache-Group Frontend löschen sf_factoryCallMethod('UTILS', 'DbCache', null, null, 'flushByGroup', array('frontend')); if ($use_redirect) { redirect_page($url_location); } }
function mod_save($idmod_in, $name, $verbose, $description, $modversion, $modcat, $input, $output, $idclient, $repid = '', $sql_install = '', $sql_uninstall = '', $sql_update = '', $mod_rebuild_sql = false, $source_id = '0', $mod_no_wedding = false, $stripe = false, $mod_config_takeover = false) { global $db, $auth, $cms_db, $cfg_cms, $cms_lang, $cfg_client, $rep, $perm; global $idmod; //make global for header redirect $idmod = $idmod_in; // Eintrag in 'mod' Tabelle if (empty($name) || $name == '') { $name = $cms_lang['mod_defaultname']; } if (empty($modversion) || $modversion == '') { $modversion = '1.0'; } if ($stripe == 1) { $name = make_string_dump($name); $verbose = make_string_dump($verbose); $description = make_string_dump($description); $modversion = make_string_dump($modversion); $modcat = make_string_dump($modcat); $input = make_string_dump($input); $output = make_string_dump($output); } elseif ($stripe != 2) { set_magic_quotes_gpc($name); set_magic_quotes_gpc($verbose); set_magic_quotes_gpc($description); set_magic_quotes_gpc($modversion); set_magic_quotes_gpc($modcat); set_magic_quotes_gpc($input); set_magic_quotes_gpc($output); } $checked = ($err_i = $rep->mod_test(cms_stripslashes($input), $idmod)) || ($err_0 = $rep->mod_test(cms_stripslashes($output), $idmod)) ? '0' : '1'; $modverbose = $verbose == '-1' ? $name : $verbose; $mod_sql_uninstall = $sql_uninstall; $mod_sql_install = $sql_install; $sql_install = mysql_escape_string($rep->decode_sql($sql_install)); $sql_uninstall = mysql_escape_string($rep->decode_sql($sql_uninstall)); $sql_update = mysql_escape_string($rep->decode_sql($sql_update)); if ($mod_no_wedding == true) { $source_id = 0; $repositoryid = $rep->gen_new_mod($name); $update_source = ", source_id='0'"; } elseif ($source_id) { $repositoryid = $rep->gen_new_mod($name, true); } elseif ($repid == '') { $repositoryid = $rep->gen_new_mod($name); if ($errno = $rep->error(true)) { return $errno; } } else { $repositoryid = $rep->gen_new_mod($name, true); } if ($errno = $rep->error(true)) { return $errno; } elseif (empty($input) && empty($output)) { return '0424'; } if (!$idmod) { // Modul existiert noch nicht $sql = "INSERT INTO\r\n\t\t\t\t" . $cms_db['mod'] . "\r\n\t\t\t\t(name, description, version, cat, input, output, idclient, author, created, lastmodified,\r\n\t\t\t\trepository_id, install_sql, uninstall_sql, update_sql, source_id, verbose, checked)\r\n\t\t\t\tVALUES\r\n\t\t\t\t('{$name}', '{$description}', '{$modversion}', '{$modcat}', '{$input}', '{$output}', '{$idclient}',\r\n\t\t\t\t'" . $auth->auth['uid'] . "', '" . time() . "', '" . time() . "', '{$repositoryid}', '{$sql_install}', '{$sql_uninstall}', '{$sql_update}', '{$source_id}', '{$modverbose}', '{$checked}')"; $affect = $db->query($sql); if (!$affect || $affect < 1) { return '0400'; } $idmod = $last_id = $db->insert_id(); if ($mod_config_takeover == true) { $modul = $rep->mod_data($source_id, $idclient); mod_save_config($idmod, make_string_dump($modul['config'])); } // Event fire_event('mod_new', array('idmod' => $idmod, 'name' => $name)); } else { // hat sich das Modul geändert? $sql = "SELECT output FROM " . $cms_db['mod'] . " WHERE idmod='{$idmod}'"; $db->query($sql); $db->next_record(); $output_old = $db->f('output'); set_magic_quotes_gpc($output_old); //don't change verbose name by sql update if ($verbose == '-2') { $sql_verbose_name = ''; } else { $sql_verbose_name = "verbose = '{$modverbose}',"; } if ($output != $output_old) { $sql = "UPDATE " . $cms_db['mod'] . "\r\n\t\t\t\t\tSET\r\n\t\t\t\t\tname='{$name}', description='{$description}', version = '{$modversion}', cat = '{$modcat}',\r\n\t\t\t\t\tinput='{$input}', output='{$output}', author='" . $auth->auth['uid'] . "', lastmodified='" . time() . "',\r\n\t\t\t\t\tinstall_sql ='{$sql_install}', uninstall_sql ='{$sql_uninstall}', update_sql ='{$sql_update}' {$update_source}, repository_id = '{$repositoryid}', {$sql_verbose_name} checked = '{$checked}'\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\tidmod='{$idmod}'"; $db->query($sql); $change = 'true'; } else { $sql = "UPDATE " . $cms_db['mod'] . "\r\n\t\t\t\t\tSET\r\n\t\t\t\t\tname='{$name}', description='{$description}', version = '{$modversion}', cat = '{$modcat}', input='{$input}',\r\n\t\t\t\t\tauthor='" . $auth->auth['uid'] . "', lastmodified='" . time() . "', install_sql='{$sql_install}',\r\n\t\t\t\t\tuninstall_sql='{$sql_uninstall}', update_sql='{$sql_update}' {$update_source}, repository_id = '{$repositoryid}', {$sql_verbose_name} checked = '{$checked}'\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\tidmod='{$idmod}'"; $db->query($sql); } // Event fire_event('mod_edit', array('idmod' => $idmod, 'name' => $name)); } if ($idclient > 0 && $mod_sql_install != '' && $mod_rebuild_sql == true) { if ($mod_sql_uninstall != '') { $error = $rep->bulk_sql($mod_sql_uninstall); } if (!$error) { $error = $rep->bulk_sql($mod_sql_install); } if (!$error) { $sql = "UPDATE " . $cms_db['mod'] . " SET is_install='1', lastmodified='" . time() . "' WHERE idmod='{$idmod}'"; $db->query($sql); } // Event fire_event('mod_install_sql', array('idmod' => $idmod, 'name' => $name)); } if ($change) { // Status der 'code' Tabelle ändern $list = get_idtplconf_by_using_type($idmod, 'mod'); $list = get_idcode_by_idtplconf($list); change_code_status($list, '1'); unset($list); } // Rechte setzen if ($perm->have_perm('6', 'mod', $idmod)) { global $cms_gruppenids, $cms_gruppenrechte, $cms_gruppenrechtegeerbt, $cms_gruppenrechteueberschreiben; $perm->set_group_rights('mod', $idmod, $cms_gruppenids, $cms_gruppenrechte, $cms_gruppenrechtegeerbt, $cms_gruppenrechteueberschreiben, '', 0xafd); } return !$error ? '0412' : $error; }
function lay_edit_layout($idlay, $name, $description, $code, $doctype, $doctype_autoinsert, $idclient) { global $db, $client, $auth, $cms_db, $cfg_cms, $css, $js, $cms_lang, $cfg_client, $perm; // Eintrag in 'lay' Tabelle if ($name == '') { $name = $cms_lang['lay_defaultname']; } set_magic_quotes_gpc($name); set_magic_quotes_gpc($description); set_magic_quotes_gpc($code); // Layout existiert noch nicht - neu erzeugen if (!$idlay) { $sql = "INSERT INTO\n\t\t\t\t\t" . $cms_db['lay'] . "\n\t\t\t\t\t(name, description, deletable, code, doctype, doctype_autoinsert, idclient, author, created, lastmodified)\n\t\t\t\tVALUES\n\t\t\t\t\t('{$name}', '{$description}', '1', '{$code}', '{$doctype}', '{$doctype_autoinsert}', \n\t\t\t\t\t\t'{$idclient}', '" . $auth->auth['uid'] . "', '" . time() . "', '" . time() . "')"; $db->query($sql); // neue Layout-ID suchen $sql = "SELECT MAX(idlay) AS idlay FROM " . $cms_db['lay']; $db->query($sql); $db->next_record(); $idlay = $db->f('idlay'); // Event neues Layout fire_event('lay_new', array('idlay' => $idlay, 'name' => $name)); // Layout existiert - updaten } else { // hat sich das Layout geändert? $sql = "SELECT code FROM " . $cms_db['lay'] . " WHERE idlay='{$idlay}'"; $db->query($sql); $db->next_record(); $code_old = $db->f('code'); set_magic_quotes_gpc($code_old); $sql = "UPDATE " . $cms_db['lay'] . "\n\t\t\t\tSET\n\t\t\t\t\tname='{$name}', \n\t\t\t\t\tdescription='{$description}', \n\t\t\t\t\tcode='{$code}',\n\t\t\t\t\tdoctype='{$doctype}',\n\t\t\t\t\tdoctype_autoinsert='{$doctype_autoinsert}',\n\t\t\t\t\tauthor='" . $auth->auth['uid'] . "', lastmodified='" . time() . "'\n\t\t\t\tWHERE\n\t\t\t\t\tidlay='{$idlay}'"; $db->query($sql); $change = 'true'; //rechte setzen if ($perm->have_perm('6', 'lay', $idlay)) { global $cms_gruppenids, $cms_gruppenrechte, $cms_gruppenrechtegeerbt, $cms_gruppenrechteueberschreiben; $perm->set_group_rights('lay', $idlay, $cms_gruppenids, $cms_gruppenrechte, $cms_gruppenrechtegeerbt, $cms_gruppenrechteueberschreiben, '', 0xf5); } // Event fire_event('lay_edit', array('idlay' => $idlay, 'name' => $name)); } // welche CSS-Dateien werden benutzt? $sql = "SELECT B.idupl FROM {$cms_db['lay_upl']} A LEFT JOIN {$cms_db['upl']} B USING(idupl) LEFT JOIN {$cms_db['filetype']} C ON B.idfiletype=C.idfiletype WHERE idlay='{$idlay}' AND C.filetype='css'"; $db->query($sql); while ($db->next_record()) { $tmp_files['css'][] = $db->f('idupl'); } if (!is_array($tmp_files['css'])) { $tmp_files['css']['0'] = '0'; } if (!is_array($css)) { $css['0'] = '0'; } // benutzte CSS-Dateien in lay_upl schreiben foreach ($css as $value) { if (!in_array($value, $tmp_files['css'])) { if ($value != '0') { $sql = "INSERT INTO {$cms_db['lay_upl']} (idlay, idupl) VALUES ('{$idlay}', '{$value}')"; $db->query($sql); $change = 'true'; } } } // unbenutze CSS-Dateien aus lay_upl löschen foreach ($tmp_files['css'] as $value) { if (!in_array($value, $css)) { $sql = "DELETE FROM {$cms_db['lay_upl']} WHERE idupl='{$value}' AND idlay='{$idlay}'"; $db->query($sql); $change = 'true'; } } // welche JS-Dateien werden benutzt? $sql = "SELECT B.idupl FROM {$cms_db['lay_upl']} A LEFT JOIN {$cms_db['upl']} B USING(idupl) LEFT JOIN {$cms_db['filetype']} C ON B.idfiletype=C.idfiletype WHERE idlay='{$idlay}' AND C.filetype='js'"; $db->query($sql); while ($db->next_record()) { $tmp_files['js'][] = $db->f('idupl'); } if (!is_array($tmp_files['js'])) { $tmp_files['js']['0'] = '0'; } if (!is_array($js)) { $js['0'] = '0'; } // benutzte JS-Dateien in lay_upl schreiben foreach ($js as $value) { if (!in_array($value, $tmp_files['js'])) { if ($value != '0') { $sql = "INSERT INTO {$cms_db['lay_upl']} (idlay, idupl) VALUES ('{$idlay}', '{$value}')"; $db->query($sql); $change = 'true'; } } } // unbenutze JS-Dateien aus lay_upl löschen foreach ($tmp_files['js'] as $value) { if (!in_array($value, $js)) { $sql = "DELETE FROM {$cms_db['lay_upl']} WHERE idupl='{$value}' AND idlay='{$idlay}'"; $db->query($sql); $change = 'true'; } } if ($change) { // Status der 'code' Tabelle ändern $list = get_idtplconf_by_using_type($idlay, 'lay'); $list = get_idcode_by_idtplconf($list); change_code_status($list, '1'); unset($list); } return $idlay; }
function con_publish($id, $type = 'all') { global $db, $cms_db, $con_side, $con_tree, $perm, $idcat, $lang, $view, $sess, $idcatside, $cfg_client; switch ($type) { // diese Ordner publizieren case 'all': $tmp_list = con_deeper_categories($id, '7'); if (is_array($tmp_list)) { array_push($tmp_list, $id); } else { $tmp_list[] = $id; } foreach ($tmp_list as $id) { if (is_array($con_side[$id])) { foreach ($con_side[$id] as $side) { if ($perm->have_perm(23, 'side', $side['idcatside'], $idcat)) { $list[] = $side['idcatside']; unset($con_tree[$id]['status']); unset($con_side[$id][$side['idcatside']]['status']); } } } } break; // Seite publizieren // Seite publizieren case 'side': if ($perm->have_perm(23, 'side', $id, $idcat)) { $list[] = $id; unset($con_tree[$idcat]['status']); unset($con_side[$idcat][$id]['status']); $new_search = 'true'; } break; // alle Seiten dieses Ordners publizieren // alle Seiten dieses Ordners publizieren case 'cat': if (is_array($con_side[$id])) { foreach ($con_side[$id] as $side) { if ($perm->have_perm(23, 'side', $side['idcatside'], $idcat)) { $list[] = $side['idcatside']; unset($con_tree[$id]['status']); unset($con_side[$id][$side['idcatside']]['status']); } } } break; } change_code_status($list, '1', 'publish'); // Status neu einlesen if ($new_search) { $sql = "SELECT A.idcatside, idcat, changed FROM {$cms_db['cat_side']} A LEFT JOIN {$cms_db['code']} B USING(idcatside) WHERE B.idlang='{$lang}' AND changed='2' AND A.idcat='{$idcat}'"; $db->query($sql); while ($db->next_record()) { if ($perm->have_perm(23, 'side', $db->f('idcatside'), $db->f('idcat'))) { $con_side[$db->f('idcat')][$db->f('idcatside')]['status'] = 'true'; $con_tree[$db->f('idcat')]['status'] = 'true'; } } } // Cache-Group Frontend löschen sf_factoryCallMethod('UTILS', 'DbCache', null, null, 'flushByGroup', array('frontend')); // Danach ins Frontend? if ($view) { header('HTTP/1.1 302 Moved Temporarily'); header('Location:' . $sess->urlRaw($cfg_client['htmlpath'] . $cfg_client['contentfile'] . '?lang=' . $lang . '&idcatside=' . $idcatside . '&view=' . $view)); exit; } }
function flex2_set_val($value_name, $value, $offset) { $cfg = sf_api('LIB', 'Config'); $idcatside = $cfg->env('idcatside'); $mod = sf_api('LIB', 'Modinfo'); $pi = sf_api('LIB', 'Pageinfos'); $db = sf_api('LIB', 'Ado'); //Schauen, ob es den Wert schon gibt if ($offset == 0) { $offset = $mod->getEntryNr(); } $sql = "SELECT\r\n\t\t\t\t\t\t*\r\n\t\t\t\t FROM\r\n\t\t\t\t\t\t" . $cfg->db('content') . "\r\n\t\t\t\t WHERE\r\n\t\t\t\t\t\tidsidelang='" . $pi->getIdsidelang($idcatside) . "'\r\n\t\t\t\t\t\tAND container='" . $mod->getIdContainer() . "'\r\n\t\t\t\t\t\tAND number='" . $offset . "'\r\n\t\t\t\t\t\tAND idtype='{$value_name}'"; $rs = $db->Execute($sql); if ($rs !== FALSE) { //Es gibt den Wert schon -> wert aktuallisieren if (!$rs->EOF) { $sql = "UPDATE\r\n\t\t\t\t\t\t\t " . $cfg->db('content') . "\r\n\t\t\t\t\t\tSET\r\n\t\t\t\t\t\t\tvalue='{$value}'\r\n\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\tidsidelang='" . $pi->getIdsidelang($idcatside) . "'\r\n\t\t\t\t\t\t\tAND container='" . $mod->getIdContainer() . "'\r\n\t\t\t\t\t\t\tAND number='" . $offset . "'\r\n\t\t\t\t\t\t\tAND idtype='{$value_name}'"; } else { $sql = "INSERT INTO\r\n\t\t\t\t\t\t\t" . $cfg->db('content') . "\r\n\t\t\t\t\t\t\t(idsidelang, container, number, idtype, value)\r\n\t\t\t\t\t\tVALUES\r\n\t\t\t\t\t\t\t('" . $pi->getIdsidelang($idcatside) . "',\r\n\t\t\t\t\t\t\t'" . $mod->getIdContainer() . "',\r\n\t\t\t\t\t\t\t'" . $offset . "',\r\n\t\t\t\t\t\t\t'{$value_name}', '{$value}')"; } $db->Execute($sql); //Letzte Änderung Datum ändern! $sql = "UPDATE " . $cfg->db('side_lang') . "\r\n\t\t\t\t\tSET\r\n\t\t\t\t\t\tlastmodified='" . time() . "'\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\tidsidelang='" . $pi->getIdsidelang($idcatside) . "' "; $db->Execute($sql); //Cache löschen //Seite fürs frontend neu generieren, da sich ein Wert geändert hat change_code_status($idcatside, 1, 'idcatside'); } return "<br />Set_Val:" . $value_name . " -> " . $value . " at " . $offset . "</h3>"; }
protected function _updateSideLangAndCodestatus($idsidelang) { // update lastmodified $sql = "UPDATE \r\n\t\t\t\t" . $this->dbnames['side_lang'] . " \r\n\t\t\tSET \r\n\t\t\t\tlastmodified='" . time() . "', \r\n\t\t\t\tauthor='" . $this->cfg->auth('uid') . "' \r\n\t\t\tWHERE \r\n\t\t\t\tidsidelang='{$idsidelang}'"; $this->db->query($sql); // look up for clonepages $sql = "SELECT \r\n\t\t\t\t\tidcatside \r\n\t\t\t\tFROM \r\n\t\t\t\t\t" . $this->dbnames['side_lang'] . " A \r\n\t\t\t\t\tLEFT JOIN " . $this->dbnames['cat_side'] . " B USING(idside) \r\n\t\t\t\tWHERE \r\n\t\t\t\t\tA.idsidelang='{$idsidelang}'"; $this->db->query($sql); while ($this->db->next_record()) { $list[] = $this->db->f('idcatside'); } // change code status change_code_status($list, '1', 'idcatside'); }
function flex2_set_val($value_name, $value, $offset) { global $idcatside, $cms_db, $db, $con_side, $cms_mod; //Schauen, ob es den Wert schon gibt if ($offset == 0) { $offset = $cms_mod['modul']['id']; } $sql = "SELECT\r\n *\r\n FROM\r\n " . $cms_db['content'] . "\r\n WHERE\r\n idsidelang='" . $con_side[$idcatside]['idsidelang'] . "'\r\n AND container='" . $cms_mod['container']['id'] . "'\r\n AND number='" . $offset . "' \r\n AND idtype='{$value_name}'"; $db->query($sql); //Es gibt den Wert schon -> wert aktuallisieren if ($db->next_record()) { $sql = "UPDATE\r\n " . $cms_db['content'] . "\r\n SET\r\n value='{$value}'\r\n WHERE\r\n idsidelang='" . $con_side[$idcatside]['idsidelang'] . "'\r\n AND container='" . $cms_mod['container']['id'] . "'\r\n AND number='" . $offset . "' \r\n AND idtype='{$value_name}'"; } else { $sql = "INSERT INTO\r\n " . $cms_db['content'] . "\r\n (idsidelang, container, number, idtype, value)\r\n VALUES\r\n ('" . $con_side[$idcatside]['idsidelang'] . "',\r\n '" . $cms_mod['container']['id'] . "',\r\n '" . $offset . "',\r\n '{$value_name}', '{$value}')"; } $db->query($sql); //Letzte Aenderung Datum aendern! $sql = "UPDATE " . $cms_db['side_lang'] . " SET lastmodified='" . time() . "' WHERE idsidelang='" . $con_side[$idcatside]['idsidelang'] . "' "; $db->query($sql); //Cache loeschen //Seite fuers frontend neu generieren, da sich ein Wert geaendert hat change_code_status($idcatside, 1, 'idcatside'); return "<br />Set_Val:" . $value_name . " -> " . $value . " at " . $offset . "</h3>"; }
$sql = "UPDATE {$cms_db['content']} SET number=number-1 WHERE idsidelang='" . $con_side[$idcatside]['idsidelang'] . "' AND container='{$con_container}' AND number='" . ($entry + 1) . "'"; $db->query($sql); $sql = "UPDATE {$cms_db['content']} SET number='" . ($entry + 1) . "' WHERE idsidelang='" . $con_side[$idcatside]['idsidelang'] . "' AND container='{$con_container}' AND number='-1'"; $db->query($sql); } // Änderungsdatum aktualisieren $sql = "UPDATE {$cms_db['side_lang']} SET lastmodified='" . time() . "', author='" . $auth->auth['uid'] . "' WHERE idsidelang='" . $con_side[$idcatside]['idsidelang'] . "'"; $db->query($sql); // Seitenkopien suchen $sql = "SELECT idcatside FROM {$cms_db['side_lang']} A LEFT JOIN {$cms_db['cat_side']} B USING(idside) WHERE A.idsidelang='" . $con_side[$idcatside]['idsidelang'] . "'"; $db->query($sql); while ($db->next_record()) { $list[] = $db->f('idcatside'); } // Status der Seite auf geändert stellen change_code_status($list, '1', 'idcatside'); sf_header_redirect($con_side[$idcatside]['link'], true); } //Content bearbeiten if ($action == 'edit' || $action == 'saveedit' || $action == 'new') { // Formularelemente includieren include_once $cms_path . 'inc/fnc.type_forms.php'; $code .= '<head>' . "\n"; $code .= '<title>Sefrengo | Edit- Mode</title>' . "\n"; $code .= '<meta http-equiv="content-type" content="text/html; charset=' . $lang_charset . '" />' . "\n"; $code .= '<link rel="stylesheet" type="text/css" href="' . $cfg_cms['cms_html_path'] . 'tpl/' . $cfg_cms['skin'] . '/css/styles.css" />' . "\n"; $code .= '<link rel="stylesheet" type="text/css" href="' . $cfg_cms['cms_html_path'] . 'tpl/' . $cfg_cms['skin'] . '/css/dynCalendar.css" />' . "\n"; $code .= '<script type="text/javascript" src="' . $cfg_cms['cms_html_path'] . 'tpl/' . $cfg_cms['skin'] . '/js/dynCalendarBrowserSniffer.js"></script>' . "\n"; $code .= '<script type="text/javascript" src="' . $cfg_cms['cms_html_path'] . 'tpl/' . $cfg_cms['skin'] . '/js/dynCalendar.js"></script>' . "\n"; $code .= '<script type="text/javascript" src="' . $cfg_cms['cms_html_path'] . 'tpl/' . $cfg_cms['skin'] . '/js/standard.js"></script>' . "\n"; //disable selector content sync