kappa / themes-manager
用于简化主题操作的包
dev-master
2016-06-13 19:30 UTC
Requires
- nette/application: ~2.2@dev
- nette/di: ~2.2
Requires (Dev)
- mikey179/vfsstream: ~1.4@dev
- mockery/mockery: ~0.9@dev
- nette/nette: @dev
- nette/tester: ~1.0
This package is auto-updated.
Last update: 2020-01-10 15:03:19 UTC
README
用于简化主题操作的包
需求
- PHP 5.4 或更高版本
- nette\di 2.2 或更高版本
- nette\application 2.2 或更高版本
安装
使用 Composer 安装 Kappa\ThemesManager 是最佳方式
$ composer require kappa/themes-manager:@dev
用法
首先必须注册扩展
extensions: themes: Kappa\ThemesManager\DI\ThemesManagerExtension
现在您可以在配置文件中配置应用程序的模板
themes: themeName: themeDir: %wwwDir%/../../ # required assetsDir: :themeDir:/assets # required params: # params helpers: # helpers in format helperName: @service::method macros: # macros pathMasks: templates: # path masks for formatTemplateFiles layouts: # path masks for formatLayoutTemplateFiles
所有设置将仅在自己的部分中生效。
在模板中可以使用以下占位符
:themeDir:- 包含主题目录路径:assetsDir:- 包含资产目录路径,用于创建临时副本并将其复制到公共目录。在模板中,现在可以使用{$assetsDir}变量作为脚本、样式等文件的基准路径:presenter:- 包含表示者名称(不带模块):modules:- 包含模块名称(模块名称 My:Module 将被替换为 My/Module):module_(number):- 包含模块名称(My:Module => module_1 = My, module_2 => Module):action:- 包含表示者动作名称:view:- 包含表示者视图名称:themeName:- 将被替换为主题名称
在您的表示者中,您可以获取模板工厂和文件格式
使用 kdyby/autowired,建议使用
class BasePresenter extends Presenter { use AutowireProperties; /** * @var \Kappa\ThemesManager\Theme * @autowire(admin, factory=\Kappa\ThemesManager\ThemeRegistry) */ public $theme;
或经典方式
class BasePresenter extends Presenter { /** @var \Kappa\ThemesManager\ThemesRegistry @inject */ public $themesRegistry;
更新模板
public function getTemplateFactory() { $templateFactory = parent::createTemplate(); // For kdyby/autowired $templateFactory->setTheme($this->theme); // Else $theme = $this->themesRegistry->getTheme('admin'); $templateFactory->setTheme($theme); return $templateFactory; }
现在您的表示者具有来自配置文件中定义的 'themeName' 部分的宏、助手和参数
接下来,您可以使用自定义路径掩码。例如
public function formatLayoutTemplateFiles() { $list = $this->theme->getPathMapper()->getFormatLayoutTemplateFiles(); return $list; } public function formatTemplateFiles() { $list = $this->theme->getPathMapper()->getFormatTemplateFiles(); return $list; }