САМОУЧИТЕЛЬ PHP 4



         

Главный модуль шаблонизатора - часть 6


// уже там находящемуся, причем в качестве символа-соединителя

// выступает тело блока с именем name. Если строка name не задана

// (то есть указаны []), используется блок с именем DefaultGlue,

// а если этого блока нет, то соединитель по умолчанию — " | ".

function _FBlkGlue($name,&$cont,$url)

{ global $BLOCK;

  if(ereg("^\\[([^]])*]",$cont,$P)) {

    $c=substr($cont,strlen($P[0])); // тело блока после [name]

    $n=$P[1];                       // имя соединителя

    // Есть с чем "склеивать"?

    if(!empty($BLOCK[$name])) {

      $glue=@$BLOCK[$n];

      if(!Isset($glue)) $glue=@$BLOCK[BlkDefGlue];

      if(!Isset($glue)) $glue=DefGlue;

      $cont=$BLOCK[$name].$glue.$c;

    }

    // "Склеивать" нечего — просто присваиваем.

    else $cont=$c;

  }

}

// Удаление начальных символов табуляции из тела блока.

// Теперь можно выравнивать HTML-код в документах с помощью табуляции.

// Это оказывается чрезвычайно удобным, если мы используем тэги,

// например, в таком контексте:

// < ?foreach($Book as $k=>$v) {? >

//    <tr>

//      <td>< ?=$Book['name']? ></td>

//      <td>< ?=$Book['text']? ></td>

//    </tr>

// < ?}? >

function _FBlkTabs($name,&$cont,$url)

{ // используем регулярное выражение в формате PCRE, т. к. это —

  // единственный приемлемый способ решения задачи

  $cont=preg_replace("/^\t+/m","",$cont);

}

?>




Содержание  Назад  Вперед