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

Статус
В этой теме нельзя размещать новые ответы.

асс

Мой дом здесь!
Регистрация
13 Окт 2006
Сообщения
762
Реакции
230
Доброй ночи господа.

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

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

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

У меня в шаблоне 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
Там как то это работает, а вот как не вкурю.
 
Последнее редактирование модератором:
  • Заблокирован
  • #3
В 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 ) > 0 )
       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 ) > 0 )
       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();
?>
 
Последнее редактирование модератором:
Всем спасибо, перекопал весь движок, сделал что хотел. Осталось разобраться с обработкой ошибок, и защитой. Темку можно закрыть.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху