???????????? ? ???-????????????????. ???????? ????????????? ?? PHP

??????? ? ???? ?????????? ?? ????? ?????????? ? ???????? ?????? ? ???-???????????????? ??? ????????? ????????????. ??? ? ??? ??????? ? ????? ?? ?????????? ??????, ????? HTML-???????? ??????? ?? ??????? ? ??????. ?????? ??? ?????????, ??????????? ? ?????? ??????????: ?????? ????, ?????????, ?????? ?????????????? ?????? ? ?. ?. ?????? ?????????? ??? ? ????????? ??????. ??? ????? ???? ??????? ???????, ????, ????? ? ?. ?.

?????? ?????? ??????????? ???-???????????? ????????, ??? ???????, ???????? ???:

echo '<div class="post_entry">';
echo '<h2>' . $article['title'] . '</h2>';
echo '<div class="date">' . $article['date'] . ' &bull; ?????????: <a href="/' . $article['category_alias'] . '/' . $article['article_alias'] . '">' . $article['category'] . '</a></div>';
echo $article['text'];
echo '</div>';

??? ???? ??????? ??????????? ???? ?????? ?? ?????, ??????, ?? ???? ?????????, ??????? ?? ???? ?????? (?????? article), ?????? ???????? "??????" ?????? ? ??? ? ???? ????????? ????????. ???????? ??? ????? ?????????, ?? ?????? ??? ??? ??-?? ????, ??? ?????? ???????? ? ?? ?????? ?????????? ? PHP-????. ????? ??? ????? ???????? ??? ? ????? ??????, ??? ? ? ????? ??????????????.

???? ???????????? ??????????? ? ???, ????? ???????? ?????? ???????? ?? ???????????? ????. ?????? ???????? ?????????? ? ????????? ????????? ???? (??????), ? ??????, ??? ?????????? ??????? ?????? ??????????? ??????????? ????????????????. ???????? ????????? ?????? ??????, ???????? ? ??? ???????????????? ?? ??????????????? ?????? ? ???????.

?????? ??? ??????? ???? ????? ????????? ????????? ???????:

<div class="post_entry">
  <h2>{TITLE}</h2>
  <div class="date">{CREATED} &bull; ?????????: <a href="{CATEGORY_LINK}">{CATEGORY}</a></div>
{CONTENT}
</div>

? ?????? ?????? ???????????????? ???????????? ?? ???? ????????? ?????, ??????????? ? ???????? ??????. ? ????????, ??? ????? ????????? ??? ???????????????? ?????? ???????????, ????? ? ?????? ????????? ?????? ????? ?? ???.

"????????" ?????? ?? ?????? ????? ??????, ?????????? ??????????????? ???????? str_replace ??? preg_replace ??? ?????? ???????????????? ? ???????. ?? ????????? ??? ???? ???? ???????? ??????????? ??????? ????????????.

????????, ????????? ????????? ?????????? ???????????? ?????????????, ???????, ?? ????, ???????? ????????? ?????????? ????????? ?????????????, ????????????? ? ?????? ????? MyFirstSite.ru:

<?php
 
  class QTemplate
  {
      private $content = NULL;
      private $res_content = NULL;
 
      function QTemplate($tpl_dir, $tpl_name)
      {
          if ( ! file_exists($tpl_dir . $tpl_name . '.tpl') ) return;
          $this->content = file_get_contents($tpl_dir . $tpl_name . '.tpl');
      }
 
      function assign_vars($vars)
      {
          $this->res_content = $this->content;
 
          foreach( $vars as $blockname => $value )
          {
              $this->res_content = preg_replace('/{' . $blockname . '}/i', $value, $this->res_content);
          }
      }
 
      function render()
      {
          if ( $this->res_content == '' ) $this->res_content = $this->content;
 
          return $this->res_content;
      }
  }
 
?>

???????????? ???????????? ?? ???? PHP-????? QTemplate. ??? ???????? ?????????? ?????? ????????? ???? ? ????? ? ????????? ? ??? ???????. ????? assign_vars "??????????" ?????? ?? ??????, ?? ???? ???????? ???????????????? ? ??????? ?? ??????????????? ?? ??????. ???????????? ?????????? ? ????????? vars, ??????? ?????? ???????????? ?? ???? ?????? ?? ????????? ??????????:

array(
    '???_????????????????' => '??????',
    '???_????????????????' => '??????',
    '???_????????????????' => '??????'
    );

??? ?????? ???????????????? ????????? ??????????? ?? ?????????? ?????????? res_content, ??? ???? ?????????? content ???????? ???????? ????? ???????. ??? ????????? ????? ??? ???????????? ???? ????????? ????????????? ??? ????????????? HTML-????.

????? render ?????????? ??????? HTML-???. ??????????, ??????????????, ????? ?????? ???????????????? ??????? assign_vars.

