За последние 24 часа нас посетил 30501 программист и 1807 роботов. Сейчас ищут 823 программиста ...

XTemplate

Тема в разделе "Прочие вопросы по PHP", создана пользователем GvOzD, 26 июн 2008.

  1. GvOzD

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

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Есть сайт построенный на шаблонизаторе XTemplate ,на сайте есть несколько глобальных переменных которые должны вставляться в шаблон , например:
    main.tpl
    HTML:
    1. <!-- BEGIN: main -->
    2. {TEXT}
    3. <!-- END: main -->
    index.php
    PHP:
    1. <?
    2. include_once("./XTemplate.php");
    3. $main = new XTemplate("./main.tpl");
    4.  
    5. $text="1,2,3,4,5,6,7,{EIGHT},9,10"
    6.  
    7. $main->assign("TEXT",$text);
    8. $main->assign("EIGHT","8");
    9. $main->parse("main");
    10. $main->out("main");
    11. ?>
    В итоге скрипт выдаёт 1,2,3,4,5,6,7,,9,10 , соответственно в переменную $text данные будут попадать из базы.
     
  2. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    По-моему, логичное поведение. А ты чего ждал?
     
  3. GvOzD

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

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    lexa
    Я понимаю что всё логично , словами объяснить что сделать надо было тяжело , поэтому и выложил заведомо неправильный пример, что бы мне кто-нибудь подсказал как таким образом вывести 1,2,3,4,5,6,7,8,9,10
     
  4. DarkElf

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

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    GvOzD

    вероятно, движок темплейтов не поддерживает поиск новых переменных, добавленных через assign. передавай сразу из php полностью сформированную строку
     
  5. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    GvOzD
    Если бы то, что ты хочешь, поддерживалось, любой хакер Вася мог бы спровоцировать вывод системных переменных на странице, в гостевой книге например.
     
  6. GvOzD

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

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Скорее всего придёться тупо перед выводом str_replace'ом заменять :(
     
  7. GvOzD

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

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Есть такая бесплатная CMS как xoops там есть глобальные переменные например {USER}, если при написании новости вставить её в текс новости то при отображении переменная {USER} замениться логином читающего её пользователя.Только xoops построен на smarty , неужели в XTemplate это нет???? Можно перед конечным выводом шаблона $main->out("main"); заменить str_replace все глобальные переменные, передав их в массиве????
     
  8. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. <?
    2. include_once("./XTemplate.php");
    3. $text = new XTemplate("./text.tpl"); // "1,2,3,4,5,6,7,{EIGHT},9,10"
    4. $text->assign("EIGHT","8");
    5. $text->parse("main");
    6.  
    7. $main = new XTemplate("./main.tpl");
    8. $main->assign("TEXT", $text->out("main"));
    9. $main->parse("main");
    10. $main->out("main");
    11. ?>
     
  9. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Можешь расширить класс XTemplate научив его создавать шаблон не из файла, а из строки.
    PHP:
    1. $text = new myXTemplate("1,2,3,4,5,6,7,{EIGHT},9,10");
     
  10. GvOzD

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

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Sergey89
    если из шаблона то проблем никаких нет
     
  11. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Тогда читай моё второе сообщение.
     
  12. Anonymous

    Anonymous Guest

    шутка для умных - %username%
     
  13. GvOzD

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

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    Горбунов Олег
    Ну я пример написал , меня же все поняли , xoops уже год в глаза не видел
     
  14. BS

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

    С нами с:
    10 апр 2008
    Сообщения:
    149
    Симпатии:
    0
    GvOzD, нет, это был намек на один популярный ресурс :)
     
  15. GvOzD

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

    С нами с:
    16 фев 2007
    Сообщения:
    103
    Симпатии:
    0
    BS
    Я туплю , а на какой если не секрет :D
     
  16. Anonymous

    Anonymous Guest

    хабрахабр )