function generate() { global $cfg_client, $perm, $cms_db, $db, $auth; //check dependencies if ($this->config['idlang'] < 1 || $this->config['is_generated']) { return false; } if (sf_factoryObjectExistsInCache('PAGE', 'Catinfos')) { $this->catinfos = sf_factoryGetObjectCache('PAGE', 'Catinfos'); } else { $this->catinfos = sf_factoryGetObject('PAGE', 'Catinfos'); $this->catinfos->setIdlang($this->config['idlang']); $this->catinfos->generate(); } $catinfos = $this->catinfos->getCatinfoDataArrayByRef(); //check perm: user have perm to see pages with the protected flag //$sql_hide_protected_pages = ( $perm->have_perm(2, 'area_frontend', 0) || $this->config['check_frontend_prems']) ? '': 'AND (F.online & 0x04) = 0x00'; $sql_hide_protected_pages = ''; if ($auth->auth['uid'] == 'nobody') { $sql_hide_protected_pages = 'AND (F.online & 0x04) = 0x00'; } //check perms for user with advanced frontend perms $check_frontendperms_in_page = $auth->auth['uid'] != 'nobody' && $this->config['check_frontend_prems']; $check_backendperms_in_page = $this->config['check_backend_prems']; $sql = "SELECT\n\t\t\t\t\tD.idcatside, D.idcat, D.sortindex, D.is_start,\n\t\t\t\t\tE.idside,\n\t\t\t\t\tIF ((F.online & 0x03) = 0x01 OR ((F.online & 0x02) = 0x02 AND (UNIX_TIMESTAMP(NOW()) BETWEEN F.start AND F.end)) ,'1' ,'0') AS online,\n\t\t\t\t\tIF ( ((F.online & 0x04) = 0x04) ,'1' ,'0') AS protected,\n\t\t\t\t\tF.title, F.start, F.rewrite_use_automatic, F.rewrite_url, F.end, F.idsidelang, F.created, F.lastmodified,\n\t\t\t\t\tF.idtplconf, F.is_https\n\t\t\t\tFROM\n\t\t\t\t\t" . $cms_db['cat_side'] . " D LEFT JOIN\n\t\t\t\t\t" . $cms_db['side'] . " E USING(idside) LEFT JOIN\n\t\t\t\t\t" . $cms_db['side_lang'] . " F USING(idside)\n\t\t\t\tWHERE \n\t\t\t\t\tD.idcat IN (" . implode(',', array_keys($catinfos)) . ")\n\t\t\t\t\tAND F.idlang = '" . $this->config['idlang'] . "'\n\t\t\t\t\t{$sql_hide_protected_pages}\n\t\t\t\t\tORDER BY D.idcatside"; //try cache - on success jump out with return true $cache_key = $sql . '|' . $this->config['link_extra_urlstring'] . '|' . implode(',', $perm->get_group()) . '|' . $this->config['check_frontend_prems'] . '|' . $this->config['check_backend_prems']; if ($data = $this->cache->getCacheEntry($cache_key)) { $this->data = $data; return true; } $rs = $this->db->Execute($sql); if ($rs === false) { return true; } while (!$rs->EOF) { $idcatside_loop = $rs->fields['idcatside']; $idcat_loop = $rs->fields['idcat']; if ($check_frontendperms_in_page) { if ($rs->fields['protected'] == 1 && !$perm->have_perm(18, 'frontendpage', $idcatside_loop, $idcat_loop)) { $rs->MoveNext(); continue; } } if ($check_backendperms_in_page) { if (!$perm->have_perm(17, 'side', $idcatside_loop, $idcat_loop)) { $rs->MoveNext(); continue; } } $link_loop = 'cms://idcatside=' . $idcatside_loop; $this->data['data'][$idcatside_loop] = array('link' => $link_loop, 'idcat' => $idcat_loop, 'sortindex' => $rs->fields['sortindex'], 'idside' => $rs->fields['idside'], 'name' => $rs->fields['title'], 'created' => $rs->fields['created'], 'lastmodified' => $rs->fields['lastmodified'], 'online' => $rs->fields['online'], 'idsidelang' => $rs->fields['idsidelang'], 'is_start' => $rs->fields['is_start'], 'idtplconf' => $rs->fields['idtplconf'], 'rewrite_use_automatic' => $rs->fields['rewrite_use_automatic'], 'rewrite_url' => $rs->fields['rewrite_url'], 'user_protected' => $rs->fields['user_protected']); $rs->MoveNext(); } //insert cache $this->cache->insertCacheEntry($cache_key, $this->data, 'frontend', 'tree'); return true; }
function &getLevelorderIter() { $i =& sf_factoryGetObject('UTILS', 'ArrayIterator'); $i->loadByRef($this->data['items_levelorder']); return $i; }
function sf_exception($priority, $message, $param = array()) { return sf_factoryGetObject('LIB', 'SefrengoException', null, array($priority, $message, $param)); }
function copy($username, $password) { if ($username == '' || $password == '') { return false; } $copy = sf_factoryGetObject('ADMINISTRATION', 'User'); $copy->data = $this->data; $copy->data['sql']['users']['user_id'] = false; $copy->setUsername($username); $copy->setPassword($password); $copy->dirty = true; $copy->dirty_groups = true; $copy->save(); return $copy; }
/** * Creates a LogItem and decides where to save (database or file) or show directly * @return bool * @param int $priority * @param string $type * @param string $message * @param array $param */ function _handleLog($priority, $type, $message, $param) { //priority must be a number and type is required if (!is_numeric($priority) || empty($type)) { return false; } $priokey = array_search($priority, $this->priorities); $merged = array(); //add defined type and priority if (is_array($this->config['storage'][$type][$priokey])) { $merged = array_merge($merged, $this->config['storage'][$type][$priokey]); } //add wildcard type for defined priority if (is_array($this->config['storage']['*'][$priokey])) { $merged = array_merge($merged, $this->config['storage']['*'][$priokey]); } //add wildcard priority for defined type if (is_array($this->config['storage'][$type]['*'])) { $merged = array_merge($merged, $this->config['storage'][$type]['*']); } //add wildcard priority and type if (is_array($this->config['storage']['*']['*'])) { $merged = array_merge($merged, $this->config['storage']['*']['*']); } //remove duplicate entries $unique = array_unique($merged); //print_r($unique); //is there any output medium to log if (count($unique) > 0) { //create logitem $logitem = sf_factoryGetObject('ADMINISTRATION', 'LogItem'); $logitem->setIsBackend($this->config['is_backend']); if (!empty($this->config['client'])) { $logitem->setClient($this->config['client']); } $logitem->setCreated(time()); $logitem->setPriority($priority); $logitem->setPriorityName($priokey); $logitem->setType($type); $logitem->setMessage($message); if (!empty($param)) { $logitem->setParam($param); } if (!empty($this->config['client'])) { $logitem->setClient($this->config['client']); } //print_r($logitem); foreach ($unique as $outputmedium) { //do not add defined type and priority listed in the substract array -> continue to next item if (is_array($this->config['storage_substract'][$type][$priokey]) && in_array($outputmedium, $this->config['storage_substract'][$type][$priokey])) { //echo "do not add: ".$type." - ".$priokey." - ".$outputmedium."<br />\n"; continue; //do not add wildcard type for defined priority listed in the substract array -> continue to next item } else { if (is_array($this->config['storage_substract']['*'][$priokey]) && in_array($outputmedium, $this->config['storage_substract']['*'][$priokey])) { //echo "do not add: ".$type." - ".$priokey." - ".$outputmedium."<br />\n"; continue; //do not add wildcard priority for defined type listed in the substract array -> continue to next item } else { if (is_array($this->config['storage_substract'][$type]['*']) && in_array($outputmedium, $this->config['storage_substract'][$type]['*'])) { //echo "do not add: ".$type." - ".$priokey." - ".$outputmedium."<br />\n"; continue; //do not add wildcard priority and type listed in the substract array -> continue to next item } else { if (is_array($this->config['storage_substract']['*']['*']) && in_array($outputmedium, $this->config['storage_substract']['*']['*'])) { //echo "do not add: ".$type." - ".$priokey." - ".$outputmedium."<br />\n"; continue; //save the item } else { //echo "add: ".$type." - ".$priokey." - ".$outputmedium."<br />\n"; //switch where to storage the item switch ($outputmedium) { case "database": $return = $this->_saveLogItemToDB($logitem); break; case "logfile": $return = $this->_saveLogItemToFile($logitem); break; case "screen": $return = $this->_displayLogItem($logitem); break; } } } } } } } else { $return = false; } return $return; }
/** * @return obj|boolen new cat object or false */ function ©($target_idcat, $title = '', $options = array()) { global $cfg_cms, $perm; //option values are: default, yes, no //special: 'set_startflag': if_first //'set_online' (default|yes|no) default is copy flag from source //'set_copy' (default|yes|no) default is copy flag from source //'set_startflag' (default|from_source) default set the startflag if page in category haven't a valid startpage, // from_source copys flag from source //'perms' bool (true|false) $options_default = array('set_online' => 'default', 'set_protected' => 'default', 'set_startflag' => 'from_source', 'perms' => true); $options = array_merge($options_default, $options); $target_idcat = (int) $target_idcat; $return = false; if ($target_idcat < 0) { return $return; } $catinfos = sf_factoryGetObjectCache('PAGE', 'Catinfos'); //copy rootcat $cat_copy = sf_factoryGetObject('PAGE', 'Cat'); $cat_copy->data = $this->data; $cat_copy->data['sql']['cat_lang']['idcatlang'] = false; $cat_copy->data['sql']['cat_lang']['idcat'] = false; $cat_copy->data['sql']['cat']['idcat'] = false; $cat_copy->data['sql']['cat']['parent'] = $target_idcat; $cat_copy->data['sql']['cat']['sortindex'] = false; //name if ($title != '') { $cat_copy->data['sql']['cat_lang']['name'] = $title; } else { $title = $cat_copy->data['sql']['cat_lang']['name']; } //online $visible = $cat_copy->data['sql']['cat_lang']['visible']; //print_r($options); //echo $visible.'<br>'; if ($options['set_online'] == 'yes') { $visible = $visible | 0x1; } else { if ($options['set_online'] == 'no') { $visible = $visible & 0xfe; } } //echo $visible.'<br>'; //protected if ($options['set_protected'] == 'yes') { $visible = $visible | 0x4; } else { if ($options['set_protected'] == 'no') { $visible = $visible & 0xfb; } } $cat_copy->data['sql']['cat_lang']['visible'] = $visible; //set langprefix on other langs then the default lang $cat_copy->_set_langprefix_on_save_if_new = true; $cat_copy->dirty = true; $cat_copy->save(); //copy templates $copy_idtplconf = $this->_copyTemplateConfig($this->getIdcat(), $cat_copy->getIdcat()); //echo "$target_idcat $title";exit; $cat_copy->data['sql']['cat_lang']['idtplconf'] = $copy_idtplconf; $cat_copy->dirty = true; //rewrite url include_once $cfg_cms['path_base'] . $cfg_cms['path_backend_rel'] . "inc/fnc.mod_rewrite.php"; rewriteGenerateMapping(); $rewrite_url = rewriteGenerateUrlString($title); $rewrite_url = rewriteMakeUniqueStringForLang('idcat', $cat_copy->getIdcat(), $rewrite_url, '', $cat_copy->getParent()); $cat_copy->data['sql']['cat_lang']['rewrite_use_automatic'] = 1; $cat_copy->data['sql']['cat_lang']['rewrite_alias'] = $rewrite_url; $cat_copy->save(); //copy rootcat perms if ($options['perms']) { $arr_langs = $this->_getLangInfoArray(); foreach ($arr_langs['order'] as $current_lang) { $perm->xcopy_perm($this->getIdcat(), 'cat', $cat_copy->getIdcat(), 'cat', 4294967295.0, 0, $current_lang, false); $perm->xcopy_perm($this->getIdcat(), 'frontendcat', $cat_copy->getIdcat(), 'frontendcat', 4294967295.0, 0, $current_lang, false); } } //copy pages of rotcat include_once $cfg_cms['path_base'] . $cfg_cms['path_backend_rel'] . "inc/fnc.con.php"; $arr_idcatsides = $this->_getIdcatsides($this->getIdcat()); foreach ($arr_idcatsides as $v) { //echo '<br>---X'.$cat_copy->getIdcat(); con_copy_page($this->_getIdclient(), $this->getIdlang(), $v, '', $cat_copy->getIdcat(), $options['perms'], $options); } //copy childcats $cattree = sf_factoryGetObjectCache('PAGE', 'Cattree'); $cattree->setIdclient($this->_getIdclient()); $cattree->generate(); $this_idcat = $this->getIdcat(); $new_parent = $cat_copy->getIdcat(); $arr_childs = $cattree->getChilds($this_idcat); //print_r($arr_childs); foreach ($arr_childs as $v) { $cat_child = sf_factoryGetObject('PAGE', 'Cat'); if ($cat_child->loadByIdcatIdlang($v, $this->getIdlang())) { $cat_child->copy($new_parent, '', $options); } } return $cat_copy; }
function auth_validatelogin() { global $challengefail, $challenge, $doublelogin, $username, $password, $cms_db, $sess; $sf_user =& sf_factoryGetObject('ADMINISTRATION', 'User'); $sf_user->setUpdateLastmodifiedMeta(false); $sf_user->loadByUsernamePassword($username, $password, true); unset($sf_user); if (isset($username)) { $this->auth['uname'] = trim($username); } elseif ($this->nobody) { $uid = $this->auth['uname'] = $this->auth['uid'] = 'nobody'; return $uid; } if (isset($challenge)) { if (!$sess->challenge_me($challenge)) { $challengefail = true; // Event fire_event('login_challenge_fail', array('username' => $username, 'password' => $password, 'challenge' => $challenge)); return false; } } // User aus der Datenbank suchen set_magic_quotes_gpc($username); $this->db->query("\n SELECT DISTINCT salutation,\n\t\t\t\t\tstreet,\n\t\t\t\t\tstreet_alt,\n\t\t\t\t\tzip,\n\t\t\t\t\tlocation,\n\t\t\t\t\tstate,\n\t\t\t\t\tcountry,\n\t\t\t\t\tphone,\n\t\t\t\t\tfax,\n\t\t\t\t\tmobile,\n\t\t\t\t\tpager,\n\t\t\t\t\thomepage,\n\t\t\t\t\tbirthday,\n\t\t\t\t\tfirm,\n\t\t\t\t\tposition,\n\t\t\t\t\tfirm_street,\n\t\t\t\t\tfirm_street_alt,\n\t\t\t\t\tfirm_zip,\n\t\t\t\t\tfirm_location,\n\t\t\t\t\tfirm_state,\n\t\t\t\t\tfirm_country,\n\t\t\t\t\tfirm_email,\n\t\t\t\t\tfirm_phone,\n\t\t\t\t\tfirm_fax,\n\t\t\t\t\tfirm_mobile,\n\t\t\t\t\tfirm_pager,\n\t\t\t\t\tfirm_homepage,\n\t\t\t\t\tcomment, A.user_id, password, A.name, surname, email, C.name AS groupname, C.description \n\t\t\t\t\tFROM \n\t\t\t\t\t\t" . $cms_db['users'] . " A \n\t\t\t\t\t\tLEFT JOIN " . $cms_db['users_groups'] . " B USING(user_id) \n\t\t\t\t\t\tLEFT JOIN " . $cms_db['groups'] . " C USING(idgroup) \n\t\t\t\t\t\tLEFT JOIN " . $cms_db['perms'] . " D USING(idgroup) \n\t\t\t\t\tWHERE \n\t\t\t\t\t\tA.username='******' \n\t\t\t\t\t\tAND A.password='******' \n\t\t\t\t\t\tAND A.is_active='1' \n\t\t\t\t\t\tAND C.is_active='1' \n\t\t\t\t\t\tAND ((D.type='cms_access' AND D.id = 'area_backend' AND D.perm = 1) OR C.is_sys_admin='1') LIMIT 0, 1\n\t\t\t\t"); if ($this->db->next_record()) { // Use Single Login if ($this->force_single_login) { if (!$sess->single_id($this->db->f('user_id'))) { $doublelogin = true; // Event fire_event('login_single_fail', array('username' => $username, 'password' => $password)); return false; } } // Event fire_event('login_success', array('uid' => $this->db->f('user_id'))); $this->auth['name'] = $this->db->f('name'); $this->auth['surname'] = $this->db->f('surname'); $this->auth['group_name'] = $this->db->f('groupname'); $this->auth['group_desc'] = $this->db->f('description'); $this->auth['email'] = $this->db->f('email'); $this->auth['salutation'] = $this->db->f('salutation'); $this->auth['street'] = $this->db->f('street'); $this->auth['street_alt'] = $this->db->f('street_alt'); $this->auth['zip'] = $this->db->f('zip'); $this->auth['location'] = $this->db->f('location'); $this->auth['state'] = $this->db->f('state'); $this->auth['country'] = $this->db->f('country'); $this->auth['phone'] = $this->db->f('phone'); $this->auth['fax'] = $this->db->f('fax'); $this->auth['mobile'] = $this->db->f('mobile'); $this->auth['pager'] = $this->db->f('pager'); $this->auth['homepage'] = $this->db->f('homepage'); $this->auth['birthday'] = $this->db->f('birthday'); $this->auth['firm'] = $this->db->f('firm'); $this->auth['position'] = $this->db->f('position'); $this->auth['firm_street'] = $this->db->f('firm_street'); $this->auth['firm_street_alt'] = $this->db->f('firm_street_alt'); $this->auth['firm_zip'] = $this->db->f('firm_zip'); $this->auth['firm_location'] = $this->db->f('firm_location'); $this->auth['firm_state'] = $this->db->f('firm_state'); $this->auth['firm_country'] = $this->db->f('firm_country'); $this->auth['firm_email'] = $this->db->f('firm_email'); $this->auth['firm_phone'] = $this->db->f('firm_phone'); $this->auth['firm_fax'] = $this->db->f('firm_fax'); $this->auth['firm_mobile'] = $this->db->f('firm_mobile'); $this->auth['firm_pager'] = $this->db->f('firm_pager'); $this->auth['firm_homepage'] = $this->db->f('firm_homepage'); $this->auth['comment'] = $this->db->f('comment'); // Use Single Login if ($this->force_single_login) { $sess->single_me($this->db->f('user_id')); } return $this->db->f('user_id'); } // Event fire_event('login_fail', array('username' => $username, 'password' => $password)); return false; }
$tmp['FORM_FIRM_COUNTRY'] = htmlspecialchars($firm_country, ENT_COMPAT, 'UTF-8'); $tmp['FORM_FIRM_EMAIL'] = htmlspecialchars($firm_email, ENT_COMPAT, 'UTF-8'); $tmp['FORM_FIRM_PHONE'] = htmlspecialchars($firm_phone, ENT_COMPAT, 'UTF-8'); $tmp['FORM_FIRM_FAX'] = htmlspecialchars($firm_fax, ENT_COMPAT, 'UTF-8'); $tmp['FORM_FIRM_MOBILE'] = htmlspecialchars($firm_mobile, ENT_COMPAT, 'UTF-8'); $tmp['FORM_FIRM_PAGER'] = htmlspecialchars($firm_pager, ENT_COMPAT, 'UTF-8'); $tmp['FORM_FIRM_HOMEPAGE'] = htmlspecialchars($firm_homepage, ENT_COMPAT, 'UTF-8'); $tmp['FORM_COMMENT'] = htmlspecialchars($comment, ENT_COMPAT, 'UTF-8'); if ($iduser > 0) { $iduser = (int) $iduser; $sf_user =& sf_factoryGetObject('ADMINISTRATION', 'User'); $sf_user->loadByIduser($iduser); $tmp['FORM_LAST_LOGIN'] = $sf_user->getCurrentLoginTimestamp() > 0 ? date($cfg_cms['FormatDate'], $sf_user->getCurrentLoginTimestamp()) . ' ' . date($cfg_cms['FormatTime'], $sf_user->getCurrentLoginTimestamp()) : '-'; $tmp['FORM_LAST_LOGIN_FAILED'] = $sf_user->getLastLoginFailedTimestamp() > 0 ? date($cfg_cms['FormatDate'], $sf_user->getLastLoginFailedTimestamp()) . ' ' . date($cfg_cms['FormatTime'], $sf_user->getLastLoginFailedTimestamp()) : '-'; $tmp['FORM_FAILED_COUNT'] = $sf_user->getFailedCount(); $sf_user2 =& sf_factoryGetObject('ADMINISTRATION', 'User'); $sf_user2->loadByIduser($sf_user->getLastmodifiedAuthor()); $tmp['FORM_LAST_MODIFIED'] = date($cfg_cms['FormatDate'], $sf_user->getLastmodifiedTimestamp()) . ' ' . date($cfg_cms['FormatTime'], $sf_user->getLastmodifiedTimestamp()) . ' von ' . $sf_user2->getUsername(); } else { $tmp['FORM_LAST_LOGIN'] = '******'; $tmp['FORM_LAST_LOGIN_FAILED'] = '-'; $tmp['FORM_FAILED_COUNT'] = 0; $tmp['FORM_LAST_MODIFIED'] = '-'; } } if (!is_array($group)) { $group['0'] = $idgroup; } $tmp['BUTTON_SUBMIT_VALUE'] = $cms_lang['gen_save']; $tmp['BUTTON_SUBMIT_TEXT'] = $cms_lang['gen_save_titletext']; $tmp['BUTTON_APPLY_VALUE'] = $cms_lang['gen_apply'];
// | along with this program write to the Free Software Foundation, Inc., | // | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | // | | // | This program is distributed in the hope that it will be useful, | // | but WITHOUT ANY WARRANTY; without even the implied warranty of | // | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | // | GNU General Public License for more details. | // | | // +----------------------------------------------------------------------+ // + Autor: $Author: holger $ // +----------------------------------------------------------------------+ // + Revision: $Revision: 375 $ // +----------------------------------------------------------------------+ // + Description: // +----------------------------------------------------------------------+ // + Changes: // +----------------------------------------------------------------------+ // + ToDo: // +----------------------------------------------------------------------+ // Event $_sf_userobj = sf_factoryGetObject('ADMINISTRATION', 'User'); $_sf_userobj->loadByIduser($auth->auth['uid']); $cms_log->info('user', 'logout_success'); fire_event('logout_success', $_sf_userobj); $auth->logout(); $tpl->loadTemplatefile('logout.tpl'); $tpl_vals['MESSAGE_THANKS'] = $cms_lang['logout_thanksforusingcms']; $tpl_vals['MESSAGE_LOGGED_OUT'] = $cms_lang['logout_youareloggedout']; $tpl_vals['MESSAGE_LOGIN_AGAIN'] = $cms_lang['logout_backtologin1'] . ' ' . $cms_lang['logout_backtologin2']; $tpl_vals['MESSAGE_LOGIN_LICENCE'] = $cms_lang['login_licence']; $tpl->setVariable($tpl_vals);
public function download($array, $filename, $options = array()) { $content = $this->getCsv($array, $options); $dl = sf_factoryGetObject('LIB', 'Download'); $dl->force($content, array('filename' => $filename, 'content-type' => 'text/x-comma-separated-values')); }
function SF_PAGE_Content($idtype) { $this->defaults['idtype'] = $idtype; $this->db =& sf_factoryGetObject('DATABASE', 'Ado'); }
function group_reset_existing_perms($idgroup, $idlang, $types_to_clean) { global $cms_db; $idgroup = (int) $idgroup; $idlang = (int) $idlang; if ($idgroup < 1 || $idlang < 1 || !is_array($types_to_clean)) { return false; } $db = sf_factoryGetObject('DATABASE', 'Ado'); foreach ($types_to_clean as $k => $v) { $types_to_clean[$k] = addslashes($v); } $types = "'" . implode("', '", $types_to_clean) . "'"; $sql = "DELETE FROM \n\t\t\t\t" . $cms_db['perms'] . "\n\t\t\tWHERE \n\t\t\t\tidgroup = '{$idgroup}'\n\t\t\t\tAND idlang = '{$idlang}'\n\t\t\t\tAND type IN ({$types})\n\t\t\t\tAND id != '0'"; $db->Execute($sql); return true; }
} echo '<p><label for="cfg_client_' . $id . '_' . $line . '">' . $lang . '</label><br />'; echo '<input type="text" class="breit" name="cfg_client_' . $id . '_' . $line . '" id="cfg_client_' . $id . '_' . $line . '" value="' . $rs->fields['value'] . '" /></p>'; $rs->MoveNext(); } } } } echo '</form>'; $prev = "window.location.href='servertransfer.php?action=db';"; $next = "document.getElementById('form').submit();"; } break; case 'path-save': require_once $configfile; @($db = sf_factoryGetObject('DATABASE', 'Ado')); if ($db->ErrorNo() != 0) { echo ' <div id="header"> <h2>Datenbankfehler</h2> <p>Die Datenbank-Verbindung konnte nicht hergestellt werden.</p> </div> <div id="content"> <p>Die Datenbank meldete folgenden Fehler: <code>' . $db->ErrorMsg() . '</code></p>'; $prev = "window.location.href='servertransfer.php?action=path';"; $next = ""; } else { $updatesql = "TRUNCATE TABLE {$cms_db['code']};\n"; foreach ($cfg as $line => $proposal) { $value = $wq->getVal('cfg_' . $line, null); if (!is_null($value)) {
function _countAll() { global $cms_db; //load user object to access meta data $usermeta = sf_factoryGetObject('ADMINISTRATION', 'User'); $usermeta_fields = $usermeta->data['sql']['users']; //generate searchterm $this->conf['searchterm'] = trim($this->conf['searchterm']); $sql_search = ''; if ($this->conf['searchterm'] != '') { $term = mysql_real_escape_string($this->conf['searchterm']); $pieces = explode(' ', $term); $sql_search_array = array(); foreach ($pieces as $word) { if (trim($word) == '') { continue; } $sql_search_array_single = array(); foreach ($usermeta_fields as $field => $default) { array_push($sql_search_array_single, 'U.' . $field . " LIKE '%" . $word . "%'"); } array_push($sql_search_array, ' ( ' . implode(' OR ', $sql_search_array_single) . ' ) '); } $sql_search = ' AND ' . implode(' AND ', $sql_search_array); } //userfilter $sql_userfilter = ''; if ($this->conf['userfilter']) { $sql_userfilter = " AND U.user_id IN (" . $this->conf['userfilter'] . ") "; } //hide admins $sql_hide_admins = ''; if ($this->conf['hide_admins']) { $adminids = implode(',', $this->_getAdminIds()); if ($adminids != '') { $sql_hide_admins = " AND U.user_id NOT IN (" . $adminids . ") "; } } //generate idgroup $sql_group = ''; $sgl_group_left = ''; if ($this->conf['idgroup'] > 0) { $sgl_group_left = "LEFT JOIN " . $cms_db['users_groups'] . " UG USING(user_id)"; $sql_group = " AND UG.idgroup = '" . $this->conf['idgroup'] . "' "; } else { if ($this->conf['idgroup'] == -1) { $sgl_group_left = "LEFT JOIN " . $cms_db['users_groups'] . " UG USING(user_id)"; $sql_group = " AND UG.idgroup IS NULL "; } } $sql = "SELECT DISTINCT COUNT(U.user_id) AS countme\n\t\t\t\tFROM\n\t\t\t\t\t" . $cms_db['users'] . " U\n\t\t\t\t\t{$sgl_group_left}\n\t\t\t\tWHERE\n\t\t\t\t\tU.user_id != '2'\n\t\t\t\t\t{$sql_userfilter}\n\t\t\t\t\t{$sql_hide_admins}\n\t\t\t\t\t{$sql_group}\n\t\t\t\t\t{$sql_search}"; $rs = $this->db->Execute($sql); if ($rs === false) { return false; } if ($rs->EOF) { return false; } $this->count_all = $rs->fields['countme']; return true; }
// User und Pager generieren $items_per_page = (int) $cfg_cms['paging_items_per_page'] > 0 ? $cfg_cms['paging_items_per_page'] : 10; $delta = 2; $uc =& sf_factoryGetObject('ADMINISTRATION', 'UserCollection'); $uc->setSearchterm($searchterm); $uc->setLimitMax($items_per_page); $uc->setLimitStart(($page - 1) * $items_per_page); $uc->setHideAdmins(!$perm->is_admin()); $uc->setOrder($order, $ascdesc); $uc->setIdgroup($idgroup); $uc->generate(); // fallback page does not exsist if ($uc->getCount() < 1 && $page > 1) { sf_header_redirect(sprintf($base_url, $order, $ascdesc) . '&searchterm=' . urldecode($searchterm) . '&page=1'); } $pager =& sf_factoryGetObject('GUI', 'Pager'); $pager->setTotalItems($uc->getCountAll()); $pager->setItemsPerPage($items_per_page); $pager->setDelta($delta); $pager->setCurrentPage($page); $pager->setExecludeVars(array('changepage1', 'changepage2')); $pager->generate(); $tmp['PAGER_LINKS'] = $pager->getLinks(); $tmp['CHANGEPAGE_CURRENT'] = $page; $tmp['CHANGEPAGE_MAX'] = $pager->getCountPages(); $tpl->setVariable($tmp); unset($tmp); // Aktionen $tpl->setCurrentBlock('SELECT_ACTIONLIST'); $tmp['ACTIONLIST_VALUE'] = 'user'; $tmp['ACTIONLIST_ENTRY'] = $cms_lang['user_action'];
public function download($array, $filename, $options = array()) { $content = $this->getIni($array, $options); $dl = sf_factoryGetObject('LIB', 'Download'); $dl->force($content, array('filename' => $filename, 'content-type' => 'text/text')); }
$perm->check(2, 'cat', $target_idcat); } $new_cat = $cat->copy($target_idcat, $title, array('set_online' => 'no')); if (isset($_POST['sf_apply'])) { header('Location:' . $sess->urlRaw("main.php?area=con_configcat&idcat=" . $new_cat->getIdcat() . "&idtplconf=" . $new_cat->getIdtplconf())); } else { header('Location:' . $sess->urlRaw("main.php?area=con&idcat=" . $new_cat->getIdcat() . "#sideanchor")); } exit; break; } include 'inc/inc.header.php'; $cattree = sf_factoryGetObject('PAGE', 'Cattree'); $cattree->setIdclient($client); $cattree->generate(); $catinfos = sf_factoryGetObject('PAGE', 'Catinfos'); $catinfos->setIdlang($lang); $catinfos->generate(); if ($perm->have_perm(2, 'area_con')) { $options = '<option value="0">Als Hauptordner</option>' . "\n"; } $hide = false; for ($iter = $cattree->getLevelorderIter(); $iter->valid(); $iter->next()) { $cid = $iter->current(); if ($cid == $idcat) { $hide = true; $hide_level = $cattree->getLevel($cid); continue; } if ($hide) { if ($cattree->getLevel($cid) <= $hide_level) {
function user_delete() { global $iduser; $iduser = (int) $iduser; $sf_user = sf_factoryGetObject('ADMINISTRATION', 'User'); $sf_user->loadByIduser($iduser); $sf_user->delete(); }
/** * Iterate through $config_fields and checks given validation clauses for every field. * If validation fails return the error string. * @param array $config_fields Configuration of all fields as array * @return string Error string set in $config_fields */ protected function _validateConfigFields($config_fields) { $validator = sf_factoryGetObject('LIB', 'Validation'); $error_string = ''; foreach ($config_fields as $k => $v) { //show if type exists if (!array_key_exists('type', $v) || !array_key_exists('validation', $v)) { continue; } //filter type switch ($v['type']) { case 'headline': case 'info': continue 2; break; } //assign value to check from formtype $item_val = ''; switch ($v['type']) { case 'infofield': case 'hidden': case 'text': case 'textarea': case 'cmslink': $item_val = $config_fields[$k]['val']; break; case 'checkbox': $item_val = $v['checked'] ? $config_fields[$k]['val'] : ''; break; case 'select': $item_val = $config_fields[$k]['selected']; break; case 'editor': if ($config_fields[$k]['editor_instance'] != null && $config_fields[$k]['editor_instance']->isEditorAvailable() == TRUE) { $item_val = $config_fields[$k]['editor_instance']->getValidationValue(); } break; } $v['title_replaced_lng'] = $this->lng->replaceLangInString($v['title'], $this->controller_cfg['ctr_name']); //run validation foreach ($v['validation'] as $k2 => $v2) { $v2['note_replaced_lng'] = $this->lng->replaceLangInString($v2['note'], $this->controller_cfg['ctr_name']); switch ($k2) { case 'required': if (!$validator->required($item_val)) { $error_string .= $v['title_replaced_lng'] . ': ' . $v2['note_replaced_lng'] . "<br />\n"; break 2; } default: if (method_exists($validator, $k2)) { if (array_key_exists('val', $v2)) { if (!$validator->orEmpty($k2, $item_val, $v2['val'])) { $error_string .= $v['title_replaced_lng'] . ': ' . $v2['note_replaced_lng'] . "<br />\n"; break 2; } } else { if (!$validator->orEmpty($k2, $item_val)) { $error_string .= $v['title_replaced_lng'] . ': ' . $v2['note_replaced_lng'] . "<br />\n"; break 2; } } } } } } return $error_string; }
function deleteChilds($type, $idlang, $idgroup, $idroot) { global $cms_db; $type = addslashes($type); $idlang = (int) $idlang; $idgroup = (int) $idgroup; $idroot = (int) $idroot; if (!in_array($type, array('folder')) || $idgroup < 1 || $idlang < 1 || $idroot < 1) { return false; } $arr_childdirs = $this->dtree->getChildsRecursive($idroot); if (count($arr_childdirs) < 1) { return false; } $childdirs = implode(',', $arr_childdirs); //delete directory perms $db =& sf_factoryGetObject('DATABASE', 'Ado'); $sql = "DELETE FROM \n\t\t\t\t\t" . $cms_db['perms'] . "\n\t\t\t\tWHERE \n\t\t\t\t\tidgroup = '{$idgroup}'\n\t\t\t\t\tAND idlang = '{$idlang}'\n\t\t\t\t\tAND type = '{$type}'\n\t\t\t\t\tAND id != '0'\n\t\t\t\t\tAND id IN ({$childdirs})"; $db->Execute($sql); //find files //fetch slavetype $slavetype = 'file'; //search in rootcat too $childdirs .= ',' . $idroot; $sql = "SELECT \n\t\t\t\t\tp.id\n\t\t\t\tFROM\n\t\t\t\t\t" . $cms_db['perms'] . " p\n\t\t\t\t\tLEFT JOIN " . $cms_db['upl'] . " u ON p.id = u.idupl\n\t\t\t\tWHERE\n\t\t\t\t\tu.iddirectory IN({$childdirs})\n\t\t\t\t\tAND p.idgroup = '{$idgroup}'\n\t\t\t\t\tAND p.idlang = '{$idlang}'\n\t\t\t\t\tAND p.type = '{$slavetype}'\n\t\t\t\t\tAND p.id != '0'"; $rs = $db->Execute($sql); if ($rs === false) { return false; } $arr_files = array(); while (!$rs->EOF) { array_push($arr_files, $rs->fields['id']); $rs->MoveNext(); } if (count($arr_files) < 1) { return true; } $sql = "DELETE FROM \n\t\t\t\t\t" . $cms_db['perms'] . "\n\t\t\t\tWHERE \n\t\t\t\t\tidgroup = '{$idgroup}'\n\t\t\t\t\tAND idlang = '{$idlang}'\n\t\t\t\t\tAND type = '{$slavetype}'\n\t\t\t\t\tAND id != '0'\n\t\t\t\t\tAND id IN (" . implode(',', $arr_files) . ")"; $db->Execute($sql); return true; }
function rewriteAutoForAll($idlang) { global $db, $cms_db; $idlang = (int) $idlang; rewriteGenerateMapping($idlang); $sf_catinfos =& sf_factoryGetObject('PAGE', 'Catinfos'); $sf_catinfos->setIdlang($idlang); $sf_catinfos->setCheckFrontendperms(false); $sf_catinfos->generate(); $catinfo_array =& $sf_catinfos->getCatinfoDataArrayByRef(); $sf_pageinfos =& sf_factoryGetObject('PAGE', 'Pageinfos'); $sf_pageinfos->setIdlang($idlang); $sf_pageinfos->setCheckFrontendperms(false); $sf_pageinfos->generate(); $pageinfo_array =& $sf_pageinfos->getPageinfoDataArrayByRef(); $sql = "UPDATE \n\t\t\t\t" . $cms_db['cat_lang'] . "\n\t\t\tSET \n\t\t\t\trewrite_alias = '' \n\t\t\tWHERE \n\t\t\t\tidlang='{$idlang}'\n\t\t\t\tAND rewrite_use_automatic = '1'"; $db->query($sql); foreach ($catinfo_array as $k => $v) { if ($v['rewrite_alias'] == '') { $string = rewriteGenerateUrlString($v['name']); $string = rewriteMakeUniqueStringForLang('idcat', $k, $string); rewriteSaveUrlString($idlang, 'idcat', $k, $string); } } $sql = "UPDATE \n\t\t\t\t" . $cms_db['side_lang'] . "\n\t\t\tSET \n\t\t\t\trewrite_url = ''\n\t\t\tWHERE \n\t\t\t\tidlang='{$idlang}'\n\t\t\t\tAND rewrite_use_automatic = '1'"; $db->query($sql); foreach ($pageinfo_array as $k => $v) { if ($v['rewrite_url'] == '') { $string = rewriteGenerateUrlString($v['name']); $string = rewriteMakeUniqueStringForLang('idcatside', $k, $string); rewriteSaveUrlString($idlang, 'idcatside', $k, $string); } } }
function &get() { $iter = sf_factoryGetObject('UTILS', 'ArrayIterator'); $iter->loadByRef($this->items); return $iter; }
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 user_delete() { global $db, $cms_db, $idgroup, $iduser; $iduser = (int) $iduser; $sql = "SELECT user_id FROM " . $cms_db['users'] . " WHERE user_id='{$iduser}'"; $db->query($sql); $db->next_record(); if ($db->f('user_id') == $iduser && $iduser > 2) { $sf_user =& sf_factoryGetObject('ADMINISTRATION', 'User'); $sf_user->loadByIduser($iduser); fire_event('user_delete', $sf_user->data); unset($sf_user); $sql = "DELETE FROM " . $cms_db['users_groups'] . " WHERE user_id='{$iduser}'"; $db->query($sql); if (!$db->affected_rows()) { $sql = "DELETE FROM " . $cms_db['users'] . " WHERE user_id='{$iduser}'"; $db->query($sql); $update_data = array($cms_db['cat_lang'], $cms_db['clients'], $cms_db['clients_lang'], $cms_db['content'], $cms_db['css'], $cms_db['directory'], $cms_db['filetype'], $cms_db['js'], $cms_db['lang'], $cms_db['mod'], $cms_db['side_lang'], $cms_db['tpl'], $cms_db['upl']); foreach ($update_data as $v) { $sql = "UPDATE " . $v . "\n\t\t\t\t\t\tSET author = 1\n\t\t\t\t\t\tWHERE author={$iduser}"; $db->query($sql); } } } }