За последние 24 часа нас посетили 22418 программистов и 1071 робот. Сейчас ищут 680 программистов ...

include в include

Тема в разделе "Прочие вопросы по PHP", создана пользователем Rim, 1 фев 2012.

  1. Rim

    Rim Активный пользователь

    С нами с:
    28 дек 2010
    Сообщения:
    53
    Симпатии:
    0
    добрый день всем!

    дано: index.php, template.php, папка templates в которой main.php и view.php

    Вот пытаюсь решить задачку, делаю вьювер (или чтото в етом роде), а точнее задачка такая что грузиться оснойной темплейт templates/main.php, в него подгружаеться блоки - любой текст или другой темплейт (в моем случае templates/view.php).
    В темплейт templates/view.php также передаються данные.
    Проблемма: немогу передать templates/view.php с обработанными своими данными в templates/main.php.

    Вот скрипты:
    index.php
    Код (Text):
    1.  
    2. $template = new Template();
    3. $template->render('view',array('name'=>'My Name','time'=>  time()));
    template.php
    Код (Text):
    1.  
    2. class Template {
    3.  
    4.     public $layout;
    5.     public $content = "";
    6.  
    7.     public function __construct() {
    8.         $this->layout = 'main';
    9.     }
    10.  
    11.     public function getLayout(){
    12.         $content = $this->content;
    13.         $layout = 'templates/'.$this->layout.'.php';
    14.         require_once $layout;
    15.     }
    16.    
    17.     public function render($template,$args = array()){
    18.         if(isset($args)){
    19.             foreach ($args as $key=>$value) {
    20.                 ${$key} = $value;
    21.             }
    22.         }
    23.         $template = 'templates/'.$template.'.php';
    24.         if(file_exists($template) == true){
    25.             $this->content = $template;
    26.         }
    27.     }
    28.    
    29. }
    templates/main.php
    Код (Text):
    1.  
    2. <p>верхушка</p>
    3. <?=$content;?>
    4. <p>футер</p>

    templates/main.php
    Код (Text):
    1.  
    2. <p>Здесь контент</p>
    3. Мое имя: <?=$name;?><br/>
    4. Сегодня: <?=date('d.m.Y',$time);?><br/>
     
  2. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    Код (PHP):
    1.         $template = 'templates/'.$template.'.php';
    2.         if(file_exists($template) == true){
    3.             $this->content = $template;
    4.         } 
    - это как? Если файл шаблона существует то в свойство content записать путь к файлу шаблону, не содержимое?
     
  3. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
  4. Rim

    Rim Активный пользователь

    С нами с:
    28 дек 2010
    Сообщения:
    53
    Симпатии:
    0
    Упс... забыл вписать file_get_contents()

    Добавлено спустя 1 минуту 12 секунд:
    Большое спасибо!
    Работает!
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Ради чего запрещать дважды использовать один шаблон? Совершенно ненужное искуственное ограничение
     
  6. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Вы совершенно правы.