За последние 24 часа нас посетили 123746 программистов и 2450 роботов. Сейчас ищут 1433 программиста ...

Два вида сообщений в одном шаблоне

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

  1. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    PHP:
    1. <?
    2. $template = file_get_contents ('template/win_privat.tpl');
    3. $template = str_replace ('{time}', $nextrow['time'], $template);
    4. $template = str_replace ('{who}', $nextrow['who'], $template);
    5. $template = str_replace ('{privat}', $nextrow['privat'], $template);
    6. $template = str_replace ('{what}', $nextrow['what'], $template);
    7. echo $template;?>
    Есть вот такой код...

    HTML:
    1.  
    2. <!-- win_privat.tpl -->
    3. <link rel=stylesheet href="template/style.css" type="text/css">
    4. <body class="font_txt">
    5. <a target"messages" href="#" onClick="parent.frames['messages'].document.getElementById('message').value = parent.frames['messages'].document.getElementById('message').value + ' см. ' + this.innerHTML + ' ';">[{time}]</a> &gt;
    6. <a target"messages" href="#" onClick="parent.frames['messages'].document.getElementById('privat').value = this.innerHTML; return false;">{who}</a> ->
    7. <a target"messages" href="#" onClick="parent.frames['messages'].document.getElementById('privat').value = this.innerHTML; return false;">{privat}</a> :{what}<br>
    8. </body>
    9.  
    Вопрос: как в win_privat.tpl поместить еще одну переменную {error}, но так, чтобы она выводилась если выполняется некое условие в php файле, lg еще и что бы все остальное НЕ выводилось :))) Всё должно быть в одном файле, что бы можно было редактировать :)
     
  2. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    PHP:
    1. <?
    2.  $template = file_get_contents ('template/win_privat.tpl');
    3. if (empty($error)) {
    4.  $template = str_replace (array('[if_no_error]','[/if_no_error]','{error}'), '', $template);
    5.  $template = str_replace ('{time}', $nextrow['time'], $template);
    6.  $template = str_replace ('{who}', $nextrow['who'], $template);
    7.  $template = str_replace ('{privat}', $nextrow['privat'], $template);
    8.  $template = str_replace ('{what}', $nextrow['what'], $template);
    9. }else {
    10.  $template = preg_replace ("#\[if_no_error\](.+?)\[\/if_no_error\]#is", "", $template);
    11.  $template = str_replace ('{error}', $error, $template);
    12. }
    13.  echo $template;
    14. ?>
    HTML:
    1. <!-- win_privat.tpl -->
    2. {error}
    3. [if_no_error]
    4.  <link rel=stylesheet href="template/style.css" type="text/css">
    5.  <body class="font_txt">
    6.  <a target"messages" href="#" onClick="parent.frames['messages'].document.getElementById('message').value = parent.frames['messages'].document.getElementById('message').value + ' см. ' + this.innerHTML + ' ';">[{time}]</a> &gt;
    7.  <a target"messages" href="#" onClick="parent.frames['messages'].document.getElementById('privat').value = this.innerHTML; return false;">{who}</a> ->
    8.  <a target"messages" href="#" onClick="parent.frames['messages'].document.getElementById('privat').value = this.innerHTML; return false;">{privat}</a> :{what}<br>
    9.  </body>
    10. [/if_no_error]
    или юзать Смарти =))
     
  3. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    не, смарти не катит... спасибо, сейчас попробую...
     
  4. Mr.M.I.T.

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

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    а чё так?
    тогда XSLT...
    но мне Смарти больше нравится =)
     
  5. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    у меня не так много чего заменять :)))