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

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/sitepres.../lib/twig/src
File: Environment.php
public function isTemplateFresh($name, $time)
[500] Fix | Delete
{
[501] Fix | Delete
if (0 === $this->lastModifiedExtension) {
[502] Fix | Delete
foreach ($this->extensions as $extension) {
[503] Fix | Delete
$r = new \ReflectionObject($extension);
[504] Fix | Delete
if (\file_exists($r->getFileName()) && ($extensionTime = \filemtime($r->getFileName())) > $this->lastModifiedExtension) {
[505] Fix | Delete
$this->lastModifiedExtension = $extensionTime;
[506] Fix | Delete
}
[507] Fix | Delete
}
[508] Fix | Delete
}
[509] Fix | Delete
return $this->lastModifiedExtension <= $time && $this->getLoader()->isFresh($name, $time);
[510] Fix | Delete
}
[511] Fix | Delete
/**
[512] Fix | Delete
* Tries to load a template consecutively from an array.
[513] Fix | Delete
*
[514] Fix | Delete
* Similar to load() but it also accepts instances of \Twig\Template and
[515] Fix | Delete
* \Twig\TemplateWrapper, and an array of templates where each is tried to be loaded.
[516] Fix | Delete
*
[517] Fix | Delete
* @param string|Template|\Twig\TemplateWrapper|array $names A template or an array of templates to try consecutively
[518] Fix | Delete
*
[519] Fix | Delete
* @return TemplateWrapper|Template
[520] Fix | Delete
*
[521] Fix | Delete
* @throws LoaderError When none of the templates can be found
[522] Fix | Delete
* @throws SyntaxError When an error occurred during compilation
[523] Fix | Delete
*/
[524] Fix | Delete
public function resolveTemplate($names)
[525] Fix | Delete
{
[526] Fix | Delete
if (!\is_array($names)) {
[527] Fix | Delete
$names = [$names];
[528] Fix | Delete
}
[529] Fix | Delete
foreach ($names as $name) {
[530] Fix | Delete
if ($name instanceof \WPML\Core\Twig\Template) {
[531] Fix | Delete
return $name;
[532] Fix | Delete
}
[533] Fix | Delete
if ($name instanceof \WPML\Core\Twig\TemplateWrapper) {
[534] Fix | Delete
return $name;
[535] Fix | Delete
}
[536] Fix | Delete
try {
[537] Fix | Delete
return $this->loadTemplate($name);
[538] Fix | Delete
} catch (\WPML\Core\Twig\Error\LoaderError $e) {
[539] Fix | Delete
if (1 === \count($names)) {
[540] Fix | Delete
throw $e;
[541] Fix | Delete
}
[542] Fix | Delete
}
[543] Fix | Delete
}
[544] Fix | Delete
throw new \WPML\Core\Twig\Error\LoaderError(\sprintf('Unable to find one of the following templates: "%s".', \implode('", "', $names)));
[545] Fix | Delete
}
[546] Fix | Delete
/**
[547] Fix | Delete
* Clears the internal template cache.
[548] Fix | Delete
*
[549] Fix | Delete
* @deprecated since 1.18.3 (to be removed in 2.0)
[550] Fix | Delete
*/
[551] Fix | Delete
public function clearTemplateCache()
[552] Fix | Delete
{
[553] Fix | Delete
@\trigger_error(\sprintf('The %s method is deprecated since version 1.18.3 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
[554] Fix | Delete
$this->loadedTemplates = [];
[555] Fix | Delete
}
[556] Fix | Delete
/**
[557] Fix | Delete
* Clears the template cache files on the filesystem.
[558] Fix | Delete
*
[559] Fix | Delete
* @deprecated since 1.22 (to be removed in 2.0)
[560] Fix | Delete
*/
[561] Fix | Delete
public function clearCacheFiles()
[562] Fix | Delete
{
[563] Fix | Delete
@\trigger_error(\sprintf('The %s method is deprecated since version 1.22 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
[564] Fix | Delete
if (\is_string($this->originalCache)) {
[565] Fix | Delete
foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->originalCache), \RecursiveIteratorIterator::LEAVES_ONLY) as $file) {
[566] Fix | Delete
if ($file->isFile()) {
[567] Fix | Delete
@\unlink($file->getPathname());
[568] Fix | Delete
}
[569] Fix | Delete
}
[570] Fix | Delete
}
[571] Fix | Delete
}
[572] Fix | Delete
/**
[573] Fix | Delete
* Gets the Lexer instance.
[574] Fix | Delete
*
[575] Fix | Delete
* @return \Twig_LexerInterface
[576] Fix | Delete
*
[577] Fix | Delete
* @deprecated since 1.25 (to be removed in 2.0)
[578] Fix | Delete
*/
[579] Fix | Delete
public function getLexer()
[580] Fix | Delete
{
[581] Fix | Delete
@\trigger_error(\sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), \E_USER_DEPRECATED);
[582] Fix | Delete
if (null === $this->lexer) {
[583] Fix | Delete
$this->lexer = new \WPML\Core\Twig\Lexer($this);
[584] Fix | Delete
}
[585] Fix | Delete
return $this->lexer;
[586] Fix | Delete
}
[587] Fix | Delete
public function setLexer(\WPML\Core\Twig_LexerInterface $lexer)
[588] Fix | Delete
{
[589] Fix | Delete
$this->lexer = $lexer;
[590] Fix | Delete
}
[591] Fix | Delete
/**
[592] Fix | Delete
* Tokenizes a source code.
[593] Fix | Delete
*
[594] Fix | Delete
* @param string|Source $source The template source code
[595] Fix | Delete
* @param string $name The template name (deprecated)
[596] Fix | Delete
*
[597] Fix | Delete
* @return TokenStream
[598] Fix | Delete
*
[599] Fix | Delete
* @throws SyntaxError When the code is syntactically wrong
[600] Fix | Delete
*/
[601] Fix | Delete
public function tokenize($source, $name = null)
[602] Fix | Delete
{
[603] Fix | Delete
if (!$source instanceof \WPML\Core\Twig\Source) {
[604] Fix | Delete
@\trigger_error(\sprintf('Passing a string as the $source argument of %s() is deprecated since version 1.27. Pass a Twig\\Source instance instead.', __METHOD__), \E_USER_DEPRECATED);
[605] Fix | Delete
$source = new \WPML\Core\Twig\Source($source, $name);
[606] Fix | Delete
}
[607] Fix | Delete
if (null === $this->lexer) {
[608] Fix | Delete
$this->lexer = new \WPML\Core\Twig\Lexer($this);
[609] Fix | Delete
}
[610] Fix | Delete
return $this->lexer->tokenize($source);
[611] Fix | Delete
}
[612] Fix | Delete
/**
[613] Fix | Delete
* Gets the Parser instance.
[614] Fix | Delete
*
[615] Fix | Delete
* @return \Twig_ParserInterface
[616] Fix | Delete
*
[617] Fix | Delete
* @deprecated since 1.25 (to be removed in 2.0)
[618] Fix | Delete
*/
[619] Fix | Delete
public function getParser()
[620] Fix | Delete
{
[621] Fix | Delete
@\trigger_error(\sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), \E_USER_DEPRECATED);
[622] Fix | Delete
if (null === $this->parser) {
[623] Fix | Delete
$this->parser = new \WPML\Core\Twig\Parser($this);
[624] Fix | Delete
}
[625] Fix | Delete
return $this->parser;
[626] Fix | Delete
}
[627] Fix | Delete
public function setParser(\WPML\Core\Twig_ParserInterface $parser)
[628] Fix | Delete
{
[629] Fix | Delete
$this->parser = $parser;
[630] Fix | Delete
}
[631] Fix | Delete
/**
[632] Fix | Delete
* Converts a token stream to a node tree.
[633] Fix | Delete
*
[634] Fix | Delete
* @return ModuleNode
[635] Fix | Delete
*
[636] Fix | Delete
* @throws SyntaxError When the token stream is syntactically or semantically wrong
[637] Fix | Delete
*/
[638] Fix | Delete
public function parse(\WPML\Core\Twig\TokenStream $stream)
[639] Fix | Delete
{
[640] Fix | Delete
if (null === $this->parser) {
[641] Fix | Delete
$this->parser = new \WPML\Core\Twig\Parser($this);
[642] Fix | Delete
}
[643] Fix | Delete
return $this->parser->parse($stream);
[644] Fix | Delete
}
[645] Fix | Delete
/**
[646] Fix | Delete
* Gets the Compiler instance.
[647] Fix | Delete
*
[648] Fix | Delete
* @return \Twig_CompilerInterface
[649] Fix | Delete
*
[650] Fix | Delete
* @deprecated since 1.25 (to be removed in 2.0)
[651] Fix | Delete
*/
[652] Fix | Delete
public function getCompiler()
[653] Fix | Delete
{
[654] Fix | Delete
@\trigger_error(\sprintf('The %s() method is deprecated since version 1.25 and will be removed in 2.0.', __FUNCTION__), \E_USER_DEPRECATED);
[655] Fix | Delete
if (null === $this->compiler) {
[656] Fix | Delete
$this->compiler = new \WPML\Core\Twig\Compiler($this);
[657] Fix | Delete
}
[658] Fix | Delete
return $this->compiler;
[659] Fix | Delete
}
[660] Fix | Delete
public function setCompiler(\WPML\Core\Twig_CompilerInterface $compiler)
[661] Fix | Delete
{
[662] Fix | Delete
$this->compiler = $compiler;
[663] Fix | Delete
}
[664] Fix | Delete
/**
[665] Fix | Delete
* Compiles a node and returns the PHP code.
[666] Fix | Delete
*
[667] Fix | Delete
* @return string The compiled PHP source code
[668] Fix | Delete
*/
[669] Fix | Delete
public function compile(\WPML\Core\Twig_NodeInterface $node)
[670] Fix | Delete
{
[671] Fix | Delete
if (null === $this->compiler) {
[672] Fix | Delete
$this->compiler = new \WPML\Core\Twig\Compiler($this);
[673] Fix | Delete
}
[674] Fix | Delete
return $this->compiler->compile($node)->getSource();
[675] Fix | Delete
}
[676] Fix | Delete
/**
[677] Fix | Delete
* Compiles a template source code.
[678] Fix | Delete
*
[679] Fix | Delete
* @param string|Source $source The template source code
[680] Fix | Delete
* @param string $name The template name (deprecated)
[681] Fix | Delete
*
[682] Fix | Delete
* @return string The compiled PHP source code
[683] Fix | Delete
*
[684] Fix | Delete
* @throws SyntaxError When there was an error during tokenizing, parsing or compiling
[685] Fix | Delete
*/
[686] Fix | Delete
public function compileSource($source, $name = null)
[687] Fix | Delete
{
[688] Fix | Delete
if (!$source instanceof \WPML\Core\Twig\Source) {
[689] Fix | Delete
@\trigger_error(\sprintf('Passing a string as the $source argument of %s() is deprecated since version 1.27. Pass a Twig\\Source instance instead.', __METHOD__), \E_USER_DEPRECATED);
[690] Fix | Delete
$source = new \WPML\Core\Twig\Source($source, $name);
[691] Fix | Delete
}
[692] Fix | Delete
try {
[693] Fix | Delete
return $this->compile($this->parse($this->tokenize($source)));
[694] Fix | Delete
} catch (\WPML\Core\Twig\Error\Error $e) {
[695] Fix | Delete
$e->setSourceContext($source);
[696] Fix | Delete
throw $e;
[697] Fix | Delete
} catch (\Exception $e) {
[698] Fix | Delete
throw new \WPML\Core\Twig\Error\SyntaxError(\sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $source, $e);
[699] Fix | Delete
}
[700] Fix | Delete
}
[701] Fix | Delete
public function setLoader(\WPML\Core\Twig\Loader\LoaderInterface $loader)
[702] Fix | Delete
{
[703] Fix | Delete
if (!$loader instanceof \WPML\Core\Twig\Loader\SourceContextLoaderInterface && 0 !== \strpos(\get_class($loader), 'Mock_')) {
[704] Fix | Delete
@\trigger_error(\sprintf('Twig loader "%s" should implement Twig\\Loader\\SourceContextLoaderInterface since version 1.27.', \get_class($loader)), \E_USER_DEPRECATED);
[705] Fix | Delete
}
[706] Fix | Delete
$this->loader = $loader;
[707] Fix | Delete
}
[708] Fix | Delete
/**
[709] Fix | Delete
* Gets the Loader instance.
[710] Fix | Delete
*
[711] Fix | Delete
* @return LoaderInterface
[712] Fix | Delete
*/
[713] Fix | Delete
public function getLoader()
[714] Fix | Delete
{
[715] Fix | Delete
if (null === $this->loader) {
[716] Fix | Delete
throw new \LogicException('You must set a loader first.');
[717] Fix | Delete
}
[718] Fix | Delete
return $this->loader;
[719] Fix | Delete
}
[720] Fix | Delete
/**
[721] Fix | Delete
* Sets the default template charset.
[722] Fix | Delete
*
[723] Fix | Delete
* @param string $charset The default charset
[724] Fix | Delete
*/
[725] Fix | Delete
public function setCharset($charset)
[726] Fix | Delete
{
[727] Fix | Delete
$this->charset = \strtoupper($charset);
[728] Fix | Delete
}
[729] Fix | Delete
/**
[730] Fix | Delete
* Gets the default template charset.
[731] Fix | Delete
*
[732] Fix | Delete
* @return string The default charset
[733] Fix | Delete
*/
[734] Fix | Delete
public function getCharset()
[735] Fix | Delete
{
[736] Fix | Delete
return $this->charset;
[737] Fix | Delete
}
[738] Fix | Delete
/**
[739] Fix | Delete
* Initializes the runtime environment.
[740] Fix | Delete
*
[741] Fix | Delete
* @deprecated since 1.23 (to be removed in 2.0)
[742] Fix | Delete
*/
[743] Fix | Delete
public function initRuntime()
[744] Fix | Delete
{
[745] Fix | Delete
$this->runtimeInitialized = \true;
[746] Fix | Delete
foreach ($this->getExtensions() as $name => $extension) {
[747] Fix | Delete
if (!$extension instanceof \WPML\Core\Twig\Extension\InitRuntimeInterface) {
[748] Fix | Delete
$m = new \ReflectionMethod($extension, 'initRuntime');
[749] Fix | Delete
$parentClass = $m->getDeclaringClass()->getName();
[750] Fix | Delete
if ('Twig_Extension' !== $parentClass && 'WPML\\Core\\Twig\\Extension\\AbstractExtension' !== $parentClass) {
[751] Fix | Delete
@\trigger_error(\sprintf('Defining the initRuntime() method in the "%s" extension is deprecated since version 1.23. Use the `needs_environment` option to get the \\Twig_Environment instance in filters, functions, or tests; or explicitly implement Twig\\Extension\\InitRuntimeInterface if needed (not recommended).', $name), \E_USER_DEPRECATED);
[752] Fix | Delete
}
[753] Fix | Delete
}
[754] Fix | Delete
$extension->initRuntime($this);
[755] Fix | Delete
}
[756] Fix | Delete
}
[757] Fix | Delete
/**
[758] Fix | Delete
* Returns true if the given extension is registered.
[759] Fix | Delete
*
[760] Fix | Delete
* @param string $class The extension class name
[761] Fix | Delete
*
[762] Fix | Delete
* @return bool Whether the extension is registered or not
[763] Fix | Delete
*/
[764] Fix | Delete
public function hasExtension($class)
[765] Fix | Delete
{
[766] Fix | Delete
$class = \ltrim($class, '\\');
[767] Fix | Delete
if (!isset($this->extensionsByClass[$class]) && \class_exists($class, \false)) {
[768] Fix | Delete
// For BC/FC with namespaced aliases
[769] Fix | Delete
$class = new \ReflectionClass($class);
[770] Fix | Delete
$class = $class->name;
[771] Fix | Delete
}
[772] Fix | Delete
if (isset($this->extensions[$class])) {
[773] Fix | Delete
if ($class !== \get_class($this->extensions[$class])) {
[774] Fix | Delete
@\trigger_error(\sprintf('Referencing the "%s" extension by its name (defined by getName()) is deprecated since 1.26 and will be removed in Twig 2.0. Use the Fully Qualified Extension Class Name instead.', $class), \E_USER_DEPRECATED);
[775] Fix | Delete
}
[776] Fix | Delete
return \true;
[777] Fix | Delete
}
[778] Fix | Delete
return isset($this->extensionsByClass[$class]);
[779] Fix | Delete
}
[780] Fix | Delete
/**
[781] Fix | Delete
* Adds a runtime loader.
[782] Fix | Delete
*/
[783] Fix | Delete
public function addRuntimeLoader(\WPML\Core\Twig\RuntimeLoader\RuntimeLoaderInterface $loader)
[784] Fix | Delete
{
[785] Fix | Delete
$this->runtimeLoaders[] = $loader;
[786] Fix | Delete
}
[787] Fix | Delete
/**
[788] Fix | Delete
* Gets an extension by class name.
[789] Fix | Delete
*
[790] Fix | Delete
* @param string $class The extension class name
[791] Fix | Delete
*
[792] Fix | Delete
* @return ExtensionInterface
[793] Fix | Delete
*/
[794] Fix | Delete
public function getExtension($class)
[795] Fix | Delete
{
[796] Fix | Delete
$class = \ltrim($class, '\\');
[797] Fix | Delete
if (!isset($this->extensionsByClass[$class]) && \class_exists($class, \false)) {
[798] Fix | Delete
// For BC/FC with namespaced aliases
[799] Fix | Delete
$class = new \ReflectionClass($class);
[800] Fix | Delete
$class = $class->name;
[801] Fix | Delete
}
[802] Fix | Delete
if (isset($this->extensions[$class])) {
[803] Fix | Delete
if ($class !== \get_class($this->extensions[$class])) {
[804] Fix | Delete
@\trigger_error(\sprintf('Referencing the "%s" extension by its name (defined by getName()) is deprecated since 1.26 and will be removed in Twig 2.0. Use the Fully Qualified Extension Class Name instead.', $class), \E_USER_DEPRECATED);
[805] Fix | Delete
}
[806] Fix | Delete
return $this->extensions[$class];
[807] Fix | Delete
}
[808] Fix | Delete
if (!isset($this->extensionsByClass[$class])) {
[809] Fix | Delete
throw new \WPML\Core\Twig\Error\RuntimeError(\sprintf('The "%s" extension is not enabled.', $class));
[810] Fix | Delete
}
[811] Fix | Delete
return $this->extensionsByClass[$class];
[812] Fix | Delete
}
[813] Fix | Delete
/**
[814] Fix | Delete
* Returns the runtime implementation of a Twig element (filter/function/test).
[815] Fix | Delete
*
[816] Fix | Delete
* @param string $class A runtime class name
[817] Fix | Delete
*
[818] Fix | Delete
* @return object The runtime implementation
[819] Fix | Delete
*
[820] Fix | Delete
* @throws RuntimeError When the template cannot be found
[821] Fix | Delete
*/
[822] Fix | Delete
public function getRuntime($class)
[823] Fix | Delete
{
[824] Fix | Delete
if (isset($this->runtimes[$class])) {
[825] Fix | Delete
return $this->runtimes[$class];
[826] Fix | Delete
}
[827] Fix | Delete
foreach ($this->runtimeLoaders as $loader) {
[828] Fix | Delete
if (null !== ($runtime = $loader->load($class))) {
[829] Fix | Delete
return $this->runtimes[$class] = $runtime;
[830] Fix | Delete
}
[831] Fix | Delete
}
[832] Fix | Delete
throw new \WPML\Core\Twig\Error\RuntimeError(\sprintf('Unable to load the "%s" runtime.', $class));
[833] Fix | Delete
}
[834] Fix | Delete
public function addExtension(\WPML\Core\Twig\Extension\ExtensionInterface $extension)
[835] Fix | Delete
{
[836] Fix | Delete
if ($this->extensionInitialized) {
[837] Fix | Delete
throw new \LogicException(\sprintf('Unable to register extension "%s" as extensions have already been initialized.', $extension->getName()));
[838] Fix | Delete
}
[839] Fix | Delete
$class = \get_class($extension);
[840] Fix | Delete
if ($class !== $extension->getName()) {
[841] Fix | Delete
if (isset($this->extensions[$extension->getName()])) {
[842] Fix | Delete
unset($this->extensions[$extension->getName()], $this->extensionsByClass[$class]);
[843] Fix | Delete
@\trigger_error(\sprintf('The possibility to register the same extension twice ("%s") is deprecated since version 1.23 and will be removed in Twig 2.0. Use proper PHP inheritance instead.', $extension->getName()), \E_USER_DEPRECATED);
[844] Fix | Delete
}
[845] Fix | Delete
}
[846] Fix | Delete
$this->lastModifiedExtension = 0;
[847] Fix | Delete
$this->extensionsByClass[$class] = $extension;
[848] Fix | Delete
$this->extensions[$extension->getName()] = $extension;
[849] Fix | Delete
$this->updateOptionsHash();
[850] Fix | Delete
}
[851] Fix | Delete
/**
[852] Fix | Delete
* Removes an extension by name.
[853] Fix | Delete
*
[854] Fix | Delete
* This method is deprecated and you should not use it.
[855] Fix | Delete
*
[856] Fix | Delete
* @param string $name The extension name
[857] Fix | Delete
*
[858] Fix | Delete
* @deprecated since 1.12 (to be removed in 2.0)
[859] Fix | Delete
*/
[860] Fix | Delete
public function removeExtension($name)
[861] Fix | Delete
{
[862] Fix | Delete
@\trigger_error(\sprintf('The %s method is deprecated since version 1.12 and will be removed in Twig 2.0.', __METHOD__), \E_USER_DEPRECATED);
[863] Fix | Delete
if ($this->extensionInitialized) {
[864] Fix | Delete
throw new \LogicException(\sprintf('Unable to remove extension "%s" as extensions have already been initialized.', $name));
[865] Fix | Delete
}
[866] Fix | Delete
$class = \ltrim($name, '\\');
[867] Fix | Delete
if (!isset($this->extensionsByClass[$class]) && \class_exists($class, \false)) {
[868] Fix | Delete
// For BC/FC with namespaced aliases
[869] Fix | Delete
$class = new \ReflectionClass($class);
[870] Fix | Delete
$class = $class->name;
[871] Fix | Delete
}
[872] Fix | Delete
if (isset($this->extensions[$class])) {
[873] Fix | Delete
if ($class !== \get_class($this->extensions[$class])) {
[874] Fix | Delete
@\trigger_error(\sprintf('Referencing the "%s" extension by its name (defined by getName()) is deprecated since 1.26 and will be removed in Twig 2.0. Use the Fully Qualified Extension Class Name instead.', $class), \E_USER_DEPRECATED);
[875] Fix | Delete
}
[876] Fix | Delete
unset($this->extensions[$class]);
[877] Fix | Delete
}
[878] Fix | Delete
unset($this->extensions[$class]);
[879] Fix | Delete
$this->updateOptionsHash();
[880] Fix | Delete
}
[881] Fix | Delete
/**
[882] Fix | Delete
* Registers an array of extensions.
[883] Fix | Delete
*
[884] Fix | Delete
* @param array $extensions An array of extensions
[885] Fix | Delete
*/
[886] Fix | Delete
public function setExtensions(array $extensions)
[887] Fix | Delete
{
[888] Fix | Delete
foreach ($extensions as $extension) {
[889] Fix | Delete
$this->addExtension($extension);
[890] Fix | Delete
}
[891] Fix | Delete
}
[892] Fix | Delete
/**
[893] Fix | Delete
* Returns all registered extensions.
[894] Fix | Delete
*
[895] Fix | Delete
* @return ExtensionInterface[] An array of extensions (keys are for internal usage only and should not be relied on)
[896] Fix | Delete
*/
[897] Fix | Delete
public function getExtensions()
[898] Fix | Delete
{
[899] Fix | Delete
return $this->extensions;
[900] Fix | Delete
}
[901] Fix | Delete
public function addTokenParser(\WPML\Core\Twig\TokenParser\TokenParserInterface $parser)
[902] Fix | Delete
{
[903] Fix | Delete
if ($this->extensionInitialized) {
[904] Fix | Delete
throw new \LogicException('Unable to add a token parser as extensions have already been initialized.');
[905] Fix | Delete
}
[906] Fix | Delete
$this->staging->addTokenParser($parser);
[907] Fix | Delete
}
[908] Fix | Delete
/**
[909] Fix | Delete
* Gets the registered Token Parsers.
[910] Fix | Delete
*
[911] Fix | Delete
* @return \Twig_TokenParserBrokerInterface
[912] Fix | Delete
*
[913] Fix | Delete
* @internal
[914] Fix | Delete
*/
[915] Fix | Delete
public function getTokenParsers()
[916] Fix | Delete
{
[917] Fix | Delete
if (!$this->extensionInitialized) {
[918] Fix | Delete
$this->initExtensions();
[919] Fix | Delete
}
[920] Fix | Delete
return $this->parsers;
[921] Fix | Delete
}
[922] Fix | Delete
/**
[923] Fix | Delete
* Gets registered tags.
[924] Fix | Delete
*
[925] Fix | Delete
* Be warned that this method cannot return tags defined by \Twig_TokenParserBrokerInterface classes.
[926] Fix | Delete
*
[927] Fix | Delete
* @return TokenParserInterface[]
[928] Fix | Delete
*
[929] Fix | Delete
* @internal
[930] Fix | Delete
*/
[931] Fix | Delete
public function getTags()
[932] Fix | Delete
{
[933] Fix | Delete
$tags = [];
[934] Fix | Delete
foreach ($this->getTokenParsers()->getParsers() as $parser) {
[935] Fix | Delete
if ($parser instanceof \WPML\Core\Twig\TokenParser\TokenParserInterface) {
[936] Fix | Delete
$tags[$parser->getTag()] = $parser;
[937] Fix | Delete
}
[938] Fix | Delete
}
[939] Fix | Delete
return $tags;
[940] Fix | Delete
}
[941] Fix | Delete
public function addNodeVisitor(\WPML\Core\Twig\NodeVisitor\NodeVisitorInterface $visitor)
[942] Fix | Delete
{
[943] Fix | Delete
if ($this->extensionInitialized) {
[944] Fix | Delete
throw new \LogicException('Unable to add a node visitor as extensions have already been initialized.');
[945] Fix | Delete
}
[946] Fix | Delete
$this->staging->addNodeVisitor($visitor);
[947] Fix | Delete
}
[948] Fix | Delete
/**
[949] Fix | Delete
* Gets the registered Node Visitors.
[950] Fix | Delete
*
[951] Fix | Delete
* @return NodeVisitorInterface[]
[952] Fix | Delete
*
[953] Fix | Delete
* @internal
[954] Fix | Delete
*/
[955] Fix | Delete
public function getNodeVisitors()
[956] Fix | Delete
{
[957] Fix | Delete
if (!$this->extensionInitialized) {
[958] Fix | Delete
$this->initExtensions();
[959] Fix | Delete
}
[960] Fix | Delete
return $this->visitors;
[961] Fix | Delete
}
[962] Fix | Delete
/**
[963] Fix | Delete
* Registers a Filter.
[964] Fix | Delete
*
[965] Fix | Delete
* @param string|TwigFilter $name The filter name or a \Twig_SimpleFilter instance
[966] Fix | Delete
* @param \Twig_FilterInterface|TwigFilter $filter
[967] Fix | Delete
*/
[968] Fix | Delete
public function addFilter($name, $filter = null)
[969] Fix | Delete
{
[970] Fix | Delete
if (!$name instanceof \WPML\Core\Twig\TwigFilter && !($filter instanceof \WPML\Core\Twig\TwigFilter || $filter instanceof \WPML\Core\Twig_FilterInterface)) {
[971] Fix | Delete
throw new \LogicException('A filter must be an instance of \\Twig_FilterInterface or \\Twig_SimpleFilter.');
[972] Fix | Delete
}
[973] Fix | Delete
if ($name instanceof \WPML\Core\Twig\TwigFilter) {
[974] Fix | Delete
$filter = $name;
[975] Fix | Delete
$name = $filter->getName();
[976] Fix | Delete
} else {
[977] Fix | Delete
@\trigger_error(\sprintf('Passing a name as a first argument to the %s method is deprecated since version 1.21. Pass an instance of "Twig_SimpleFilter" instead when defining filter "%s".', __METHOD__, $name), \E_USER_DEPRECATED);
[978] Fix | Delete
}
[979] Fix | Delete
if ($this->extensionInitialized) {
[980] Fix | Delete
throw new \LogicException(\sprintf('Unable to add filter "%s" as extensions have already been initialized.', $name));
[981] Fix | Delete
}
[982] Fix | Delete
$this->staging->addFilter($name, $filter);
[983] Fix | Delete
}
[984] Fix | Delete
/**
[985] Fix | Delete
* Get a filter by name.
[986] Fix | Delete
*
[987] Fix | Delete
* Subclasses may override this method and load filters differently;
[988] Fix | Delete
* so no list of filters is available.
[989] Fix | Delete
*
[990] Fix | Delete
* @param string $name The filter name
[991] Fix | Delete
*
[992] Fix | Delete
* @return \Twig_Filter|false
[993] Fix | Delete
*
[994] Fix | Delete
* @internal
[995] Fix | Delete
*/
[996] Fix | Delete
public function getFilter($name)
[997] Fix | Delete
{
[998] Fix | Delete
if (!$this->extensionInitialized) {
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function