? ?????? ??????? ?????????? ?????? ????????????? ?????????????:
<?php
 
  $tpl_dir = 'templates/default/'; //--???? ? ????? ? ?????????
 
  require 'qtemplate.php'; //--?????????? ????????????
 
  //--??? ?????? ?????????? ??? ????????? ?????? ?? ???? ?????? ? ?????? $articles
 
  $main_tpl = new QTemplate($tpl_dir, 'main'); //--????????? ?????? main
  $article_tpl = new QTemplate($tpl_dir, 'article'); //--????????? ?????? article
 
  $content = '';
 
  //--"???????????" ?? ???? ???????
  foreach ( $articles as $article )
  {
      //--"??????????" ?????? ?? ??????
      $article_tpl->assign_vars( array(
          'TITLE' =>         $article['title'],
          'CREATED' =>       $article['date'],
          'CATEGORY_LINK' => '/' . $article['category_alias'] . '/' . $article['article_alias'],
          'CATEGORY' =>      $article['category'],
          'CONTENT' =>       $article['text']
          ) );
      //--?????????? HTML-??? ??????
      $content .= $article_tpl->render();
  }
 
  //--"??????????" ??????? ?? ??????? ??????
  $main_tpl->assign_vars( array(
      'TITLE' =>   '???????',  
      'CONTENT' => $content
      ) );
  //--?????????? HTML-??? ???? ???????? ? ??????? ???
  echo $main_tpl->render();
 
?>

PHP-?????? ????????? ??? ???????: main, ?????????? ????????? HTML-???????? (DOCTYPE, ???????? ? ?. ?.) ? article, ?????????? ????????? ??????. ??? ???????????????? ?, ? ???????, ????????? ???????. ? ????? ?????? ?????? ?????? "????????????" ?? ?????? article, ????? ??????? HTML-??? ???????????? ??????????? ? ?????????? content. ?????????? ??????? ?????????? ? ?????? main. ??? ????? ?????? ??????????? ??????????? ???????? ???????????????? ?????? ??????? ??????????? ????????? ??????? ??????? (??? ?????????? ????????). ? ?????????? ???????????? ????????-????????? ?? ??????? ??????. ??? ????? ?????????? ???????????? ????????? ??????? ????? ???????, ??? ?? ??????? ??? ?????????????, ???????? ????????, ? ????? ??????????? ???????.

????????????, ?????? ????????????? ???????? ??? ????????????? ???? HTML-???????:

  • ??-??????, ??????? ????. ??????????? ??? ?? ???????? HTML-????, ??????? ????? ????????. ? ?? ?? ?????, ?????? ???????? ?????? HTML-???, ? ??????? ????? ??? ? ????? ?????? ??????????? (??? ????? ??????? ??????????? ????? ????????????????).
  • ??-??????, ?????????? ???????????? ? HTML-???? ???? ??????????? ??????????? ?????????? ?????? ? ???????. ????? ???-?? ???????? ?? ??????? ???? ???????? ????? ?????????? ?????? ????????? ? ??????????????? ??????, ??? ???? ?? ????? ??????? ???????? ????????????????.
  • ???? ????? ????? ????????? ????????. ????? ????????? ???????? ?????? ????? ?????????? ?????? ???????? ???? ? ????? ? ?????????.

??????, ???????, ??????? ??????, ??? ???? ???????? ??????????. ? ?????, ? ??????? ???????????? ??????? ?????? ? ?????. ???????? ???????!

Комментарии

Оставить комментарий »

 
Joker-jar
11 декабря 2011, 0:50
#1
 

????????????, ?????????????? ? ??????, ??????????? ? ???????? ????? ??????? ???????? ??????? ? ??????????? ?? ???? ??????. ?????? ?????????? ?? ?? ?????, ??????? ??? ???????? ????? ??? ????? ????????? ??????????? ????????? ????????????. ????????, ???????????? MyFirstSite.ru ????? ????????? ??????? ??? ? ??????, ??? ? ? ?????????? ("??????" ???????), ???????????? ?????????????, ??? ????????????? ??????????? ? HTML-???? ??????????? ? ????????? ???? ???????? (?????? ??? ???????), ??????????? ?????? ? ??? ?????.

??????, ? ???????? ???????? ???? ?????? ? ????????? ????????? ?????? ?????.

??????
1 января 2012, 21:27
#2
 

??? ? ???????.

??????? ?????? ?? ???? ???? ????? ?????.

??? ?? ????? ???????? ??????? ?????? ??? ???? ??????????? ?????, ??? ??????????. ????? ???? ?????? ??????. ?? ?????? ??????, ????????, ? ???????????. ? ??? ?????? ????? ????? ? ??????????? ???????? ???????? ? ??????????? ?? ?????? ? ?????? ??????????(id ???????, ???????????????, ? ?.?.). ??? ? ?????? ???? ?????? ??? ?????????? ? ?????? ??????????, ?? ????? ?????? ????? ?????????.
? ??????? ??????? ????? ?????, ?? ?? ??? ??????????. ??????? ???????? ??????????????? ?????? ?????.

