本文整理汇总了PHP中PHPTAL_Php_CodeWriter::pushHTML方法的典型用法代码示例。如果您正苦于以下问题:PHP PHPTAL_Php_CodeWriter::pushHTML方法的具体用法?PHP PHPTAL_Php_CodeWriter::pushHTML怎么用?PHP PHPTAL_Php_CodeWriter::pushHTML使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PHPTAL_Php_CodeWriter
的用法示例。
在下文中一共展示了PHPTAL_Php_CodeWriter::pushHTML方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generateCode
public function generateCode(PHPTAL_Php_CodeWriter $codewriter)
{
if (preg_match('/^<\\?(?:php|[=\\s])/i', $this->getValueEscaped())) {
// block will be executed as PHP
$codewriter->pushHTML($this->getValueEscaped());
} else {
$codewriter->doEchoRaw("'<'");
$codewriter->pushHTML(substr($codewriter->interpolateHTML($this->getValueEscaped()), 1));
}
}
示例2: generateCode
public function generateCode(PHPTAL_Php_CodeWriter $codewriter)
{
$mode = $codewriter->getOutputMode();
$value = $this->getValueEscaped();
$inCDATAelement = PHPTAL_Dom_Defs::getInstance()->isCDATAElementInHTML($this->parentNode->getNamespaceURI(), $this->parentNode->getLocalName());
// in HTML5 must limit it to <script> and <style>
if ($mode === PHPTAL::HTML5 && $inCDATAelement) {
$codewriter->pushHTML($codewriter->interpolateCDATA(str_replace('</', '<\\/', $value)));
} elseif ($mode === PHPTAL::XHTML && $inCDATAelement || $mode === PHPTAL::XML && preg_match('/[<>&]/', $value) || $mode !== PHPTAL::HTML5 && preg_match('/<\\?|\\${structure/', $value)) {
// in text/html "</" is dangerous and the only sensible way to escape is ECMAScript string escapes.
if ($mode === PHPTAL::XHTML) {
$value = str_replace('</', '<\\/', $value);
}
$codewriter->pushHTML($codewriter->interpolateCDATA('<![CDATA[' . $value . ']]>'));
} else {
$codewriter->pushHTML($codewriter->interpolateHTML(htmlspecialchars($value, ENT_QUOTES, $codewriter->getEncoding())));
}
}
示例3: testFunctionsGeneration
function testFunctionsGeneration()
{
$state = new PHPTAL_Php_State($this->newPHPTAL());
$codewriter = new PHPTAL_Php_CodeWriter($state);
$codewriter->doFunction('test1', '$tpl');
$codewriter->pushHTML($codewriter->interpolateHTML('test1'));
$codewriter->doFunction('test2', '$tpl');
$codewriter->pushHTML('test2');
$codewriter->doEnd();
$codewriter->pushHTML('test1');
$codewriter->doEnd();
$res = $codewriter->getResult();
$exp = <<<EOS
<?php function test2(\$tpl) {?>test2<?php}?>
<?php function test1(\$tpl) {?>test1test1<?php}?>
EOS;
$res = normalize_phpsource($res, true);
$exp = normalize_phpsource($exp, true);
$this->assertEquals($exp, $res);
}
示例4: after
public function after(PHPTAL_Php_CodeWriter $codewriter)
{
$var = $codewriter->createTempVariable();
$codewriter->pushCode('ob_end_flush()');
$codewriter->doCatch('Exception ' . $var);
$codewriter->pushCode('$tpl->addError(' . $var . ')');
$codewriter->pushCode('ob_end_clean()');
$expression = $this->extractEchoType($this->expression);
$code = $codewriter->evaluateExpression($expression);
switch ($code) {
case PHPTAL_Php_TalesInternal::NOTHING_KEYWORD:
break;
case PHPTAL_Php_TalesInternal::DEFAULT_KEYWORD:
$codewriter->pushHTML('<pre class="phptalError"');
$codewriter->doEchoRaw($var);
$codewriter->pushHTML('</pre>');
break;
default:
$this->doEchoAttribute($codewriter, $code);
break;
}
$codewriter->doEnd();
$codewriter->recycleTempVariable($var);
}
示例5: generateAttributes
private function generateAttributes(PHPTAL_Php_CodeWriter $codewriter)
{
$html5mode = $codewriter->getOutputMode() === PHPTAL::HTML5;
foreach ($this->getAttributeNodes() as $attr) {
// xmlns:foo is not allowed in text/html
if ($html5mode && $attr->isNamespaceDeclaration()) {
continue;
}
switch ($attr->getReplacedState()) {
case PHPTAL_Dom_Attr::NOT_REPLACED:
$codewriter->pushHTML(' ' . $attr->getQualifiedName());
if ($codewriter->getOutputMode() !== PHPTAL::HTML5 || !PHPTAL_Dom_Defs::getInstance()->isBooleanAttribute($attr->getQualifiedName())) {
$html = $codewriter->interpolateHTML($attr->getValueEscaped());
$codewriter->pushHTML('=' . $codewriter->quoteAttributeValue($html));
}
break;
case PHPTAL_Dom_Attr::HIDDEN:
break;
case PHPTAL_Dom_Attr::FULLY_REPLACED:
$codewriter->pushHTML($attr->getValueEscaped());
break;
case PHPTAL_Dom_Attr::VALUE_REPLACED:
$codewriter->pushHTML(' ' . $attr->getQualifiedName() . '="');
$codewriter->pushHTML($attr->getValueEscaped());
$codewriter->pushHTML('"');
break;
}
}
}
示例6: generateCode
public function generateCode(PHPTAL_Php_CodeWriter $codewriter)
{
if (!preg_match('/^\\s*!/', $this->getValueEscaped())) {
$codewriter->pushHTML('<!--' . $this->getValueEscaped() . '-->');
}
}
示例7: generateCode
public function generateCode(PHPTAL_Php_CodeWriter $codewriter)
{
$codewriter->pushHTML($codewriter->interpolateHTML($this->getValueEscaped()));
}