/
class-mustache-press.php
37 lines (27 loc) · 1.08 KB
/
class-mustache-press.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
class MustachePress {
private static $settings,
$mustache_engine;
function init() {
self::$settings = array(
'pragmas' => [Mustache_Engine::PRAGMA_BLOCKS],
'loader' => self::get_FilesystemLoader(),
'partials_loader' => self::get_FilesystemLoader()
);
}
public static function settings( $settings ) {
self::$settings = array_merge( self::$settings, $settings );
self::$mustache_engine = new Mustache_Engine( self::$settings );
}
public static function render( $template, $data=array() ) {
if ( !isset(self::$mustache_engine) ){
self::$mustache_engine = new Mustache_Engine( self::$settings );
}
return self::$mustache_engine->render( $template, new MPVariableHandler($data) );
}
private static function get_FilesystemLoader() {
$default_views_directory = get_template_directory() . '/views';
$mustache_views_directory = ( file_exists($default_views_directory) ) ? $default_views_directory : get_template_directory();
return new Mustache_Loader_FilesystemLoader( $mustache_views_directory );
}
}