Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
   1  <?php
   2  
   3  /*
   4   * This file is part of Mustache.php.
   5   *
   6   * (c) 2010-2017 Justin Hileman
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  /**
  13   * Mustache Lambda Helper.
  14   *
  15   * Passed as the second argument to section lambdas (higher order sections),
  16   * giving them access to a `render` method for rendering a string with the
  17   * current context.
  18   */
  19  class Mustache_LambdaHelper
  20  {
  21      private $mustache;
  22      private $context;
  23      private $delims;
  24  
  25      /**
  26       * Mustache Lambda Helper constructor.
  27       *
  28       * @param Mustache_Engine  $mustache Mustache engine instance
  29       * @param Mustache_Context $context  Rendering context
  30       * @param string           $delims   Optional custom delimiters, in the format `{{= <% %> =}}`. (default: null)
  31       */
  32      public function __construct(Mustache_Engine $mustache, Mustache_Context $context, $delims = null)
  33      {
  34          $this->mustache = $mustache;
  35          $this->context  = $context;
  36          $this->delims   = $delims;
  37      }
  38  
  39      /**
  40       * Render a string as a Mustache template with the current rendering context.
  41       *
  42       * @param string $string
  43       *
  44       * @return string Rendered template
  45       */
  46      public function render($string)
  47      {
  48          return $this->mustache
  49              ->loadLambda((string) $string, $this->delims)
  50              ->renderInternal($this->context);
  51      }
  52  
  53      /**
  54       * Render a string as a Mustache template with the current rendering context.
  55       *
  56       * @param string $string
  57       *
  58       * @return string Rendered template
  59       */
  60      public function __invoke($string)
  61      {
  62          return $this->render($string);
  63      }
  64  
  65      /**
  66       * Get a Lambda Helper with custom delimiters.
  67       *
  68       * @param string $delims Custom delimiters, in the format `{{= <% %> =}}`
  69       *
  70       * @return Mustache_LambdaHelper
  71       */
  72      public function withDelimiters($delims)
  73      {
  74          return new self($this->mustache, $this->context, $delims);
  75      }
  76  }