PluginProbe
GetResponse Forms by Optin Cat / 1.4.1
GetResponse Forms by Optin Cat v1.4.1
1.3.4 1.3.5 1.3.6 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 2.0.0 All 36 releases
getresponse / includes / classes / Mustache / Loader / FilesystemLoader.php

FilesystemLoader.php in GetResponse Forms by Optin Cat 1.4.1, at includes/classes/Mustache/Loader/FilesystemLoader.php

125 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 * This file is part of Mustache.php.
5 *
6 * (c) 2010-2014 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 Template filesystem Loader implementation.
14 *
15 * A FilesystemLoader instance loads Mustache Template source from the filesystem by name:
16 *
17 * $loader = new Mustache_Loader_FilesystemLoader(dirname(__FILE__).'/views');
18 * $tpl = $loader->load('foo'); // equivalent to `file_get_contents(dirname(__FILE__).'/views/foo.mustache');
19 *
20 * This is probably the most useful Mustache Loader implementation. It can be used for partials and normal Templates:
21 *
22 * $m = new Mustache(array(
23 * 'loader' => new Mustache_Loader_FilesystemLoader(dirname(__FILE__).'/views'),
24 * 'partials_loader' => new Mustache_Loader_FilesystemLoader(dirname(__FILE__).'/views/partials'),
25 * ));
26 */
27 class Mustache_Loader_FilesystemLoader implements Mustache_Loader
28 {
29 private $baseDir;
30 private $extension = '.mustache';
31 private $templates = array();
32
33 /**
34 * Mustache filesystem Loader constructor.
35 *
36 * Passing an $options array allows overriding certain Loader options during instantiation:
37 *
38 * $options = array(
39 * // The filename extension used for Mustache templates. Defaults to '.mustache'
40 * 'extension' => '.ms',
41 * );
42 *
43 * @throws Mustache_Exception_RuntimeException if $baseDir does not exist.
44 *
45 * @param string $baseDir Base directory containing Mustache template files.
46 * @param array $options Array of Loader options (default: array())
47 */
48 public function __construct($baseDir, array $options = array())
49 {
50 $this->baseDir = $baseDir;
51
52 if (strpos($this->baseDir, '://') === -1) {
53 $this->baseDir = realpath($this->baseDir);
54 }
55
56 if (!is_dir($this->baseDir)) {
57 throw new Mustache_Exception_RuntimeException(sprintf('FilesystemLoader baseDir must be a directory: %s', $baseDir));
58 }
59
60 if (array_key_exists('extension', $options)) {
61 if (empty($options['extension'])) {
62 $this->extension = '';
63 } else {
64 $this->extension = '.' . ltrim($options['extension'], '.');
65 }
66 }
67 }
68
69 /**
70 * Load a Template by name.
71 *
72 * $loader = new Mustache_Loader_FilesystemLoader(dirname(__FILE__).'/views');
73 * $loader->load('admin/dashboard'); // loads "./views/admin/dashboard.mustache";
74 *
75 * @param string $name
76 *
77 * @return string Mustache Template source
78 */
79 public function load($name)
80 {
81 if (!isset($this->templates[$name])) {
82 $this->templates[$name] = $this->loadFile($name);
83 }
84
85 return $this->templates[$name];
86 }
87
88 /**
89 * Helper function for loading a Mustache file by name.
90 *
91 * @throws Mustache_Exception_UnknownTemplateException If a template file is not found.
92 *
93 * @param string $name
94 *
95 * @return string Mustache Template source
96 */
97 protected function loadFile($name)
98 {
99 $fileName = $this->getFileName($name);
100
101 if (!file_exists($fileName)) {
102 throw new Mustache_Exception_UnknownTemplateException($name);
103 }
104
105 return file_get_contents($fileName);
106 }
107
108 /**
109 * Helper function for getting a Mustache template file name.
110 *
111 * @param string $name
112 *
113 * @return string Template file name
114 */
115 protected function getFileName($name)
116 {
117 $fileName = $this->baseDir . '/' . $name;
118 if (substr($fileName, 0 - strlen($this->extension)) !== $this->extension) {
119 $fileName .= $this->extension;
120 }
121
122 return $fileName;
123 }
124 }
125