Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 function &getLevelorderIter()
 {
     $i =& sf_factoryGetObject('UTILS', 'ArrayIterator');
     $i->loadByRef($this->data['items_levelorder']);
     return $i;
 }
Exemplo n.º 3
0
function sf_exception($priority, $message, $param = array())
{
    return sf_factoryGetObject('LIB', 'SefrengoException', null, array($priority, $message, $param));
}
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 /**
  * 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;
 }
Exemplo n.º 6
0
 /**
  * @return obj|boolen new cat object or false
  */
 function &copy($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;
 }
Exemplo n.º 7
0
 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;
 }
Exemplo n.º 8
0
    $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'];
Exemplo n.º 9
0
// | 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);
Exemplo n.º 10
0
 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');
 }
Exemplo n.º 12
0
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;
}
Exemplo n.º 13
0
                            }
                            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)) {
Exemplo n.º 14
0
 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;
 }
Exemplo n.º 15
0
// 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'];
Exemplo n.º 16
0
 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'));
 }
Exemplo n.º 17
0
            $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) {
Exemplo n.º 18
0
function user_delete()
{
    global $iduser;
    $iduser = (int) $iduser;
    $sf_user = sf_factoryGetObject('ADMINISTRATION', 'User');
    $sf_user->loadByIduser($iduser);
    $sf_user->delete();
}
Exemplo n.º 19
0
 /**
  * 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;
 }
Exemplo n.º 21
0
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);
        }
    }
}
Exemplo n.º 22
0
 function &get()
 {
     $iter = sf_factoryGetObject('UTILS', 'ArrayIterator');
     $iter->loadByRef($this->items);
     return $iter;
 }
Exemplo n.º 23
0
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);
    }
}
Exemplo n.º 24
0
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);
            }
        }
    }
}