diff --git a/src/Html.php b/src/Html.php
index dc7e39f..fcb6808 100644
--- a/src/Html.php
+++ b/src/Html.php
@@ -7,19 +7,33 @@ class Html extends Text{
/** @var string */
const EXTENTION = '.phtml';
- public function _escape(string $data){
- return htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
+ public static function _escape(string $data = null){
+ return htmlspecialchars($data ?: '', ENT_QUOTES, 'UTF-8');
}
- public function _e(string $data){ return $this->_escape($data); }
+ public static function _e(string $data = null){ return static::_escape($data); }
public static function filter($data, string $key, string $value){
- $data = parent::filter($data);
- if($key == 'escape' && $value == true && is_string($data))
- return $this->_escape($data);
+ $data = parent::filter($data, $key, $value);
+ switch($key){
+ case 'nl2br':
+ if($value == true && is_string($data))
+ return nl2br($data);
+ break;
+
+ case '2br':
+ if($value == true && is_string($data))
+ return str_replace("
\r\n
", '
', nl2br($data));
+ break;
+
+ case 'escape':
+ if($value == true && is_string($data))
+ return static::_escape($data);
+ break;
+ }
return $data;
}
- public function _print(string $key, string $format = null, array $filters = array('type' => 'string', 'escape' => true)): string{
+ public function _print(string $key, string $format = '{?}', array $filters = array('type' => 'string', 'escape' => true)): string{
if(!$this->_exist($key))
return '';
@@ -28,5 +42,5 @@ class Html extends Text{
return str_replace('{?}', $this->_get($key, $filters), $format);
}
- public function _p(string $key, string $format = null, array $filters = array('type' => 'string', 'escape' => true)){ return $this->_print($key, $format, $filters); }
+ public function _p(string $key, string $format = '{?}', array $filters = array('type' => 'string', 'escape' => true)){ return $this->_print($key, $format, $filters); }
}
diff --git a/src/Template.php b/src/Template.php
index 5f202db..52305ae 100644
--- a/src/Template.php
+++ b/src/Template.php
@@ -16,7 +16,7 @@ class Template{
$this->path = $this->path($path, $extention, $folder);
}
- public function set(string $key, mixed $value): self{
+ public function set(string $key, $value): self{
$this->data[$key] = $value;
return $this;
}
@@ -58,7 +58,7 @@ class Template{
};
$callable($this, $this->path);
if(isset($this->layout)){
- $layout = new self($this->layout, '', false);
+ $layout = new static($this->layout, '', false);
$layout->insert($this->extract())->run();
}
switch($output){
@@ -77,15 +77,15 @@ class Template{
}
public function path(string $path, string $extention = null, bool $folder = true): string{
- $path .= $extention ?? self::EXTENTION;
- if($folder == true && class_exists(\Krutush\Path)) //Remove require krutush/krutush
+ $path .= $extention ?? static::EXTENTION;
+ if($folder == true && class_exists('\\Krutush\\Path')) //Remove require krutush/krutush
$path = \Krutush\Path::get('template').'/'.$path;
return $path;
}
public function _load(string $path, string $extention = null, bool $folder = true): self{
- $load = new self($path, $extention, $folder);
+ $load = new static($path, $extention, $folder);
$load->insert($this->extract())->run();
$this->insert($load->extract());
return $this;
@@ -157,7 +157,7 @@ class Template{
}else{
$data = $this->data[$key];
foreach($filters as $name => $value){
- $data = self::filter($data, $name, $value);
+ $data = static::filter($data, $name, $value);
}
return $data;
}
diff --git a/src/Text.php b/src/Text.php
index e8e6d2c..f68e390 100644
--- a/src/Text.php
+++ b/src/Text.php
@@ -33,8 +33,8 @@ class Text extends Template{
return $data;
}
- public function insert(array $data): self{
- parent::setup();
+ public function insert(array $data): parent{
+ parent::insert($data);
$this->contents($data['contents']);
return $this;
}