Compare commits

..

No commits in common. "c0c5deeddacdbc77f99d1166447eb8ca50ea8f88" and "7b635a4f0054359bec4eb371c68edd472d7e3f2c" have entirely different histories.

4 changed files with 38 additions and 71 deletions

View file

@ -1,10 +0,0 @@
{extends file='TplCore:empty.tpl'}
{block name="navbar-extra-content"}
<form class="d-flex" role="search" action='item'>
<div class="input-group input-group-sm me-2">
<input class="form-control" type="search" name="pattern"
placeholder="{t}Search{/t}" aria-label="{t}Search{/t}">
<span class="input-group-text"><i class="fa fa-search" aria-hidden="true"></i></span>
</div>
</form>
{/block}

View file

@ -160,7 +160,6 @@ class Tpl {
self :: $smarty->setTemplateDir(self :: $core_templates_directory); self :: $smarty->setTemplateDir(self :: $core_templates_directory);
self :: $smarty->setCompileDir($templates_c_dir); self :: $smarty->setCompileDir($templates_c_dir);
self :: $smarty->registerResource('Tpl', new TplSmartyResource()); self :: $smarty->registerResource('Tpl', new TplSmartyResource());
self :: $smarty->registerResource('TplCore', new TplSmartyResource(true));
$debug_ajax = App::get('templates.debug_ajax', null, 'bool'); $debug_ajax = App::get('templates.debug_ajax', null, 'bool');
self :: $_debug_ajax = boolval($debug_ajax); self :: $_debug_ajax = boolval($debug_ajax);
Log :: register_fatal_error_handler(array('\\EesyPHP\\Tpl', 'fatal_error')); Log :: register_fatal_error_handler(array('\\EesyPHP\\Tpl', 'fatal_error'));
@ -618,13 +617,10 @@ class Tpl {
/** /**
* Resolve templates path against registered templates directories * Resolve templates path against registered templates directories
* @param string $path * @param string $path
* @param bool $core_only Core only mode (optional, default: false)
* @return string|false * @return string|false
*/ */
public static function resolve_templates_path($path, $core_only=false) { public static function resolve_templates_path($path) {
foreach(array_keys(self :: $templates_directories) as $dir) { foreach(array_keys(self :: $templates_directories) as $dir) {
if ($core_only && $dir != self :: $core_templates_directory)
continue;
$fullpath = "$dir/$path"; $fullpath = "$dir/$path";
if (file_exists($fullpath)) { if (file_exists($fullpath)) {
Log::trace('Templates file "%s" resolved as "%s"', $path, $fullpath); Log::trace('Templates file "%s" resolved as "%s"', $path, $fullpath);
@ -639,12 +635,11 @@ class Tpl {
* Return the content of a Smarty template file. * Return the content of a Smarty template file.
* *
* @param string $template The template name (eg: base.tpl) * @param string $template The template name (eg: base.tpl)
* @param bool $core_only Core only mode (optional, default: false)
* *
* @return string The content of the Smarty template file * @return string The content of the Smarty template file
**/ **/
public static function get_template_source($template, $core_only=false) { public static function get_template_source($template) {
$path = self :: resolve_templates_path($template, $core_only); $path = self :: resolve_templates_path($template);
if (!is_readable($path)) { if (!is_readable($path)) {
// No error return with Smarty3 and highter because it's call // No error return with Smarty3 and highter because it's call
// template name in lower first systematically // template name in lower first systematically
@ -658,12 +653,11 @@ class Tpl {
* template file. * template file.
* *
* @param string $template The template name (eg: empty.tpl) * @param string $template The template name (eg: empty.tpl)
* @param bool $core_only Core only mode (optional, default: false)
* *
* @return int|null The timestamp of the last change of the Smarty template file * @return int|null The timestamp of the last change of the Smarty template file
**/ **/
public static function get_template_timestamp($template, $core_only=false) { public static function get_template_timestamp($template) {
$path = self :: resolve_templates_path($template, $core_only); $path = self :: resolve_templates_path($template);
if (is_file($path)) { if (is_file($path)) {
$time = filemtime($path); $time = filemtime($path);
if ($time) if ($time)

View file

@ -11,17 +11,10 @@ use Smarty_Resource_Custom;
*/ */
class TplSmartyResource extends Smarty_Resource_Custom { class TplSmartyResource extends Smarty_Resource_Custom {
// Core only templates // prepared fetch() statement
protected $core_only; protected $fetch;
// prepared fetchTimestamp() statement
/** protected $mtime;
* Constructor
* @param bool $core_only Core only mode (optional, default: false)
* @return void
*/
public function __construct($core_only=false) {
$this -> core_only = $core_only;
}
/** /**
* Fetch a template and its modification time * Fetch a template and its modification time
@ -32,8 +25,8 @@ class TplSmartyResource extends Smarty_Resource_Custom {
* @return void * @return void
*/ */
protected function fetch($name, &$source, &$mtime) { protected function fetch($name, &$source, &$mtime) {
$source = Tpl :: get_template_source($name, $this -> core_only); $source = Tpl :: get_template_source($name);
$mtime = Tpl :: get_template_timestamp($name, $this -> core_only); $mtime = Tpl :: get_template_timestamp($name);
} }
/** /**
@ -46,6 +39,6 @@ class TplSmartyResource extends Smarty_Resource_Custom {
* @return integer timestamp (epoch) the template was modified * @return integer timestamp (epoch) the template was modified
*/ */
protected function fetchTimestamp($name) { protected function fetchTimestamp($name) {
return Tpl :: get_template_timestamp($name, $this -> core_only); return Tpl :: get_template_timestamp($name);
} }
} }

View file

@ -31,54 +31,44 @@
{block name="body"} {block name="body"}
{block name="navbar"} {block name="navbar"}
<header> <header class="p-3 mb-3 border-bottom">
<nav class="{block name="navbar-class"}navbar navbar-expand-lg{/block}" {block name="navbar-extra-args"}{/block}> <div class="container">
<div class="{block name="navbar-container-class"}container{/block}"> <div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start">
{block name="navbar-brand"} {block name="navbar-brand"}
<a class="navbar-brand me-3" href="#"> <a href="/" class="d-flex align-items-center mb-2 mb-lg-0 text-dark text-decoration-none">
<img id="logo" src="{static_url path="images/logo.svg"}" alt="Logo" title="Logo"/> <img id="logo" src="{static_url path="images/logo.svg"}" alt="Logo" title="Logo"/>
</a> </a>
{/block} {/block}
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" <ul class="pr-2 nav col-12 col-lg-auto me-lg-auto mb-2 justify-content-center mb-md-0">
data-bs-target="#navbar-menu" aria-controls="navbar-menu" aria-expanded="false" {block name="navbar-menu"}
aria-label="Toggle navigation"> {/block}
<span class="navbar-toggler-icon"></span> </ul>
</button>
<div class="collapse navbar-collapse" id="navbar-menu"> {block name="navbar-extra-content"}{/block}
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
{block name="navbar-menu"}
{/block}
</ul>
{block name="navbar-extra-content"}{/block} {block name="navbar-user"}
{if isset($auth_user) && $auth_user}
{block name="navbar-user"} <div class="dropdown text-end">
{if isset($auth_user) && $auth_user} {block name="navbar-user-name"}
<ul class="navbar-nav text-end"> <a href="#" class="d-block link-dark text-decoration-none dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
<li class="nav-item dropdown"> <i class="fa fa-user-circle" aria-hidden="true"></i>
{block name="navbar-user-name"} {$auth_user->name|escape:"htmlall"}
<a class="nav-link active dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"> </a>
<i class="fa fa-user-circle" aria-hidden="true"></i> {/block}
{$auth_user->name|escape:"htmlall"} {block name="navbar-user-menu"}
<ul class="dropdown-menu text-small">
{block name="navbar-user-menu-content"}{/block}
<li>
<a class="dropdown-item" href="logout">
<i class="fas fa-sign-out-alt"></i> {t domain=$CORE_TEXT_DOMAIN}Sign out{/t}
</a> </a>
{/block}
{block name="navbar-user-menu"}
<ul class="dropdown-menu text-small">
{block name="navbar-user-menu-content"}{/block}
<li>
<a class="dropdown-item" href="logout">
<i class="fa fa-sign-out"></i> {t domain=$CORE_TEXT_DOMAIN}Sign out{/t}
</a>
</li>
</ul>
{/block}
</li> </li>
</ul> </ul>
{/if}
{/block} {/block}
</div> </div>
{/if}
{/block}
</div> </div>
</div> </div>
</header> </header>