Andreafbi
Новичок
Дата регистрации:
14.08.2013 22:03:01
Сообщений: 3
<?php
require_once "config_class.php";
require_once "article_class.php";
require_once "section_class.php";
require_once "user_class.php";
require_once "menu_class.php";
require_once "banner_class.php";
require_once "message_class.php";
abstract class Modules{
protected $config;
protected $article;
protected $section;
protected $user;
protected $menu;
protected $banner;
protected $message;
protected $data;
public function __construct($db){
session_start();
$this->config=new Config($db);
$this->article=new Article($db);
$this->section=new Section($db);
$this->user=new User($db);
$this->menu=new Menu($db);
$this->banner=new Banner($db);
$this->message=new Message();
$this->data=$this->secureData($_GET);
}
public function getContent() {
$sr["title"]=$this->getTitle();
$sr["meta_desc"]=$this->getDescription();
$sr["meta_key"]=$this->getKeyWords();
$sr["menu"]=$this->getMenu();
$sr["auth_user"]=$this->getAuthUser();
$sr["banners"]=$this->getBanners();
$sr["top"]=$this->getTop();
$sr["middle"]=$this->getMiddle();
$sr["bottom"]=$this->getBottom();
return $this-> getReplaceContent($sr,"main"
}
abstract protected function getTitle();
abstract protected function getDescription();
abstract protected function getKeyWords();
abstract protected function getMiddle();
protected function getTop(){
return "";
}
protected function getBottom(){
return "";
}
protected function getMenu(){
$menu=$this->menu->getAll();
for ($i=0; $i<count($menu); $i++){
$sr["title"]=$menu[$i]["title"];
$sr["link"]=$menu[$i]["link"];
$text.=$this->getReplaceTemplate($sr,"menu_item"
}
return $text;
}
protected function getAuthUser(){
$sr["message_auth"]="";
return $this->getReplaceTemplate($sr,"form_auth"
}
protected function getBanners(){
$banners=$this->banner->getAll();
for ($i=0; $i<count($menu); $i++){
$sr["code"]=$banners[$i]["code"];
$text.=$this->getReplaceTemplate($sr,"banner"
}
return $text;
}
private function secureData($data){
foreach($data as $key=>$value){
if (is_array($value)) $this->secureData($value);
else $data[$key]=htmlspecialchars($value);
}
return $data;
}
/*методы шаблонизатора*/
protected function getTemplate($name){
$text=file_get_contents($this->config->dir_tmpl.$name.".tpl"
/*делаем замену %address% в файле .tmp*/
return str_replace("%address%", $this->config->address, $text);
}
/*функция позволяющая заменять %...% получив массив*/
protected function getReplaceTemplate($sr, $template){
return $this->getReplaceContent($sr, $this->getTemplate($template));
}
private function getReplaceContent($sr, $content){
$search=array();/*элементы которые хотим найти*/
$replace=array();/*массив с элементами на которые мы собираемся заменить*/
$i=0;
foreach($sr as $key=>$value){
$search[$i]=$key;
$replace[$i]=$value;
$i++;
}
return str_replace($search, $replace, $content);
}
}
?>
<?php
require_once "modules_class.php";
class FrontPageContent extends Modules{
private $articles;
private $page;
public function __construct($db){
parent::__construct($db);
$this->articles=$this->article->getAllSortData();
/*проверяем указанали страница в строке поска браузера*/
$this->page=(isset($this->data["page"]))? $this->data["page"]:1;
}
protected function getTitle(){
}
protected function getDescription(){
}
protected function getKeyWords(){
}
protected function getMiddle(){
}
}
?>
<?php
/*устанавливаем внутреннюю кодировку на сайте*/
mb_internal_encoding("UTF-8"
require_once "lib/database_class.php";
require_once "lib/frontpagecontent_class.php";
/*создаем экземпляры этих объектов*/
$db=new DataBase();
/*получаем view из GET параметров*/
$view=$_GET["view"];
switch ($view){
case "":
$content=new FrontPageContent($db);
break;
default: exit;
}
echo $content->getContent();
?>