За последние 24 часа нас посетили 32835 программистов и 1820 роботов. Сейчас ищут 847 программистов ...

буфер вывода и чанки MODX

Тема в разделе "PHP для новичков", создана пользователем Conus, 21 авг 2018.

  1. Conus

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

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    Народ подскажите кто знает - в MODX есть такой замут
    если я правильно понял в сранице создаётся переменная
    <!-- #declare:arre <sp> --> <sp> [+tpl+]
    и к ней обращаются через isset( $declare["varre"] ) ? $declare["varre"] : "<!--tpl_separator-->"

    Если кто подробней разобрать может подскажите пожалуйста что тут к чему
    какие зависимости

    PHP:
    1. <?php
    2. ob_start(); ?> <!-- #declare:varre <sp> -->    <sp>  [+tpl+]  <?php
    3.   $tpl = ob_get_contents();  
    4.    
    5.     $declare = array();
    6.     if ( strpos($tpl,"<!-- #declare:")===false) return $declare; $matches= array();
    7.          if (preg_match_all("/<\!-- \#declare\:(.*)[^-->]?-->/i",$tpl,$matches)
    8.        )
    9.     {  
    10.         for($i=0;$i<count($matches[1]);$i++)
    11.         {              
    12.             $tag = explode(" ",$matches[1][$i]);      
    13.             $tagname=trim($tag[0]);      
    14.             $tagvalue=trim($tag[1]);      
    15.             $declare[$tagname] = $tagvalue;          
    16.         }                  
    17.         $tpl = str_replace($matches[0],"",$tpl);      
    18.     }          
    19.        
    20. return str_replace("[+tpl+]",
    21.                                "<div>ok</div>",
    22.                                 explode( (isset($declare["varre"])? $declare["varre"]:"<!--tpl_separator-->"), $tpl)[1] );