 Я когда то писал CMS по принципу, все должно быть редактируемо на ходу от тимплетов до модулей... Давно было очень, но идея мне нравиться до сихпор, такая вот CMS для, которую можно собрать в любой момент совершенно в любой комбинации... Если интересно, скину таки наработки, ходя они далеки от совершенства, но суть ясна наверна  ) Ядро достаточно просто устроенно на мой взгляд ;) index.php| Код | <?php include_once 'all_connect.php';
if (empty($page)){ $page='new'; }
if (empty ($_POST['indexform'])) { GoIndex ($page); } $filter_obj->field_validator('Логин', $_POST['login'], 'alphanumeric', 4, 15); $filter_obj->field_validator('Пароль', $_POST['password'], 'string', 4, 15); if (!($row = $mysql_obj->CheckPass ($_POST['login'], $_POST['password']))) { $filter_obj->messages[] = 'Логин - пароль не совпадают.'; }
if ($filter_obj->messages) { GoIndex ($page); }
GreatMemberSession($row['login'], $row['password'], $row['lvl']); header('Location: index.php?'.session_name().'='.session_id().'&page=rule'); ?>
|
all_connect.php| Код | <?php include_once ("class/filter/filter.php") ; $filter_obj = new filter (); include_once ("class/WorkMySQL/WorkMySQL.php"); $mysql_obj = new WorkMySQL ();
define('IP' , $REMOTE_ADDR); define('URL' , '<a href=index.php?page=id>name</a><br>');
include_once 'functions.php'; include_once 'workhtml.php';
session_register('login'); session_register('password'); session_register('loggedIn'); session_register('lvl'); ?>
|
workhtml.php| Код | <?php function print_HTML ($avt,$pagename) {
//Const and var: $sh_menu = file('html/menu.html'); $sh_index = file('html/face.html'); $sh_login = file('html/login.html'); $sh_pushform = file('html/pushform.html'); $files = file('page/pages.txt'); $menu = file('menu/menu.txt'); $filename=array(); $menutitle=array(); $MenuHTML=array(); //---
//Great LoginBlock $login = ''; if (!$avt) { $sh_login = $sh_pushform; } foreach ( $sh_login as $val) {$login .= $val; } //---
//Read page: foreach ($files as $val) { $pagetext = ''; $val = split ('@',$val); $val[1] = trim ($val[1]); $PageTitle = $val[2]; if ($val[0]==$pagename) { if ($val[1]=='txt' or $val[1]=='html') { $file = file ('page/'.$pagename.'.'.$val[1]); foreach ($file as $val) {$pagetext .= $val;} } if ($val[1]=='php') { include 'page/'.$pagename.'.'.$val[1]; }
break; } else { $pagetext = 'Такой страници не существует'; $PageTitle = 'Ошибка'; } } //--- //Great MenuBlock foreach ($menu as $val) { $val = split ('@',$val); $filename[] = $val[0]; $$val[0] = file('menu/'.$val[0].'.txt'); $menutitle[] = $val[1]; } for($i=0; $i<count($filename); $i++) { $MenuTxt = ''; $MenuHTML["$i"] = ''; foreach ($$filename[$i] as $val) { $val = split ('@',$val); $url = str_replace ('id' ,$val[1],URL); $url = str_replace ('name',$val[0],$url); $MenuTxt .= $url; } foreach ($sh_menu as $val) { $val = str_replace ('<MenuName>',$menutitle[$i],$val); $val = str_replace ('<MenuTxt>' ,$MenuTxt ,$val); $MenuHTML["$i"] .= $val; } } //---
//Paste all block's menu in page foreach ($sh_index as $val) { for($i=0; $i<count($filename); $i++) { $val = str_replace ('<'.$filename[$i].'>',$MenuHTML["$i"],$val); } $val = str_replace ('<pushform>',$login,$val); $val = str_replace ('<printtitle>',$PageTitle,$val); $val = str_replace ('<login>',$_SESSION['login'],$val); $val = str_replace ('<PrintPage>',$pagetext,$val); print $val; } //---
} ?>
|
functions.php| Код | <?php //**************************************** //заполнение сессии данными //**************************************** function GreatMemberSession($login, $password, $lvl) { $_SESSION['login'] = $login; $_SESSION['password'] = $password; $_SESSION['loggedIn'] = true; $_SESSION['lvl'] = $lvl; }
//**************************************** //Генерация странички //**************************************** function GoIndex ($pages){ //if Exit: if ($pages=='exit'){ session_destroy(); header("Location: index.php"); } //--- //if Error: if (isset ($filter_obj->messages)) { $filter_obj->ErrorLog (); } //--- //Print HTML and exit print_HTML($_SESSION['loggedIn'],$pages); exit; //--- } //**************************************** //****************************************
?>
|
|