Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Шаблонизатор - ГОТОВОЕ РЕШЕНИЕ!
 
 автор: Sywooch   (25.03.2006 в 18:43)   письмо автору
 
 

КТо не жадный прикрепите архив с нормально рабочим шаблонизатором
Если мона то хоть с одной страничкой.

ЗЫ. хочеться поковырять с целью изучения.

   
 
 автор: localGhost   (25.03.2006 в 19:22)   письмо автору
 
   для: Sywooch   (25.03.2006 в 18:43)
 

этот класс я написал специально для разделения пхп кода и html.. Он мне в принципе очень сильно упростил жизнь. Уж извените, описалово уже второй месяц дописать не могу.. некогда.. вот выкладываю, поковыряйте, может какие конструктивные предложения или замечания появяться.

добавлю что кроме того что в примере (в атаче), в этой системе можно создавать условия и циклы (например очень удобно для построения таблиц).... если кого заинтересует, попозжа распишу поподробней.

Если непонятно будет как использовать пишите.

   
 
 автор: localGhost   (25.03.2006 в 19:31)   письмо автору
 
   для: localGhost   (25.03.2006 в 19:22)
 

да еще... сразу скажу.. там ini файл, вот его описание:



;кодировка по умолчанию 
def_charset = windows-1251 
; флаг разрешающий (1) или запрещающий (0) использовать конструкцию <!-- INCLUDE (...) -->
remote_files = 1
; генератор времени выполнения скрипта. задействовать (1) выключить (0)
et = 1 
; округление результата
et_round = 4 
; эне задействовано (в планах кое-что, забыл удалить)
dnewl = 0
; имя переменной в которую загружаеться массив из файла lang.ini (для мультиязыковой поддержки)
lang_var = T_LANG
; эт тоже забыл удалить)))))
templ_ext = ".html" 


; дополнительные шаблоны, заменяют шаблон вида {XXX}
; например:
; self_url заменит шаблон {SELF_URL}
[TSTR]
self_url = "http://new.cms/article/"
test_path = "http://test.path/

   
 
 автор: Sywooch   (25.03.2006 в 19:55)   письмо автору
 
   для: localGhost   (25.03.2006 в 19:31)
 

Неработал пока не закоментировал
dnewl = 0

А можно ли вместо
{BODY}

поменять на

include 'news.php';

И чтоб код выполнялся?

   
 
 автор: localGhost   (25.03.2006 в 20:42)   письмо автору
 
   для: Sywooch   (25.03.2006 в 19:55)
 

пхп код в подключаемом файле выполняться не будет.. весь смысл этой системы чтоб в разные углы разнести интерфейс и "програмный" код. Допустим если новости это одинаковые повторяющиеся разделы, то можно сначала создать обычный массив, а в отдельном файле шаблона част html текста которая должна повторяться.

   
 
 автор: Sywooch   (25.03.2006 в 20:58)   письмо автору
 
   для: localGhost   (25.03.2006 в 20:42)
 

как можно результат выполнения скрипта (например новостей - news.php) записать в переменную?

Для того чтоб вставить в дизайн
намример переменной @news@

пробовал функции писат но немогу коректно с ними работать. Тоесть печатать тогда когда надо!

   
 
 автор: localGhost   (25.03.2006 в 21:08)   письмо автору
 
   для: Sywooch   (25.03.2006 в 20:58)
 

-

   
 
 автор: Sergey89   (25.03.2006 в 20:48)   письмо автору
4.3 Кб
 
   для: Sywooch   (25.03.2006 в 18:43)
 

Я когда-то пытался его написать, но потом не стал.

   
 
 автор: Sywooch   (25.03.2006 в 21:08)   письмо автору
 
   для: Sergey89   (25.03.2006 в 20:48)
 

Функция которая печатает ту или иную страничку!


<?
function content()
{
global 
$include;
DEFINE("MAINE""start");
DEFINE("LINK1""humor");
DEFINE("LINK2""2"); 
DEFINE("LINK3""3");
DEFINE("LINK4""4");
$link=empty($_GET['link'])?null:$_GET['link']; 
  switch (
$link) {
    case 
MAINE:
      
$page "./$include/start.php";
    break;
    case 
LINK1:
      
$page "./$include/1.php";
    break;
    case 
LINK2:
      
$page "./$include/2.php";
    break;
    case 
LINK3:
      
$page "./$include/3.php";
    break;
    case 
LINK4:
      
$page "./$include/4.php";
    break;
    default:
      
$page "./$include/start.php";
    break;
  }
return 
join('',file($page));
}
?>



Может вся проблема в этой строке.


return join('',file($page));


Может нужно возвращять результат этой функции как то иначе?

   
 
 автор: Sywooch   (25.03.2006 в 23:10)   письмо автору
 
   для: Sywooch   (25.03.2006 в 21:08)
 

Работает хорошо.
Так что вылажую рабочий вариант.
Мож кто ошибки найдет сообщите :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования