Skip to content

Commit

Permalink
1.0.1
Browse files Browse the repository at this point in the history
* [*] метод `setTemplate` теперь может принимать значение null
* [+] метод `addTitle` добавляет строку в массив заголовков
* [+] метод `makeTitle` строит результирующий заголовок как строку
  • Loading branch information
KarelWintersky committed Apr 27, 2023
1 parent 4807b3b commit d2da7a5
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 6 deletions.
26 changes: 24 additions & 2 deletions src/Template.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ class Template implements TemplateInterface
*/
public array $titles = [];

public array $breadcumbs = []; //@todo like as title (set of ['uri' => ..., 'title' => ...], на основе его можно строить и title

private array $REQUEST = [];

private array $template_vars = [];
Expand Down Expand Up @@ -148,9 +150,9 @@ public function makeRedirect(string $uri = null, int $code = null, bool $replace
exit(0);
}

public function setTemplate(string $filename)
public function setTemplate($filename = null)
{
$this->template_file = $filename;
$this->template_file = empty($filename) ? '' : $filename;
}

public function sendHeader(string $type = '')
Expand Down Expand Up @@ -234,5 +236,25 @@ public function render($send_header = false, $clean = false):string
}


public function addTitle(string $title_part)
{
$this->titles[] = $title_part;
}


public function makeTitle(string $separator = " ", bool $sort = true, bool $reverse_order = false)
{
$t = $this->titles;

if ($sort) {
ksort($t);
}

if ($reverse_order) {
$t = array_reverse($t);
}
return implode($separator, $t);
}


}
25 changes: 21 additions & 4 deletions src/TemplateInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,13 @@ public function isRedirect():bool;
public function makeRedirect(string $uri = null, int $code = null, bool $replace_headers = true);

/**
* Устанавливает файл шаблона
* Устанавливает файл шаблона.
* Без него возможен только рендер Template::CONTENT_TYPE_JSON
*
* @param string $filename
* @param string|null $filename
* @return void
*/
public function setTemplate(string $filename);
public function setTemplate($filename = null);

/**
* Посылает header, соответствующий типу контента
Expand All @@ -131,7 +132,23 @@ public function assignJSON(array $json);
*/
public function clean();

/**
* Добавляет title в цепочку title'ов
*
* @param string $title_part
* @return void
*/
public function addTitle(string $title_part);


/**
* Строит результирующий title страницы с учетом вложенности.
* Может быть использован также для остройки og:title
*
* @param string $separator
* @param bool $sort
* @param bool $reverse_order
* @return string
*/
public function makeTitle(string $separator = " ", bool $sort = true, bool $reverse_order = false);

}

0 comments on commit d2da7a5

Please sign in to comment.