69 lines
1.4 KiB
PHP
69 lines
1.4 KiB
PHP
<?php
|
|
namespace Shared\Tpl;
|
|
|
|
class Tpl
|
|
{
|
|
protected $vars = array();
|
|
|
|
public static function view($file, $values = '')
|
|
{
|
|
$tpl = new self;
|
|
if (is_array($values)) foreach ($values as $key => $val)
|
|
$tpl->$key = $val;
|
|
return $tpl->render($file);
|
|
}
|
|
|
|
public function secureHTML($val)
|
|
{
|
|
$out = stripslashes($val);
|
|
$out = str_replace("'", "'", $out);
|
|
$out = str_replace('"', """, $out);
|
|
$out = str_replace("<", "<", $out);
|
|
$out = str_replace(">", ">", $out);
|
|
return $out;
|
|
}
|
|
|
|
public function render($file)
|
|
{
|
|
$paths = [
|
|
'templates_user/' . $file . '.php',
|
|
'templates/' . $file . '.php',
|
|
'../templates_user/' . $file . '.php',
|
|
'../templates/' . $file . '.php',
|
|
$file . '.php',
|
|
];
|
|
|
|
foreach ($paths as $path) {
|
|
if (file_exists($path)) {
|
|
return $this->renderFile($path);
|
|
}
|
|
}
|
|
|
|
return '<div class="alert alert-danger" role="alert">Nie znaleziono pliku widoku: <b>' . $file . '.php</b>';
|
|
}
|
|
|
|
private function renderFile($path)
|
|
{
|
|
ob_start();
|
|
include $path;
|
|
$out = ob_get_contents();
|
|
ob_end_clean();
|
|
return $out;
|
|
}
|
|
|
|
public function __set($name, $value)
|
|
{
|
|
$this->vars[$name] = $value;
|
|
}
|
|
|
|
public function __get($name)
|
|
{
|
|
return $this->vars[$name];
|
|
}
|
|
|
|
public function __isset($name)
|
|
{
|
|
return isset($this->vars[$name]);
|
|
}
|
|
}
|