За последние 24 часа нас посетил 17931 программист и 1645 роботов. Сейчас ищут 1827 программистов ...

Шаблонизатор

Тема в разделе "Решения, алгоритмы", создана пользователем Danilka, 30 апр 2008.

  1. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    Я жду не дождусь когда уже кто-нибудь в этой теме приведёт пример
    дествительно хорошей шаблонной системы... Эх...
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
  3. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    Лично мое убеждение состоит в следующем:

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

    - в свете вышесказанного, неплохо было бы создать клиентскую версию PHP, назовём его PHPScript (а вот здесь мы снова возвращаемся к теме старого, но провереного временем шаблонизатора по имени PHP)
     
  4. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    ExtJS.
    И PHP для генерации данных и обработки запросов.
     
  5. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Не совсем понимаю, зачем нужен в добавлении к флешу и JavaScript еще какой-то PHPScript?

    Что мешает написать на том же JS клиентский шаблонизатор?
     
  6. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Ну ExtJs все же ИМХО для шаблонизатора толстоват(хотя хорошая штука, да).
     
  7. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    akrinel
    Для простой страницы - да.
    Но когда начинаешь использовать всякие grid'ы и panel'и, то мне уже проще всю страницу через ExtJS разметить, чем пытаться вписать то что сделает ExtJS в html код страницы.
     
  8. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Volt(220), так я с этим и не спорю :)
    Но все же на большинстве сайтов, пока что, задачи полегче, поэтому ExtJs в моем понимании рулит на данный момент только в админках и всяких там клиентах CRM ERP и прочих интранетов.
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    она и так там происходит o_O
     
  10. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Да ладно тебе к терминологии придираться
     
  11. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    извиняюсь, я перепутал визуализацию с логикой отображения =)

    ... т.к. PHPScript был бы гораздо удобнее
     
  12. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    Код (Text):
    1. echo new count('users');
    выглядит красиво =)

    [vs]

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

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Топик читать внимательно не судьба?
    http://www.php.ru/forum/viewtopic.php?p=200670#200670
     
  14. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Simpliest
    да чел недопонималка...
    cms-lite
    ты бы подумал прежде чем писать. Да, в твоих словах есть доля правды, но это только доля и очень маленькая. Или ты так, помечтать решил?
     
  15. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    дожили

    cms-lite
    поток сознания по все русла
     
  16. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    читал, а теперь прошу привести мне нормальный и понятный всем пример
     
  17. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    1.tpl
    Код (Text):
    1. <h1><?php echo $msg?></h1>
    2.tpl
    Код (Text):
    1. Preved
    PHP:
    1. <?php
    2. $view = new view('1.tpl');
    3. $view -> msg = new view('2.tpl');
    4. echo $view;
     
  18. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    Ну вот, можете если хотите! Вот это мне начинает нравиться! Молодец vs!
     
  19. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    cms-lite
    просто ты не знаешь как что применить, и поэтому [censored]говоришь, что тут написана [censored]ерунда. Не надо так делать - это не хорошо!!!

    //тут был Luge
     
  20. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    vs, если шаблон страницы состоит из 10 субшаблонов, то у тебя как минимум
    будет 10 раз include, надо-бы кэшировать...

    ...но есть и хорошая новость, у тебя получилась гибридная система =)

    Пример генерации меню с использованием пассивных шаблонов:

    item2.tpl:
    Код (Text):
    1. <li><?=$title?>
    item1.tpl:
    Код (Text):
    1. <li><a href="<?=$href?>"><?=$title?></a>
    menu.php:
    Код (Text):
    1. <ul><?=$items?></ul>
    index.php:
    PHP:
    1. <?
    2.  include("./class.view.php");
    3.  
    4.  define("query",intval($_SERVER["QUERY_STRING"]));
    5.  
    6.  $links = array("Главная","Пользователи","Форумы");
    7.  
    8.  $menu  = new view('./menu.tpl');
    9.  $item1 = new view('./item1.tpl');
    10.  $item2 = new view('./item2.tpl');
    11.  
    12.  foreach($links as $k=>$v){
    13.   if(query==$k){
    14.    $item2->title = $v;
    15.    $menu->items.= $item2;
    16.   }else{
    17.    $item1->href = "/?".$k;
    18.    $item1->title = $v;
    19.    $menu->items.= $item1;
    20.   }
    21.  }
    22.  
    23. ?>
    24.  
    25. <?=$menu?>
    Пример генерации меню, с использованием активных шаблонов:

    menu.tpl

    Код (Text):
    1. <ul>
    2. <?
    3.  foreach($links as $k=>$v)
    4.   if(query==$k){
    5.    ?><li><?=$v?><?
    6.   }else{
    7.    ?><li><a href="/?<?=$k?>"><?=$v?></a><?
    8.   }
    9. ?></ul>
    index.php

    PHP:
    1. <?
    2.  include("./class.view.php");
    3.  
    4.  define("query",intval($_SERVER["QUERY_STRING"]));
    5.  
    6.  $links = array("Главная","Пользователи","Форумы");
    7.  
    8.  $menu  = new view('./menu.tpl');
    9.  $menu->links = $links;
    10. ?>
    11.  
    12. <?=$menu?>
     
  21. Koc

    Koc Активный пользователь

    С нами с:
    3 мар 2008
    Сообщения:
    2.253
    Симпатии:
    0
    Адрес:
    \Ukraine\Dnepropetrovsk
    пыха оказывает влияние на тебя=)
     
  22. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    Koc
    может быть, спасибо Luge поправил. Но меня, четно говоря, достали эти умники, боги программирования, несущие сущий бред, не понимая о чём идет речь.
     
  23. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0
    vs, в чем принципиальное преимущество твоего класса перед простым инклюдом (кроме выделеного нэймспэйса конечно) ???
     
  24. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Возможность получения результата скрипта в строку.
    Расширяемость.
     
  25. cms-lite

    cms-lite Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    53
    Симпатии:
    0