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



         

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


      // удаляем все строки, кроме первой.

      if(@$bSingleLine)

        $BLOCK[$CurBlock]=ereg_Replace("[\r\n].*","",$BLOCK[$CurBlock]);

      // Запускаем фильтры

      _ProcessContent($CurBlock,$BLOCK[$CurBlock],$CURBLOCK_URL);

    }

    // Завершаем перехват потока вывода

    ob_end_clean();  $Handled=0;

  }

  // Если имя блока задано (а это происходит практически всегда),

  // значит, функция была вызвана нормальным образом, а не только для

  // того, чтобы завершить вывод последнего блока (см. функцию Load()).

  if($name!==false) {

    // Перехватываем поток вывода

    ob_start(); $Handled=1;

    // Тело явно не задано, значит, нужно его получить путем

    // перехвата выходного потока. Фактически, сейчас мы просто

    // говорим системе, что текущий блок — $name, и что как только

    // она встретит другой блок или конец файла, следует принять

    // выведенные данные и записать их в массив.

    if($value===false) {

      $CurBlock=$name;

    } else {

      // Тело задано явно. Записать блок в массив, но все равно

      // перехватить выходной поток (чтобы потом его проигнорировать).

      _ProcessContent($name,$value,$CURBLOCK_URL);

      $BLOCK[$name]=$value;

      $CurBlock=false;

    }

  }

}

// Загружает файл с URL $name и добавляет блоки, которые в нем

// находились, к списку существующих блоков. Параметр $name может

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

// поиск в глобальном массиве $INC (том же самом, который использует

// библиотекарь). Если в качестве $name задано не имя файла, а имя

// каталога, то анализируется файл .htaccess, расположенный

// в этом каталоге. На момент загрузки файла текущий каталог

// изменяется на тот, в котором расположен файл.

function Load($name)

{ global $BLOCK,$bSingleLine,$CURBLOCK_URL,$BLOCK_INC;

  // Перевести все пути в $INC в абсолютные

  AbsolutizeINC();

  // Если путь относительный, ищем по $BLOCK_INC

  $fname=false;




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