Как исправить шаблонизатор для PHP 4

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

асс

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

Есть шаблонизатор

Код:
<?php
 
if (! defined ( 'MODULEINDEX' )) {
    die ( "Hacking attempt!" );
}
class parse_class
    {
    var $vars    = array();
    var $template;
 
    function get_tpl($tpl_name)
      {
      if(empty($tpl_name) || !file_exists($tpl_name))
        {
        return false;
        }
      else
        {
        $this->template  = file_get_contents($tpl_name);
        }
      }
    function set_tpl($key,$var)
      {
      $this->vars[$key] = $var;
      }
    function tpl_parse()
      {
      foreach($this->vars as $find => $replace)
            {
            $this->template = str_replace($find, $replace, $this->template);
            }
      }
    }
$parse = new parse_class;
?>


Код:
$parse->get_tpl('index.tpl'); 
$parse->set_tpl('{CONTENT}',$content);
 
$parse->tpl_parse(); //Парсим
print $parse->template; //Выводим нашу страничку


В PHP 5 все пашет в четверне не работает.

Как переписать чтоб работала в четверке, ато не охота перекидыввать на другой хостинг.
 
что значит не пашет, какие ошибки отображает?

Все функции должны идти и под 4 версией, запись if (! defined ( 'MODULEINDEX' )) намекает на то, что файл подключается из другого скрипта, ошибка может быть и в нём.
 
мне кажется легче сервер сжечь чем сидеть на пхп4.
не силён но вроде только функции file_get_contents может не хватать. Попробуй через Для просмотра ссылки Войди или Зарегистрируйся сделать
 
это ж нужно такое настрадать, почему нельзя сделать было например
PHP:
function parse_template($template, $variables)
{
    if(empty($tpl_name) || !file_exists($tpl_name)) return false;
 
        $template  = file_get_contents($tpl_name);
        foreach($variables as $find => $replace) {
          $template = str_replace($find, $replace, $template);
        }
        return $template;
}
и вызывать
parse_template('index.tpl', array('{CONTENT}' => $content))
ну и вот такой код уже приводить на ПХП4 если он не заработает

запись if (! defined ( 'MODULEINDEX' )) намекает на то, что файл подключается из другого скрипта, ошибка может быть и в нём.
это чтоб скрипт нельзя было вызвать напрямую
 
мне кажется легче сервер сжечь чем сидеть на пхп4.
не силён но вроде только функции file_get_contents может не хватать. Попробуй через Для просмотра ссылки Войди или Зарегистрируйся сделать
file_get_contents появился для версии php >= 4.3.0

2 Шумадан
Классы были и в 4 версии (не помню с какой подверсии) и для вынесения функции из объекта придётся переписывать и остальную часть скрипта.
это чтоб скрипт нельзяа было вызвать напрямую
вот и я об этом :)
 
file_get_contents появился для версии php >= 4.3.0

2 Шумадан
Классы были и в 4 версии (не помню с какой подверсии) и для вынесения функции из объекта придётся переписывать и остальную часть скрипта.
потому и дал вариант с функцией, хотя я склонен советовать также как и Мёртвый Дед
 
потому и дал вариант с функцией, хотя я склонен советовать также как и Мёртвый Дед
Там ведь не известно сколько файлов в проекте, мне для рефакторинга похожего типа (перенос из глобальной функции в класс), пришлось сотню файлов править. А с учетом вопроса, который задал автор он на такое явно не пойдёт.

PS: я тоже за поиск нормального сервера. php 4 вполне может содержать уязвимости уровня ядра и вряд ли администратор, который держит такое старье на сервере, накатал для них патчи.
 
Там ведь не известно сколько файлов в проекте, мне для рефакторинга похожего типа (перенос из глобальной функции в класс), пришлось сотню файлов править. А с учетом вопроса, который задал автор он на такое явно не пойдёт.

PS: я тоже за поиск нормального сервера. php 4 вполне может содержать уязвимости уровня ядра и вряд ли администратор, который держит такое старье на сервере, накатал для них патчи.


У меня есть три VDS на двух пых пять.
Но проблема походу не в классе.

Дело в том что морда работает нормально от этого класса.

А вот админка не хочет пахать, на хостинге, хотя локально пашет.
Видимо где то есть ошибка.
Но выставил на максимум вызов ошибок нет ошибок нигде.

--------------------------

Нашел ошибку, ошибка оказалась в конфиге.
Путь к шаблону tpl был указанан не верно.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху