Код (Text): function articles_intro($article) { $article['content']=$article['content']."///"; return $article; }
igordata ВЫ ВОЛШЕБНИК )я 2 дня над этим сижу. Вот что значит не понимать принцип данной работы )Теперь вроде всё понятно) Спасибо Вам за помощь! )
можно сделать еще извращённее =)))))) Код (Text): function articles_intro(&$article) { $article['content']=$article['content']."///"; }
гыгыгы! интернеты набиты этим г* по самое немогу начни с вики и гуляй по ссылкам пока кушать не позовут.
Друг подкинул модель MVC index.php Код (Text): require_once('utills/utills.php'); require_once('lib/lib.php'); $a=new Lib; utills.php Код (Text): class Utills { public function dump($dmp) { ob_start(); include($_SERVER['DOCUMENT_ROOT'].'/tmpl/'.$dmp.'.tpl'); ob_end_flush(); } } lib.php Код (Text): class Lib extends Utills { public function __construct() { $this->dump('main'); } } Собственно всё работает, но только 1 страничка, т.е. main.php. Как можно сделать, что бы были ещё странички. Обратиться к этому другу не могу.
отличный друг! люблю когда люди врут, спрашивая помощи. это можно сделать двумя способами. Код (PHP): class Utills { static public function dump($dmp) { ob_start(); include($_SERVER['DOCUMENT_ROOT'].'/tmpl/'.$dmp.'.tpl'); ob_end_flush(); } } Utills::dump('сюда пиши'); или Код (PHP): class Lib extends Utills { public function __construct($var) { $this->dump($var); } } $a=new Lib('сюда пиши');
В смысле я вру? Я его достал своими глупыми вопросам, что теперь он мне не отвечает, что я могу поделать ?
Код (PHP): return $this->createNotification() ->setMessage($this->getView()->lang['notification']['forbidden_access']) ->setType('alert') ->setNotificationUrl('/admin/') ->run();
==================================== Код (Text): <?php $var=array("1","2","3","4","5","6","7","8"); foreach ($var as $article){ print $article;} ?>
Вот новый вариант MVC, как теперь здесь сделать вывод данных ? Код (Text): <?php include('C_View.php'); $controller = new C_View(); $controller -> Request(); ?> Код (Text): <?php abstract class Controller { function __construct() { } function Request() { $this->OnInput(); $this->OnOutput(); } protected function IsGet() { return $_SERVER['REQUEST_METHOD']=='GET'; } //Запрос пройзведён методом POST? protected function IsPost() { return $_SERVER['REQUEST_METHOD']=='POST'; } function OnInput() { } function OnOutput() { } function Template($fileName, $vars=array()) { foreach ($vars as $k=>$v) { $$k=$v; } ob_start(); $fileName; ob_get_clean(); } } ?> Код (Text): <?php include('controller.php'); abstract class C_Base extends Controller { protected $title; protected $content; function __construct() { } // Виртуальный обработчик запроса function OnInput() { parent::OnInput(); $this->title='Test web'; $this->content=''; } //Виртуальный генератор function OnOutput() { $vars=array('title'=>$this->title,'content'=>$this->content); $page= $this->Template('theme/v_main.php',$vars); echo $page; } } ?> Код (Text): <?php include('C_Base.php'); class C_View extends C_Base { private $text; function __construct() { } //Виртуальный обработчик запроса function OnInput() { parent::OnInput(); $this->title = $this->title . "READ"; $this->text = 'Hi'; } // Виртуальный генератор function OnOutput() { $vars = array('text'=>$this->text); $this->content=$this->Template('theme/C_View.php', $vars); parent::OnOutput(); } } ?>
extract() Добавлено спустя 44 секунды: ob_get_clean() возвращает значение. его надо куда-то поместить.
Блин, если сейчас не найду ответ на свой вопрос, у меня случится истерика+))) потому что я уже 3 дня над этим сижу. В общем общий вид моей MVC Файл index.php Код (Text): <?php include('C_View.php'); $controller = new C_View(); $controller -> Request(); ?> Тут пожалуй всё понятно, т.е. вызываем из контроллера метод Request(). Далее смотрим на controller.php Код (Text): <?php abstract class Controller { function __construct() { } function Request() { $this->OnInput(); $this->OnOutput(); } protected function IsGet() { return $_SERVER['REQUEST_METHOD']=='GET'; } //Запрос произведён методом POST? protected function IsPost() { return $_SERVER['REQUEST_METHOD']=='POST'; } protected function OnInput() { } protected function OnOutput() { } function Template($fileName, $vars=array()) { foreach ($vars as $k=>$v) { $$k=$v; } ob_start(); $fileName; ob_get_clean(); } } ?> Мы видим, что он абстрактный, поэтому реализовываем его в дочернем классе c_base.php, который по совместительству является базовым. Код (Text): <?php include('controller.php'); abstract class C_Base extends Controller { protected $title; // Заголовок страницы protected $content; //Содержание страницы function __construct() { } // Виртуальный обработчик запроса protected function OnInput() { parent::OnInput(); $this->title='Test web'; $this->content=''; } //Виртуальный генератор HTML protected function OnOutput() { $vars=array('title'=>$this->title,'content'=>$this->content); $page= $this->Template('theme/v_main.php',$vars); echo $page; } } ?> Ну здесь мы видим, что у нас идёт определение переменных, т.е. титл и контент, затем ф-ия OnOutput() в которой определяем массив и загоняем туда значения переменных, а затем опеределяем базовый шаблон, но титл пока не реализован, т.к. эта задача остаётся для другого класса c_view Код (Text): <?php include('C_Base.php'); class C_View extends C_Base { private $text; function __construct() { } //Виртуальный обработчик запроса function OnInput() { parent::OnInput(); $this->title = $this->title . "READ"; $this->text = "Hi"; } // Виртуальный генератор function OnOutput() { $vars = array('text'=>$this->text); $this->content=$this->Template('theme/C_View.php', $vars); parent::OnOutput(); } } ?> Вот только одного не пойму, как взаимодействуют два файла шаблона v_main.php и c_view.php. Я так полагаю, в c_view.php мы выводим данные например из бд, а затем каким то волшебством мы загоняем эти данные в main.php так? Но и всё же, данные не выводятся. Вот v_main.php Код (Text): <html> <?=$title?> <?=$contet?> <?=$text?> </html> и c_view.php Код (Text): <html><a>asd <?=$text?></a></html> В обоих файлах пишу все переменные, которые желал бы вывести, т.е. просто уже от балды, лиж бы увидеть где что могло бы заработать, но увы, ничего и нигде ( Добавлено спустя 2 минуты 58 секунд: п.с. учусь по видео урокам называются "Школа программирования", 6-ой по счёту Добавлено спустя 4 минуты 45 секунд: ААААААААААААааааа!!! НАШЁЛ ОШИБКУ! Пойду убьюсь об стену! Код (Text): ob_start(); $fileName; ob_get_clean(); - было! А нужно Код (Text): ob_start(); INCLUDE $fileName; RETURN ob_get_clean(); Добавлено спустя 9 минут 57 секунд: Блин, извините, дошло всё )))) Огромное человеческое спасибо тем, кто отвечал!