original_string: protected function get_mustache() {
          global $CFG;
  
          if ($this->mustache === null) {
              require_once("{$CFG->libdir}/filelib.php");
  
              $themename = $this->page->theme->name;
              $themerev = theme_get_revision();
  
              // Create new localcache directory.
              $cachedir = make_localcache_directory("mustache/$themerev/$themename");
  
              // Remove old localcache directories.
              $mustachecachedirs = glob("{$CFG->localcachedir}/mustache/*", GLOB_ONLYDIR);
              foreach ($mustachecachedirs as $localcachedir) {
                  $cachedrev = [];
                  preg_match("/\/mustache\/([0-9]+)$/", $localcachedir, $cachedrev);
                  $cachedrev = isset($cachedrev[1]) ? intval($cachedrev[1]) : 0;
                  if ($cachedrev > 0 && $cachedrev < $themerev) {
                      fulldelete($localcachedir);
                  }
              }
  
              $loader = new \core\output\mustache_filesystem_loader();
              $stringhelper = new \core\output\mustache_string_helper();
              $quotehelper = new \core\output\mustache_quote_helper();
              $jshelper = new \core\output\mustache_javascript_helper($this->page);
              $pixhelper = new \core\output\mustache_pix_helper($this);
              $shortentexthelper = new \core\output\mustache_shorten_text_helper();
              $userdatehelper = new \core\output\mustache_user_date_helper();
  
              // We only expose the variables that are exposed to JS templates.
              $safeconfig = $this->page->requires->get_config_for_javascript($this->page, $this);
  
              $helpers = array('config' => $safeconfig,
                               'str' => array($stringhelper, 'str'),
                               'quote' => array($quotehelper, 'quote'),
                               'js' => array($jshelper, 'help'),
                               'pix' => array($pixhelper, 'pix'),
                               'shortentext' => array($shortentexthelper, 'shorten'),
                               'userdate' => array($userdatehelper, 'transform'),
                           );
  
              $this->mustache = new Mustache_Engine(array(
                  'cache' => $cachedir,
                  'escape' => 's',
                  'loader' => $loader,
                  'helpers' => $helpers,
                  'pragmas' => [Mustache_Engine::PRAGMA_BLOCKS]));
  
          }
  
          return $this->mustache;
      }
code: protected function get_mustache() {
          global $CFG;
  
          if ($this->mustache === null) {
              require_once("{$CFG->libdir}/filelib.php");
  
              $themename = $this->page->theme->name;
              $themerev = theme_get_revision();
  
              // Create new localcache directory.
              $cachedir = make_localcache_directory("mustache/$themerev/$themename");
  
              // Remove old localcache directories.
              $mustachecachedirs = glob("{$CFG->localcachedir}/mustache/*", GLOB_ONLYDIR);
              foreach ($mustachecachedirs as $localcachedir) {
                  $cachedrev = [];
                  preg_match("/\/mustache\/([0-9]+)$/", $localcachedir, $cachedrev);
                  $cachedrev = isset($cachedrev[1]) ? intval($cachedrev[1]) : 0;
                  if ($cachedrev > 0 && $cachedrev < $themerev) {
                      fulldelete($localcachedir);
                  }
              }
  
              $loader = new \core\output\mustache_filesystem_loader();
              $stringhelper = new \core\output\mustache_string_helper();
              $quotehelper = new \core\output\mustache_quote_helper();
              $jshelper = new \core\output\mustache_javascript_helper($this->page);
              $pixhelper = new \core\output\mustache_pix_helper($this);
              $shortentexthelper = new \core\output\mustache_shorten_text_helper();
              $userdatehelper = new \core\output\mustache_user_date_helper();
  
              // We only expose the variables that are exposed to JS templates.
              $safeconfig = $this->page->requires->get_config_for_javascript($this->page, $this);
  
              $helpers = array('config' => $safeconfig,
                               'str' => array($stringhelper, 'str'),
                               'quote' => array($quotehelper, 'quote'),
                               'js' => array($jshelper, 'help'),
                               'pix' => array($pixhelper, 'pix'),
                               'shortentext' => array($shortentexthelper, 'shorten'),
                               'userdate' => array($userdatehelper, 'transform'),
                           );
  
              $this->mustache = new Mustache_Engine(array(
                  'cache' => $cachedir,
                  'escape' => 's',
                  'loader' => $loader,
                  'helpers' => $helpers,
                  'pragmas' => [Mustache_Engine::PRAGMA_BLOCKS]));
  
          }
  
          return $this->mustache;
      }
code_tokens: protected function get_mustache ( ) { global $ CFG ; if ( $ this -> mustache === null ) { require_once ( "{$CFG->libdir}/filelib.php" ) ; $ themename = $ this -> page -> theme -> name ; $ themerev = theme_get_revision ( ) ; // Create new localcache directory. $ cachedir = make_localcache_directory ( "mustache/$themerev/$themename" ) ; // Remove old localcache directories. $ mustachecachedirs = glob ( "{$CFG->localcachedir}/mustache/*" , GLOB_ONLYDIR ) ; foreach ( $ mustachecachedirs as $ localcachedir ) { $ cachedrev = [ ] ; preg_match ( "/\/mustache\/([0-9]+)$/" , $ localcachedir , $ cachedrev ) ; $ cachedrev = isset ( $ cachedrev [ 1 ] ) ? intval ( $ cachedrev [ 1 ] ) : 0 ; if ( $ cachedrev > 0 && $ cachedrev < $ themerev ) { fulldelete ( $ localcachedir ) ; } } $ loader = new \ core \ output \ mustache_filesystem_loader ( ) ; $ stringhelper = new \ core \ output \ mustache_string_helper ( ) ; $ quotehelper = new \ core \ output \ mustache_quote_helper ( ) ; $ jshelper = new \ core \ output \ mustache_javascript_helper ( $ this -> page ) ; $ pixhelper = new \ core \ output \ mustache_pix_helper ( $ this ) ; $ shortentexthelper = new \ core \ output \ mustache_shorten_text_helper ( ) ; $ userdatehelper = new \ core \ output \ mustache_user_date_helper ( ) ; // We only expose the variables that are exposed to JS templates. $ safeconfig = $ this -> page -> requires -> get_config_for_javascript ( $ this -> page , $ this ) ; $ helpers = array ( 'config' => $ safeconfig , 'str' => array ( $ stringhelper , 'str' ) , 'quote' => array ( $ quotehelper , 'quote' ) , 'js' => array ( $ jshelper , 'help' ) , 'pix' => array ( $ pixhelper , 'pix' ) , 'shortentext' => array ( $ shortentexthelper , 'shorten' ) , 'userdate' => array ( $ userdatehelper , 'transform' ) , ) ; $ this -> mustache = new Mustache_Engine ( array ( 'cache' => $ cachedir , 'escape' => 's' , 'loader' => $ loader , 'helpers' => $ helpers , 'pragmas' => [ Mustache_Engine :: PRAGMA_BLOCKS ] ) ) ; } return $ this -> mustache ; }
docstring: Return an instance of the mustache class.
  
  @since 2.9
  @return Mustache_Engine
docstring_tokens: Return an instance of the mustache class .