[ Index ]

PHP Cross Reference of phpBB-3.1.12-deutsch

title

Body

[close]

/phpbb/template/twig/node/ -> includeasset.php (source)

   1  <?php
   2  /**
   3  *
   4  * This file is part of the phpBB Forum Software package.
   5  *
   6  * @copyright (c) phpBB Limited <https://www.phpbb.com>
   7  * @license GNU General Public License, version 2 (GPL-2.0)
   8  *
   9  * For full copyright and license information, please see
  10  * the docs/CREDITS.txt file.
  11  *
  12  */
  13  
  14  namespace phpbb\template\twig\node;
  15  
  16  abstract class includeasset extends \Twig_Node
  17  {
  18      /** @var \Twig_Environment */
  19      protected $environment;
  20  
  21  	public function __construct(\Twig_Node_Expression $expr, \phpbb\template\twig\environment $environment, $lineno, $tag = null)
  22      {
  23          $this->environment = $environment;
  24  
  25          parent::__construct(array('expr' => $expr), array(), $lineno, $tag);
  26      }
  27      /**
  28      * Compiles the node to PHP.
  29      *
  30      * @param \Twig_Compiler A Twig_Compiler instance
  31      */
  32  	public function compile(\Twig_Compiler $compiler)
  33      {
  34          $compiler->addDebugInfo($this);
  35  
  36          $config = $this->environment->get_phpbb_config();
  37  
  38          $compiler
  39              ->write("\$asset_file = ")
  40              ->subcompile($this->getNode('expr'))
  41              ->raw(";\n")
  42              ->write("\$asset = new \phpbb\\template\\asset(\$asset_file, \$this->getEnvironment()->get_path_helper());\n")
  43              ->write("if (substr(\$asset_file, 0, 2) !== './' && \$asset->is_relative()) {\n")
  44              ->indent()
  45                  ->write("\$asset_path = \$asset->get_path();")
  46                  ->write("\$local_file = \$this->getEnvironment()->get_phpbb_root_path() . \$asset_path;\n")
  47                  ->write("if (!file_exists(\$local_file)) {\n")
  48                  ->indent()
  49                      ->write("\$local_file = \$this->getEnvironment()->findTemplate(\$asset_path);\n")
  50                      ->write("\$asset->set_path(\$local_file, true);\n")
  51                  ->outdent()
  52                  ->write("\$asset->add_assets_version('{$config['assets_version']}');\n")
  53                  ->write("\$asset_file = \$asset->get_url();\n")
  54                  ->write("}\n")
  55              ->outdent()
  56              ->write("}\n")
  57              ->write("\$context['definition']->append('{$this->get_definition_name()}', '")
  58          ;
  59  
  60          $this->append_asset($compiler);
  61  
  62          $compiler
  63              ->raw("\n');\n")
  64          ;
  65      }
  66  
  67      /**
  68      * Get the definition name
  69      *
  70      * @return string (e.g. 'SCRIPTS')
  71      */
  72      abstract public function get_definition_name();
  73  
  74      /**
  75      * Append the output code for the asset
  76      *
  77      * @param \Twig_Compiler A Twig_Compiler instance
  78      * @return null
  79      */
  80      abstract protected function append_asset(\Twig_Compiler $compiler);
  81  }


Generated: Thu Jan 11 00:25:41 2018 Cross-referenced by PHPXref 0.7.1