break; case 'cat_lock': // Ordner sperren con_lock('cat', $idcat, $lock); if ($lock == '1') { $cms_log->info('user', 'con_cat_lock', array('idcat' => $idcat, 'catname' => $SF_catinfos->getTitle($idcat))); fire_event('con_cat_lock', array('idcat' => $idcat)); } else { $cms_log->info('user', 'con_cat_unlock', array('idcat' => $idcat, 'catname' => $SF_catinfos->getTitle($idcat))); fire_event('con_cat_unlock', array('idcat' => $idcat)); } break; case 'side_lock': // Seite sperren // con_lock ('side', $idcatside, $lock); con_lock('side', $idside, $lock); if ($lock == '1') { $cms_log->info('user', 'con_side_lock', array('idside' => $idside, 'pagename' => $SF_pageinfos->getTitleByIdside($idside))); fire_event('con_side_lock', array('idside' => $idside)); } else { $cms_log->info('user', 'con_side_unlock', array('idside' => $idside, 'pagename' => $SF_pageinfos->getTitleByIdside($idside))); fire_event('con_side_unlock', array('idside' => $idside)); } break; case 'expand': // Ordner aufklappen con_expand($idcat, $expanded); break; case 'sideup': // Seite eins nach oben schieben con_move_side('up', $idcat, $idside, $sortindex);
function con_lock($type, $id, $visible) { global $db, $cms_db, $client, $perm; switch ($type) { // Ordner sperren case 'cat': $a_catstring = array(); $a_catstring = con_deeper_categories($id, '13'); $a_catstring[] = $id; // entsperren / sperren aller Ordner unabhängig von der Sprache if ($visible == '1') { $sql = "UPDATE {$cms_db['cat_lang']} SET visible = (visible | 0x04) WHERE idcat IN (" . implode(',', $a_catstring) . ")"; } else { $sql = "UPDATE {$cms_db['cat_lang']} SET visible = (visible & 0xFB) WHERE idcat IN (" . implode(',', $a_catstring) . ")"; } $db->query($sql); $sql = "SELECT S.idside\n\t\t\t\tFROM " . $cms_db['side'] . " S\n\t\t\t\tinner join " . $cms_db['cat_side'] . " CS USING(idside)\n\t\t\t\tWHERE idcat IN (" . implode(',', $a_catstring) . ")"; $db->query($sql); while ($db->next_record()) { $sides[] = $db->f("idside"); } //prüfen ob sides vorhanden, bei leerer Kategorie nicht der fall if (is_array($sides)) { con_lock('side', $sides, $visible); } break; // Seite sperren // Seite sperren case 'side': $sides_sql = is_array($id) ? ' IN (' . implode(',', $id) . ')' : ' = ' . $id; // entsperren / sperren aller Seiten unabhängig von der Sprache if ($visible == '1') { $sql = "UPDATE {$cms_db['side_lang']} SET online = (online | 0x04) WHERE idside " . $sides_sql; } else { $sql = "UPDATE {$cms_db['side_lang']} SET online = (online & 0xFB) WHERE idside " . $sides_sql; } $db->query($sql); break; } // Navigationstree aus Cache löschen sf_factoryCallMethod('UTILS', 'DbCache', null, null, 'flushByGroup', array('frontend')); }