- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
<?
/******************************************************************************
Основной файл для работы с панелью управления
******************************************************************************/
if(isset($_REQUEST['usr'])){
unset($_SESSION['usr']);
die("don't hack me,please!");
} //if hack
session_start();
//коннект к базе данных
if(!is_object($db)){include_once($path."panel/lib/sql.php");}
$db->set_logs_level(0); //уровень логирования запросов
$db->set_logging_place(0); //0-file,1-database
$db->set_logs_filename("panel.log"); //файл для записи логов
//авторизация
if(empty($_SESSION['usr'][$shopid])) {include($path."panel/auth/start.php");}
if(!isset($_SESSION['ulang'][$shopid])){include($path."panel/auth/lang.php");}
unset($af,$rmes,$pat,$out,$content,$omrd,$mpt,$act,$nact,$msr,$error,$script,$opr);
//определяем, является ли юзер админом
if(empty($dar)) $af=1;
else{
$qwe=$db->query("SELECT user
FROM perm_user_group
WHERE owner=".$shopid."
AND user=".$_SESSION['usr'][$shopid]."
AND `group`=2");
$af=($db->num_rows($qwe)<1) ? 0 : 1;
} //else if empty(dar)
//======================================================
if($_SESSION['umenu'][$shopid]==''){
//элементы навигации для группы
include_once($path."panel/admin/group/create/panels.php");
if(empty($af)){
reset($sma);
$max = 0;
while(list(,$ord)=each($sma)) if($max<$ord) $max=$ord;
$qwe=$db->query("SELECT LPAD(BIN(BIT_OR(pg.menu)),".$max.",'0')
FROM perm_groups pg,
perm_user_group pug
WHERE pg.owner=".$shopid."
AND pg.publish=1
AND pug.owner=".$shopid."
AND pug.user=".$_SESSION['usr'][$shopid]."
AND pug.`group`>0
AND pg.id=pug.`group`");
list($_SESSION['umenu'][$shopid])=$db->fetch_row($qwe);
} //if no admin
else $_SESSION['umenu'][$shopid] = str_repeat('1',$max);
} //if umenu[shopid]==''
//работа с фреймами
$frm = (!isset($_REQUEST['frame'])) ? 0 : intval($_REQUEST['frame']);
//работами с ссылками на фрейм
if(!empty($_REQUEST['fp'])){
$dfp = intval($_REQUEST['fp']);
$fdp = "&frame=".$dfp;
$fcp = "<input type=hidden name=frame value=".$dfp.">\n";
} //if !empty(fp)
else if(!empty($frm)){
$fdp = "&frame=".$frm;
$fcp = "<input type=hidden name=frame value=".$frm.">\n";
} //else if !empty(fp)
if(($_REQUEST['go']%2)!=1){ //если выводим страницу,а не сохраняем данные
$dsql = (in_array($_REQUEST['ac'],array(37,70,109,851,859,910,956))) ? " AND go=".intval($_REQUEST['go']) : "";
$qwe=$db->query("SELECT shablon,used,menu
FROM panel_shablon
WHERE id=".$_SESSION['psh'][$shopid]."
AND frame=".$frm.$dsql);
list($mcnt,$used,$mmm)=$db->fetch_row($qwe);
} //if empty(go)
LoadLang('panel','panel',$mn,$ps);
$db->SetPhpLocale();
$pms=array("content","title","menu","top_menu","css","script","onload","img",
"self","error","user","begin","operations","user_full","search","noframes");
$apm=array(0=>0, 1=>2, 2=>3, 3=>4, 4=>12, 5=>5, 6=>12, 7=>6, 8=>6, 9=>0, 10=>-1,
11=>12, 19=>12, 30=>12, 36=>12, 37=>12, 45=>12, 51=>12, 60=>1, 70=>3, 101=>2, 137=>12,
138=>10, 152=>5, 153=>5, 154=>5, 190=>1, 200=>8, 240=>9, 260=>10, 266=>12, 800=>13, 872=>14,
900=>15, 930=>16, 950=>17, 970=>18, 980=>19);
$ptr=array("{name}","{src}","{submenu}","{image}");
while(list($imd,$qnm)=each($pms)){
if($used[$imd]!="1" && $imd!=0) continue;
unset($data);
switch($imd){
case 1: //title
$data=$head;
break;
case 2: //menu
case 3: //top_menu
$tmn = ($imd==2) ? 0 : 1;
Досталась в наследство говноцмс. И все в таком духе, ресурс с посещаемостью в 3к в сутки.
цмс загнулась, слишком много наворотов))))
Типичный говнокод... представляю, как тяжело стороннему разработчику в этом разбираться
Разбираться не стал, слишком много магии)))) Переписал весь проект с нуля.
на чём переписал?
На пхп))) Только без магии аля 154=>5, 190=>1, 200=>8, 240=>9.
Коду получилось, если было 50 мб движка, сейчас метра 2 всего. Таблиц sql было 400, стало 35. И запросов к бд в 100 раз меньше. Все летает. + фичи аля асинхронная загрузка контента. А функционала на портале еще больше стало