Drakmail
17 января 2012, 2:19
#3
 

? ???????????? ????? ????? ???????????? ???-?????? ?? ?????: ?????, ????????? ?????, ???????, ??????????? ????? ???? ??, ?? ???? ?? ????????? ????????, ??? ???????????.

Joker-jar
17 января 2012, 7:31
#4
 

?????????, ??? ???????????? ?????????? ???????, ????? ? ??????, ??? ?????????????, ??????????? ?? ?????? PHP. ??????: ????? ????????????. ? ??????? ?????? ???????????? ?????????? {COMMENTS}. ??????????? SQL-?????? ??? ????????? ?????? ???????????? ? ???????????? ?????? ???????????. ????? ????????? ?????? ??? ?????????? ?????????????:

$commentsarr = array();

?? ????? ?????? ??????????? ????????????? ? ?????? ? ??????????? ? ???? ??????:

foreach ($ret as $comment) //--$ret - ?????? ????????????, ?????????? ?? MySQL
{
    $i++;
 
    $comment_text = $this->doc->modules['lib']->filter_comment($comment['comment'], $comment['gid']);
 
    $item_tpl->assign_vars(array(
        'ID' =>            $comment['id'],
        'NUMBER' =>        ($page - 1) * $items_per_page + $i,
        'AUTHOR' =>        $comment['author'],
        'CREATED' =>       $this->doc->modules['lib']->rusdate($comment['ucreated']),
        'IP' =>            $comment['ip'],
        'COMMENT' =>       $comment_text
        ));
    $commentsarr[] = $item_tpl->render();
}

? ???????? ????? ??? ??????????? ???????? ? ?????? ??????:

'COMMENTS' =>   implode(NEWLINE, $commentsarr)

?? ??? ???-?? ???.

Drakmail
23 января 2012, 18:34
#5
 

?? ???-?? ????, ??? ?????? ???????????, ??? ??? ? h2o ??????? (?? ? ? django) - ??? ??????? ???? ??? ?????? ? ???????? ??????????:

{% for item in items %} ????????, ??? {% if x %}. ?? ??? ??????, ??????? ???????, ??? <?php foreach $item in $items ?> ? ?.?.

???? ? ??????? ???????? preg_replace, ????????, ????? ????????? ???? ??????????? ?????.

Joker-jar
23 января 2012, 19:37
#6
 

? ??? ??????? ?? ??????????? ? ????????????? ???? ????. ??? ???????? ??????????????? ???? ????? ? ????? ????????

Drakmail
24 января 2012, 6:01
#7
 

???????? ???:

? ??????????? ???????? ?? ????? ?????? ????

$items = array ('key1'=>'value1','key2'=>'value2');

?????, ?? ?????, ? ??????????? h2o, ????? ??????? ???? ?????? ? ???????? ???? ???????? ???:

{% for key,value in items %}
<div class="item">
    <p class="header">{{ key }}</p>
    <p class="body">{{ value }}</p>
</div>
{% endfor %}

??? ???-?? ???. ??? ??????-?? ????? ????????? ????????, ??? ? ?????? ???????? php ????.

Joker-jar
24 января 2012, 8:31
#8
 

????? ?????????? ? ????????? ???????. ????, ??????, ???? ?????. ??????? ????????? ? ? ??? ????? ??? ????, ????? ??????? ????? ????? ??? ?????????? ????????/???????????, ??????? ?? ????????????????, ?? ??????? ???? ????????. ? ? ???? ?????? ??????? ??? ????? ????? ????????? ???????????? ????.

????????, ?????????? ? ????? ?????????? ????? ??????-?????? ???????? (?????, ??????, ?????? ?????? ??????? ????????? ?? ?????). ????? ? ??????? ???????? ?????? ? ???????.

Drakmail
24 января 2012, 17:42
#9
 

??????, ? ??? ??? ???? ????????? ) ??? ?????????? ? ??????????? ???????:

{% for key,value in items %}
<div class="item" style="background-color: {% cycle "#fffff", "#00000" %}">
    <p class="header">{{ key }}</p>
    <p class="body">{{ value }}</p>
</div>
{% endfor %}

????? ? ??????? ???? cycle ?????????? ??????????? ????? ???? ??? ??????? ?? ?????. ?????, ????? ?????? ???? ???? ? ???????, ??? ?????????? ?????????? ?????? ? ???????.

??????, ? ????????? ?? h2o ? ??? ???? ???? ?????? ??? ?????? ? ??????/???????????, ? ??????? ????????? ?????? ??? ?????? ? ?????? html.

????????
3 февраля 2012, 8:04
#10
 

???????? ?? ??????? ? ????????? ????????????, ? ??????? ?????? ?????? ? ??????? ???????...

Оставить комментарий

Ваше имя
 
Ваш e-mail
 
Комментарий