Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Установка кода на различные движки (http://forum.sape.ru/forumdisplay.php?f=26)
-   -   самописный движок смарти (http://forum.sape.ru/showthread.php?t=41829)

манго-манго 18.11.2009 19:18

самописный движок смарти
 
Суть проблемы:
Ссылки отображаються только вверху до тегов html.
Сайт включаеться последовательно, через класы шаблонов tpl
я прописал шаблон, вставил в шаблон php код
<?
global $sape;
echo $sape->return_links();
?>
делал и так {PHP} код {/PHP}

всеравно код в нужном месте отображаеться текстом.

Предполагаю что стоит фильтр на html или текст, т.е. кроме них ничего не хочет отображаться.

вот код файла functions.php
который как мне кажеться отвечает за эту фильтрацию

PHP код:

function get_http_var($method$var_name)
{
    
// Функция получения информации отправленной по типу GET или POST ,COOKIE , FILES
    // Если переменная не существует возвращает NULL
    
static $method_list = array("GET" => 1"POST" => 1"COOKIE" => 1"FILES" => 1); // Возможные виды  $method
    
if (!isset($method_list[$method])) return NULL;
    if (
$method != "FILES"$global_array "HTTP_" $method "_VARS";
    else 
$global_array "HTTP_POST_FILES";
    global ${
$global_array};
    if (isset(${
$global_array}[$var_name]))
    {
        if ((
$method == "GET" || $method == "POST") && !is_string(${$global_array}[$var_name])) return NULL;
        return ${
$global_array}[$var_name];
    }
    else return 
NULL;
}

function 
escape($str)
{
    
// фильтр строки
    
return stripcslashes(mysql_escape_string(htmlspecialchars(trim($str))));


сайт собираеться index.php > functions.php > template.php > main.tpl (хэдер , футер и так далее)

Добавлено через 3 часа 58 минут
на всякий случай прилогаю как файл template.php
PHP код:

<?php
/*
* Класс для обработки шаблонов.
*
* Шаблон представляет собой файл или строковую переменную, в которой могут
* присутствовать именованные поля подстановки вида <%name%>, 
* где name - имя данного поля.
* Класс позволяет выполнять замену именованных полей любыми данными.
*
* Использование:
*
* 1) $tpl = new Template();
*    Создание объекта класса Template. При создании объекта данного класса 
*    в скобках можно указать путь к файлу, где находится требуемый шаблон.
*    Пример:
*    $tpl = new Template("/usr/local/www/templates/template1.html");
*    При этом в объект загружается шаблон из указанного файла.
*
* 2) $tpl->prepare($string);
*    Если шаблон находится не в файле, а в переменной $string, то данный метод
*    позволит загрузить этот шаблон в объект $tpl.
*
* 3) $tpl->set_var($name, $value);
*    Заменяет значение поля с именем $name, входящем в шаблон, на $value.
*
* 5) $value = $tpl->get_var($name);
*    Возвращает текущее значение поля с именем $name, входящего в шаблон. 
*
* 6) $text = $tpl->get_doc();
*    Данный метод возвращает документ, полученный на основе шаблона, учитывая
*    все сделанные до его вызова подстановки полей.
*/
class Template
{
  var 
$a$b;
  var 
$vars;
  var 
$n;


  function 
read_from_file($filename)
  {
    
$fp NULL;
    
$text "";
    
$fp fopen($filename"rb");
    if (!(
$fp === false))
    {
      
$text fread($fpfilesize($filename));
      
fclose($fp);
    }
    return 
$text;
  }

  function 
Template($filename "")
  {
    
$text "";
    if (
$filename != "")
    {
      
$text Template::read_from_file($filename);
    }
    
Template::prepare($text);
  }

  function 
prepare($text)
  {
    
$this->= array();
    
$this->= array();
    
$this->vars = array();
    
$tmp explode('%>'$text);
    
$n count($tmp);
    
$this->$n;
    if (
$n 1)
    {
      
$j 0;
      for (
$i 0$i $n$i++)
      {
        
$tmp1 explode('<%'$tmp[$i], 2);
        if (
count($tmp1) == 2)
        {
          
$this->a[$i] = $tmp1[0];
          if (!isset(
$this->vars[$tmp1[1]])) $this->vars[$tmp1[1]] = '<%' $tmp1[1] . '%>';
          
$this->b[$i] = & $this->vars[$tmp1[1]];
        }
        else
        {
          
$this->a[$i] = $tmp1[0];
          
$this->b[$i] = '';
        }
      }
    }
    else
    {
       
$this->a[0] = $tmp[0];
       
$this->'';
    }
  }

  function 
get_doc()
  {
    
$i 0;
    
$text "";
    for (
$i 0$i $this->n$i++)
    {
      
$text .= $this->a[$i] . $this->b[$i];
    }
    return 
$text;
  }
  
  function 
set_var($name$value)
  {
    
$this->vars[$name] = $value;
  }

  function 
get_var($name)
  {
    return 
$this->vars[$name];
  }
}
?>

задача наконец запустить php

global $sape;
echo $sape->return_links();

DRIVER 18.11.2009 19:49

За 10-15 баксов Вам тут мастера воткнут сапу хоть куда.
PS Прочитал тему как "самописный движок смЕрти" :D

манго-манго 18.11.2009 23:12

:))

ну пока подожду ответа профи, если не будет буду думать.

szag 18.11.2009 23:45

Цитата:

Сообщение от манго-манго (Сообщение 626408)
ну пока подожду ответа профи, если не будет буду думать.

К апокалипсису Вам надо.

манго-манго 19.11.2009 00:08

ок спасибо сейчас буду искать его


Часовой пояс GMT +3, время: 09:17.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.