00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00028 class PHPTAL_Attribute_TAL_Content extends PHPTAL_Attribute
00029 {
00030 function
activate(&$g, &$tag)
00031 {
00032
if (preg_match('/\|\s*?\bdefault\b/sm', $this->expression)) {
00033 $g->doOBStart();
00034 foreach ($tag->_children as $child) {
00035 $err = $child->generateCode($g);
00036
if (PEAR::isError($err)) {
return $err; }
00037 }
00038 $g->doOBEnd('$__default__');
00039 $default =
true;
00040 }
00041
00042 $g->setSource($tag->name(), $tag->line);
00043 $exp =
new PHPTAL_Expression($g, $tag, $this->expression);
00044 $exp->setPolicy(
_PHPTAL_ES_RECEIVER_IS_OUTPUT);
00045 $err = $exp->generate();
00046
if (PEAR::isError($err)) {
return $err; }
00047
00048
if (isset($
default)) { $g->execute('unset($__default__)'); }
00049 }
00050 }
00051
00052 ?>