Permalink
Browse files

Добавлены: глобальные переменные в шаблонизаторе

раздел расширений в админ панели переведен на феном
  • Loading branch information...
esclkm committed Nov 26, 2015
1 parent e1a37af commit a2803d933d5bfc1b2b7e1bdfca2944629e52b4e6

Large diffs are not rendered by default.

Oops, something went wrong.
View
@@ -8,5 +8,7 @@
* Шаблонизатор
* [Использование](https://github.com/esclkm/cotonti-2/tree/master/docs/ru/template/readme.md)
* [Глобальные переменные](https://github.com/esclkm/cotonti-2/tree/master/docs/ru/template/globals.md)
* [Модификаторы](https://github.com/esclkm/cotonti-2/tree/master/docs/ru/template/modifiers.md)
* [Режим разработчика](https://github.com/esclkm/cotonti-2/tree/master/docs/ru/template/debug.md)
@@ -0,0 +1,18 @@
Глобальные переменные
=====================
В шаблонизаторе есть возможность использовать любые глобальные переменные:
{$PHP.:globalVariableName}
Так же Вы можете задавать собственные переменные, которые будут доступны во всех шаблонах
FTemplate::assignGlobal(array($key => $val));
или
FTemplate::assignGlobal($key, $val);
Данные переменные можно вывести в любом шаблоне по имени:
{$:globalVariableName}
@@ -259,8 +259,8 @@
$L['ext_invalid_format'] = 'This is not a valid Feliz >= 0.9 extension. Please contact the developer';
$L['ext_patch_applied'] = 'Applied patch {$f}: {$msg}';
$L['ext_patch_error'] = 'Error applying patch {$f}: {$msg}';
$L['ext_requires_modules'] = 'Requires modules';
$L['ext_recommends_modules'] = 'Recommends modules';
$L['ext_requires_ext'] = 'Requires extensions';
$L['ext_recommends_ext'] = 'Recommends extensions';
$L['ext_setup_not_found'] = 'Setup file is not found: {$path}';
$L['ext_uninstall_confirm'] = 'Are you sure you want to uninstall this extension? Any data linked to the extension will be removed and cannot be recovered.<br/><a href="{$url}">Yes, uninstall and remove data.</a>';
$L['ext_uninstalling'] = 'Uninstalling extension &quot;{$name}&quot;';
@@ -259,8 +259,8 @@
$L['ext_invalid_format'] = 'Расширение несовместимо с Feliz версии 0.9 и выше. Пожалуйста, свяжитесь с разработчиками.';
$L['ext_patch_applied'] = 'Установлен патч {$f}: {$msg}';
$L['ext_patch_error'] = 'Ошибка установки патча {$f}: {$msg}';
$L['ext_requires_modules'] = 'Необходимые модули';
$L['ext_recommends_modules'] = 'Рекомендуемые модули';
$L['ext_requires_ext'] = 'Необходимые расширения';
$L['ext_recommends_ext'] = 'Рекомендуемые расширения';
$L['ext_setup_not_found'] = 'Файл установок не найден: {$path}';
$L['ext_uninstall_confirm'] = 'Вы действительно хотите удалить это расширение? Все данные, связанные с этим расширением, будут удалены без возможности восстановления.<br/><a href="{$url}">Да, удалить вместе с данными.</a>';
$L['ext_uninstalling'] = 'Удаление модуля &quot;{$name}&quot;';
View
@@ -23,6 +23,7 @@ class FTemplate
//добавляем новые методы
private $blockVars = array();
private static $globals = array();
private $vars = array();
private $templateFile = "";
@@ -119,6 +120,21 @@ public static function init($options = array())
return self::dump($var);
});
}
public static function assignGlobal($name, $val = NULL, $prefix = '')
{
if (is_array($name))
{
foreach ($name as $key => $val)
{
self::$globals[$prefix.$key] = $val;
}
}
else
{
self::$globals[$prefix.$name] = $val;
}
return $this;
}
/**
* Assigns a template variable or an array of them
@@ -191,7 +207,7 @@ public function setTemplate($templateFile)
*/
public function getVariables($block = null)
{
return array_merge($this->blockVars, $this->vars, array('PHP' => &$GLOBALS));
return array_merge(array('PHP' => &$GLOBALS), self::$globals,$this->blockVars, $this->vars);
}
@@ -293,6 +309,7 @@ public function debug()
{
self::$debug_data[] = $this->templateFile;
echo "<h1>".$this->templateFile."</h1>";
echo "<ul>";
foreach($this->vars as $key => $val)
{
@@ -308,6 +325,16 @@ public function debug()
}
echo "</ul>";
}
if(count(self::$globals))
{
echo "<ul>";
foreach(self::$globals as $key => $val)
{
echo self::debugVar($key, $val);
}
echo "</ul>";
}
}
/*foreach ($this->blockVars as $block => $tags) {
$block_name = $file . ' / ' . str_replace('.', ' / ', $block);
View
@@ -3299,7 +3299,7 @@ function cot_schemefile()
* @param string $type Extension type: 'extension' or 'system'
* @return string
*/
function cot_tplfile($base, $type = 'extension')
function cot_tplfile($base, $type = 'extension', $theme = null)
{
global $usr, $cfg, $env, $sys;
@@ -3316,13 +3316,9 @@ function cot_tplfile($base, $type = 'extension')
$scan_dirs = array();
// Possible search directories depending on extension type
if ($type != 'extension' && in_array($base[0], array('admin', 'header', 'footer', 'message', 'login')))
$scan_dirs[] = $sys['theme_dir'].'/';
if ($type == 'extension' && !in_array($base[0], array('admin', 'header', 'footer', 'message', 'login')))
{
$scan_dirs[] = $sys['theme_dir'].'/';
}
else
{
$scan_dirs[] = $sys['theme_dir'].'/';
$scan_dirs[] = $sys['theme_dir']."/{$base[0]}/";
$scan_dirs[] = "{$cfg['extensions_dir']}/{$base[0]}/tpl/";
}
Oops, something went wrong.

0 comments on commit a2803d9

Please sign in to comment.