Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/sitepres.../lib/twig/src/Node
File: Node.php
<?php
[0] Fix | Delete
[1] Fix | Delete
/*
[2] Fix | Delete
* This file is part of Twig.
[3] Fix | Delete
*
[4] Fix | Delete
* (c) Fabien Potencier
[5] Fix | Delete
* (c) Armin Ronacher
[6] Fix | Delete
*
[7] Fix | Delete
* For the full copyright and license information, please view the LICENSE
[8] Fix | Delete
* file that was distributed with this source code.
[9] Fix | Delete
*/
[10] Fix | Delete
namespace WPML\Core\Twig\Node;
[11] Fix | Delete
[12] Fix | Delete
use WPML\Core\Twig\Compiler;
[13] Fix | Delete
use WPML\Core\Twig\Source;
[14] Fix | Delete
/**
[15] Fix | Delete
* Represents a node in the AST.
[16] Fix | Delete
*
[17] Fix | Delete
* @author Fabien Potencier <fabien@symfony.com>
[18] Fix | Delete
*/
[19] Fix | Delete
class Node implements \WPML\Core\Twig_NodeInterface
[20] Fix | Delete
{
[21] Fix | Delete
protected $nodes;
[22] Fix | Delete
protected $attributes;
[23] Fix | Delete
protected $lineno;
[24] Fix | Delete
protected $tag;
[25] Fix | Delete
private $name;
[26] Fix | Delete
private $sourceContext;
[27] Fix | Delete
/**
[28] Fix | Delete
* @param array $nodes An array of named nodes
[29] Fix | Delete
* @param array $attributes An array of attributes (should not be nodes)
[30] Fix | Delete
* @param int $lineno The line number
[31] Fix | Delete
* @param string $tag The tag name associated with the Node
[32] Fix | Delete
*/
[33] Fix | Delete
public function __construct(array $nodes = [], array $attributes = [], $lineno = 0, $tag = null)
[34] Fix | Delete
{
[35] Fix | Delete
foreach ($nodes as $name => $node) {
[36] Fix | Delete
if (!$node instanceof \WPML\Core\Twig_NodeInterface) {
[37] Fix | Delete
@\trigger_error(\sprintf('Using "%s" for the value of node "%s" of "%s" is deprecated since version 1.25 and will be removed in 2.0.', \is_object($node) ? \get_class($node) : (null === $node ? 'null' : \gettype($node)), $name, \get_class($this)), \E_USER_DEPRECATED);
[38] Fix | Delete
}
[39] Fix | Delete
}
[40] Fix | Delete
$this->nodes = $nodes;
[41] Fix | Delete
$this->attributes = $attributes;
[42] Fix | Delete
$this->lineno = $lineno;
[43] Fix | Delete
$this->tag = $tag;
[44] Fix | Delete
}
[45] Fix | Delete
public function __toString()
[46] Fix | Delete
{
[47] Fix | Delete
$attributes = [];
[48] Fix | Delete
foreach ($this->attributes as $name => $value) {
[49] Fix | Delete
$attributes[] = \sprintf('%s: %s', $name, \str_replace("\n", '', \var_export($value, \true)));
[50] Fix | Delete
}
[51] Fix | Delete
$repr = [\get_class($this) . '(' . \implode(', ', $attributes)];
[52] Fix | Delete
if (\count($this->nodes)) {
[53] Fix | Delete
foreach ($this->nodes as $name => $node) {
[54] Fix | Delete
$len = \strlen($name) + 4;
[55] Fix | Delete
$noderepr = [];
[56] Fix | Delete
foreach (\explode("\n", (string) $node) as $line) {
[57] Fix | Delete
$noderepr[] = \str_repeat(' ', $len) . $line;
[58] Fix | Delete
}
[59] Fix | Delete
$repr[] = \sprintf(' %s: %s', $name, \ltrim(\implode("\n", $noderepr)));
[60] Fix | Delete
}
[61] Fix | Delete
$repr[] = ')';
[62] Fix | Delete
} else {
[63] Fix | Delete
$repr[0] .= ')';
[64] Fix | Delete
}
[65] Fix | Delete
return \implode("\n", $repr);
[66] Fix | Delete
}
[67] Fix | Delete
/**
[68] Fix | Delete
* @deprecated since 1.16.1 (to be removed in 2.0)
[69] Fix | Delete
*/
[70] Fix | Delete
public function toXml($asDom = \false)
[71] Fix | Delete
{
[72] Fix | Delete
@\trigger_error(\sprintf('%s is deprecated since version 1.16.1 and will be removed in 2.0.', __METHOD__), \E_USER_DEPRECATED);
[73] Fix | Delete
$dom = new \DOMDocument('1.0', 'UTF-8');
[74] Fix | Delete
$dom->formatOutput = \true;
[75] Fix | Delete
$dom->appendChild($xml = $dom->createElement('twig'));
[76] Fix | Delete
$xml->appendChild($node = $dom->createElement('node'));
[77] Fix | Delete
$node->setAttribute('class', \get_class($this));
[78] Fix | Delete
foreach ($this->attributes as $name => $value) {
[79] Fix | Delete
$node->appendChild($attribute = $dom->createElement('attribute'));
[80] Fix | Delete
$attribute->setAttribute('name', $name);
[81] Fix | Delete
$attribute->appendChild($dom->createTextNode($value));
[82] Fix | Delete
}
[83] Fix | Delete
foreach ($this->nodes as $name => $n) {
[84] Fix | Delete
if (null === $n) {
[85] Fix | Delete
continue;
[86] Fix | Delete
}
[87] Fix | Delete
$child = $n->toXml(\true)->getElementsByTagName('node')->item(0);
[88] Fix | Delete
$child = $dom->importNode($child, \true);
[89] Fix | Delete
$child->setAttribute('name', $name);
[90] Fix | Delete
$node->appendChild($child);
[91] Fix | Delete
}
[92] Fix | Delete
return $asDom ? $dom : $dom->saveXML();
[93] Fix | Delete
}
[94] Fix | Delete
public function compile(\WPML\Core\Twig\Compiler $compiler)
[95] Fix | Delete
{
[96] Fix | Delete
foreach ($this->nodes as $node) {
[97] Fix | Delete
$node->compile($compiler);
[98] Fix | Delete
}
[99] Fix | Delete
}
[100] Fix | Delete
public function getTemplateLine()
[101] Fix | Delete
{
[102] Fix | Delete
return $this->lineno;
[103] Fix | Delete
}
[104] Fix | Delete
/**
[105] Fix | Delete
* @deprecated since 1.27 (to be removed in 2.0)
[106] Fix | Delete
*/
[107] Fix | Delete
public function getLine()
[108] Fix | Delete
{
[109] Fix | Delete
@\trigger_error('The ' . __METHOD__ . ' method is deprecated since version 1.27 and will be removed in 2.0. Use getTemplateLine() instead.', \E_USER_DEPRECATED);
[110] Fix | Delete
return $this->lineno;
[111] Fix | Delete
}
[112] Fix | Delete
public function getNodeTag()
[113] Fix | Delete
{
[114] Fix | Delete
return $this->tag;
[115] Fix | Delete
}
[116] Fix | Delete
/**
[117] Fix | Delete
* @return bool
[118] Fix | Delete
*/
[119] Fix | Delete
public function hasAttribute($name)
[120] Fix | Delete
{
[121] Fix | Delete
return \array_key_exists($name, $this->attributes);
[122] Fix | Delete
}
[123] Fix | Delete
/**
[124] Fix | Delete
* @return mixed
[125] Fix | Delete
*/
[126] Fix | Delete
public function getAttribute($name)
[127] Fix | Delete
{
[128] Fix | Delete
if (!\array_key_exists($name, $this->attributes)) {
[129] Fix | Delete
throw new \LogicException(\sprintf('Attribute "%s" does not exist for Node "%s".', $name, \get_class($this)));
[130] Fix | Delete
}
[131] Fix | Delete
return $this->attributes[$name];
[132] Fix | Delete
}
[133] Fix | Delete
/**
[134] Fix | Delete
* @param string $name
[135] Fix | Delete
* @param mixed $value
[136] Fix | Delete
*/
[137] Fix | Delete
public function setAttribute($name, $value)
[138] Fix | Delete
{
[139] Fix | Delete
$this->attributes[$name] = $value;
[140] Fix | Delete
}
[141] Fix | Delete
public function removeAttribute($name)
[142] Fix | Delete
{
[143] Fix | Delete
unset($this->attributes[$name]);
[144] Fix | Delete
}
[145] Fix | Delete
/**
[146] Fix | Delete
* @return bool
[147] Fix | Delete
*/
[148] Fix | Delete
public function hasNode($name)
[149] Fix | Delete
{
[150] Fix | Delete
return \array_key_exists($name, $this->nodes);
[151] Fix | Delete
}
[152] Fix | Delete
/**
[153] Fix | Delete
* @return Node
[154] Fix | Delete
*/
[155] Fix | Delete
public function getNode($name)
[156] Fix | Delete
{
[157] Fix | Delete
if (!\array_key_exists($name, $this->nodes)) {
[158] Fix | Delete
throw new \LogicException(\sprintf('Node "%s" does not exist for Node "%s".', $name, \get_class($this)));
[159] Fix | Delete
}
[160] Fix | Delete
return $this->nodes[$name];
[161] Fix | Delete
}
[162] Fix | Delete
public function setNode($name, $node = null)
[163] Fix | Delete
{
[164] Fix | Delete
if (!$node instanceof \WPML\Core\Twig_NodeInterface) {
[165] Fix | Delete
@\trigger_error(\sprintf('Using "%s" for the value of node "%s" of "%s" is deprecated since version 1.25 and will be removed in 2.0.', \is_object($node) ? \get_class($node) : (null === $node ? 'null' : \gettype($node)), $name, \get_class($this)), \E_USER_DEPRECATED);
[166] Fix | Delete
}
[167] Fix | Delete
$this->nodes[$name] = $node;
[168] Fix | Delete
}
[169] Fix | Delete
public function removeNode($name)
[170] Fix | Delete
{
[171] Fix | Delete
unset($this->nodes[$name]);
[172] Fix | Delete
}
[173] Fix | Delete
public function count()
[174] Fix | Delete
{
[175] Fix | Delete
return \count($this->nodes);
[176] Fix | Delete
}
[177] Fix | Delete
public function getIterator()
[178] Fix | Delete
{
[179] Fix | Delete
return new \ArrayIterator($this->nodes);
[180] Fix | Delete
}
[181] Fix | Delete
public function setTemplateName($name)
[182] Fix | Delete
{
[183] Fix | Delete
$this->name = $name;
[184] Fix | Delete
foreach ($this->nodes as $node) {
[185] Fix | Delete
if (null !== $node) {
[186] Fix | Delete
$node->setTemplateName($name);
[187] Fix | Delete
}
[188] Fix | Delete
}
[189] Fix | Delete
}
[190] Fix | Delete
public function getTemplateName()
[191] Fix | Delete
{
[192] Fix | Delete
return $this->name;
[193] Fix | Delete
}
[194] Fix | Delete
public function setSourceContext(\WPML\Core\Twig\Source $source)
[195] Fix | Delete
{
[196] Fix | Delete
$this->sourceContext = $source;
[197] Fix | Delete
foreach ($this->nodes as $node) {
[198] Fix | Delete
if ($node instanceof \WPML\Core\Twig\Node\Node) {
[199] Fix | Delete
$node->setSourceContext($source);
[200] Fix | Delete
}
[201] Fix | Delete
}
[202] Fix | Delete
}
[203] Fix | Delete
public function getSourceContext()
[204] Fix | Delete
{
[205] Fix | Delete
return $this->sourceContext;
[206] Fix | Delete
}
[207] Fix | Delete
/**
[208] Fix | Delete
* @deprecated since 1.27 (to be removed in 2.0)
[209] Fix | Delete
*/
[210] Fix | Delete
public function setFilename($name)
[211] Fix | Delete
{
[212] Fix | Delete
@\trigger_error('The ' . __METHOD__ . ' method is deprecated since version 1.27 and will be removed in 2.0. Use setTemplateName() instead.', \E_USER_DEPRECATED);
[213] Fix | Delete
$this->setTemplateName($name);
[214] Fix | Delete
}
[215] Fix | Delete
/**
[216] Fix | Delete
* @deprecated since 1.27 (to be removed in 2.0)
[217] Fix | Delete
*/
[218] Fix | Delete
public function getFilename()
[219] Fix | Delete
{
[220] Fix | Delete
@\trigger_error('The ' . __METHOD__ . ' method is deprecated since version 1.27 and will be removed in 2.0. Use getTemplateName() instead.', \E_USER_DEPRECATED);
[221] Fix | Delete
return $this->name;
[222] Fix | Delete
}
[223] Fix | Delete
}
[224] Fix | Delete
\class_alias('WPML\\Core\\Twig\\Node\\Node', 'WPML\\Core\\Twig_Node');
[225] Fix | Delete
// Ensure that the aliased name is loaded to keep BC for classes implementing the typehint with the old aliased name.
[226] Fix | Delete
\class_exists('WPML\\Core\\Twig\\Compiler');
[227] Fix | Delete
[228] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function