За последние 24 часа нас посетили 109458 программистов и 5651 робот. Сейчас ищут 1902 программиста ...

Господа!!! Нужна помощь с bTemplate.

Тема в разделе "PHP для новичков", создана пользователем GColor, 17 дек 2008.

  1. GColor

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

    С нами с:
    28 окт 2008
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    сюда поезада не ездиют
    Здраствуйте. Использую bTemplate http://massassi.com/bTemplate/index.php?page=home
    Работает просто СУПЕР.
    Но столкнулся с проблемой. Вывожу выбор (SELECT) с помощью такого вот кода:

    PHP:
    1.  
    2. <select id='payerrax_id' style='WIDTH:49%'>
    3.     <loop:payerrax>
    4.     <option value=<tag:payerrax[].GPAYERACCOUNT_ID />>
    5.     <tag:payerrax[].PAYERACCOUNT />
    6.     </option>
    7.     </loop:payerrax>
    8.     </select>
    9.  
    10.  
    Все выводится нормально. Но !! Мне нужно чтобы запись где GPAYERACCOUNT_ID=2 была
    HTML:
    1. selected
    Я так понимаю в bTemplate такое не предусмотрено. Подскажите, как можна реализовать.
    Или посоветуйте другие варианты шаблонизаторов, только с таким же простым синтаксисом.
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    7.983
    Симпатии:
    1
    Адрес:
    Оттуда
    http://php.net
     
  3. GColor

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

    С нами с:
    28 окт 2008
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    сюда поезада не ездиют
    Так легче всего ответить. Но раз люди создают шаблонизаторы, значить кому-нибудь єто нужно :)
    Смотрю сейчас PEAR. Что скажете?
     
  4. Это неправильный подход. Абсолютно. Надо сначала решить, зачем он нужен — тебе. Тогда можно будет выбирать.
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    7.983
    Симпатии:
    1
    Адрес:
    Оттуда
    +1
     
  6. GColor

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

    С нами с:
    28 окт 2008
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    сюда поезада не ездиют
    Согласен с флоппик. Но сейчас столько разных систем, что новичку сразу так и не разобраться. И все пишут что они самые-самые. А где истина? Начинать же с чего-то надо.
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    7.983
    Симпатии:
    1
    Адрес:
    Оттуда
    начни писатиь свой. иногда помогает...

    это те как пример и не более того
    http://php.ru/forum/viewtopic.php?t=1372
     
  8. GColor

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

    С нами с:
    28 окт 2008
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    сюда поезада не ездиют
    Так отсюда я и взял bTemplates. Ну ничего - разберемся. Я настойчивый :lol:
     
  9. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    7.983
    Симпатии:
    1
    Адрес:
    Оттуда
    откуда? нету там никаких bTemplates.
     
  10. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.094
    Симпатии:
    0
    Адрес:
    Барнаул
    GColor
    Почитай доки по этому bTemplates. Тебе нужен условный тег. В моем движке это выглядело бы так:
    Код (Text):
    1. <option value="<var:payer:GPAYERACCOUNT_ID>" <logic:equal property=payer:GPAYERACCOUNT_ID value="2" then="selected"/>><var:payer:PAYERACCOUNT></option>
    А здесь - не знаю, но тоже что-то наподобие.

    Хотя если на то пошло, можно сделать гораздо проще:
    Код (Text):
    1. <select id="payerrax_id" style="WIDTH:49%">
    2. <write:options property=payerrax selected="2">
    3. </select>
    Но для этого нужно, чтобы $payerrax был ассоциативным массивом (т.е. ID=>имя) :)
     
  11. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    простой, кривоватый шаблонизатор, но работает не хуже других
    http://php.ru/forum/viewtopic.php?t=15102

    а вот ещё, даавно правдо писал...натиный
    PHP:
    1.  
    2. <?
    3. class tpl {
    4. public $tpldir,$opt;
    5. private $vars,$tplcache,$globalvars,$cachedir;
    6.   function __construct($opt) {
    7.        $this->tpldir=$opt['tpl_dir'];
    8.        $this->opt=$opt;
    9.        $this->cachedir=$opt['cache_dir'];
    10.   }
    11.   function set($name,$value=0) {
    12.       if (!is_array($name)) {
    13.           $this->vars[$name]=$value;
    14.       }else if(is_array($name) && count($name)) {
    15.           foreach($name as $key=>$val) {
    16.               $this->vars[$key]=$val;
    17.           }
    18.       }else {
    19.           trigger_error("Ошибка: Не указано значение переменной", E_USER_ERROR);
    20.       }
    21.   }
    22.   function set_global($name,$value=0) {
    23.       if (!is_array($name)) {
    24.           $this->globalvars[$name]=$value;
    25.       }else if(is_array($name) && count($name)) {
    26.           foreach($name as $key=>$val) {
    27.               $this->globalvars[$key]=$val;
    28.           }
    29.       }else {
    30.           trigger_error("Ошибка: Не указано значение переменной", E_USER_ERROR);
    31.       }
    32.   }
    33.   function load($tplname,$cacheon=false) {
    34.        if (!$this->tplcache[$tplname]) {
    35.            $fp=@file_get_contents($this->tpldir.'/'.$tplname);
    36.            if ($fp) {
    37.                $fp=get_magic_quotes_gpc()?stripslashes($fp):$fp;
    38.                $this->tplcache[$tplname]=$fp;
    39.            }
    40.        }else {
    41.            $fp=$this->tplcache[$tplname];
    42.        }
    43.        if (!$fp) trigger_error("Ошибка: Шаблон ".$this->tpldir.'/'.$tplname." не найден",E_USER_ERROR);
    44.        @ob_start();
    45.         if ($this->vars) extract($this->vars);
    46.         $_GLOBALS=$this->globalvars;
    47.         eval("?".">".$fp."<?");  // И ниипёт . - точка
    48.        $res=ob_get_contents();
    49.        ob_clean();
    50.        if ($this->opt['cache_on'] || $cacheon) $this->cache_save($tplname,$res);
    51.        return $res;
    52.   }
    53.   function clear() {
    54.       $this->vars=array();
    55.   }
    56.   function is_cached($tplname) {
    57.     $fd=$this->cachedir.'/'.md5($tplname).'.ch';
    58.     if (file_exists($fd) && time()-filemtime($fd)<=$this->opt['cache_time']){
    59.         return true;
    60.     }else{
    61.         if (file_exists($fd)) unlink($fd);
    62.         return false;
    63.     }
    64.   }
    65.  
    66.   function get_cache($tplname) {
    67.     $fd=$this->cachedir.'/'.md5($tplname).'.ch';
    68.     $fp=file_get_contents($fd);
    69.     $fp=get_magic_quotes_gpc()?stripslashes($fp):$fp;
    70.     return $fp;
    71.   }
    72.   function clear_cache($tplname) {
    73.     $fd=$this->cachedir.'/'.md5($tplname).'.ch';
    74.     return @unlink($fd);
    75.   }
    76.   private function cache_save($tplname,$res) {
    77.       if (@file_put_contents($this->cachedir.'/'.md5($tplname).".ch",$res)) {
    78.       }else {
    79.          trigger_error("Ошибка: Не могу кешировать шаблон $tplname в папку ".$this->cachedir,E_USER_ERROR);
    80.       }
    81.   }
    82. }
    83. ?>
    84.  
     
  12. GColor

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

    С нами с:
    28 окт 2008
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    сюда поезада не ездиют
    Таки есть упоминание http://php.ru/forum/viewtopic.php?p=27263#27263
     
  13. GColor

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

    С нами с:
    28 окт 2008
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    сюда поезада не ездиют
    Буду доделывать условный тег. Тут он не развит. Ничего. Зима длинная :)