Помогите реализовать подключение файлов как в шаблоне DLE

Тема в разделе "PHP", создана пользователем асс, 1 май 2014.

Статус темы:
Закрыта.
Модераторы: latteo
  1. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    749
    Симпатии:
    220
    Доброй ночи господа.

    Очень нужна ваша помощь.

    Разрабы Дле, запарили своими жалобами, я решил снести их движки и поставить кастомный свой, для сателлитов, хочу чтоб выводились материалы, так же каки в дле, и чтоб шаблон не переделывать хочу оставлять тот что стоял.

    Так вот для этого хочу написать скриптец..

    У меня в шаблоне DLE cms есть такие стоки кода
    файл main.tpl {include file="engine/modules/date.php"}

    мне необходимо чтоб после парсинга, подключался файл и выводился в браузер результат date.php

    Сейчас после обработки
    PHP:
    if( strpos$this->html"{include file=" ) !== false ) {
    $this->html preg_replace"/\{include file=['\"](.*?)['\"]\}/is""\$1"$this->html);
    в шаблоне выводится лишь строка engine/modules/date.php
    PHP:

    include_once('inc/class.php');// Подключаем обработчик

    $tpl=new Tpl_Class;// Создаем новый класс
    $tpl->dir ROOT_DIR.'/templates/'.$tpl_papka;
    $tpl->tpl_get($tpl->dir.'/main.tpl');//Подключаем шаблон
    $tpl->tpl_parsing(); // Теперь обрабатываем заменяя переменные в шаблоне на наши данные
    echo $tpl->html;// Выводим обработанный шаблон на экран

    помогите пожалуйста.


    Я смотрел файл templates.class.php от движка DLE
    Там как то это работает, а вот как не вкурю.
     
    Последнее редактирование модератором: 8 май 2014
  2. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Может такой вариант поможет
     
    асс нравится это.
  3. Zlodar

    Zlodar Создатель

    Заблокирован
    Регистр.:
    24 апр 2013
    Сообщения:
    15
    Симпатии:
    1
    В template.php:
    PHP:
    <?php
    class Templ
    {
       private 
    $vars = array();
       var 
    $template;
       function 
    sets$name$value )
       {
         
    $this -> vars$name ] = $value;
      }
       function 
    showmodule$tmp )
       {
         
    $tpl $this -> template ."/"$tmp;
         if ( !
    file_exists$tpl ) ) die( "Template module "$tpl ." not found!" );
         
    $tpl file_get_contents$tpl );
         if ( 
    count$this -> vars ) > )
           foreach ( 
    $this -> vars as $name => $value )
             
    $tpl str_replace$name$value$tpl );
         return 
    $tpl;
      }
       function 
    showtemplate( )
       {
         
    $tpl $this -> template ."/index.html";
         if ( !
    file_exists$tpl ) ) die( "Template "$tpl ." not found!" );
         
    $tpl file_get_contents$tpl );
         if ( 
    count$this -> vars ) > )
           foreach ( 
    $this -> vars as $name => $value )
             
    $tpl str_replace$name$value$tpl );
         echo 
    $tpl;
      }
    }
    $tpl = new Templ;
    ?>
    В index.php:
    PHP:
    <?php
       
    ####################################
       ##        Пример работы        ##
       ####################################
       
       
    include( "template.php" );
       
    $tpl -> template "simple";
       
    $tpl -> sets"[TITLE]""Простой шаблонизатор" );
       
    $tpl -> sets"{MODULE}"$tpl -> showmodule"module.html" ) );
       
    $tpl -> showtemplate();
    ?>
     
    Последнее редактирование модератором: 8 май 2014
    асс нравится это.
  4. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    749
    Симпатии:
    220
    Всем спасибо, перекопал весь движок, сделал что хотел. Осталось разобраться с обработкой ошибок, и защитой. Темку можно закрыть.
     
Статус темы:
Закрыта.