为 ZF2 定制的主题系统

dev-master 2013-09-05 17:03 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:07:36 UTC


README

Zend Framework 2 (ZF2) 主题管理器

将以下行添加到您的应用程序的 composer.json 中

"require": {
    "shadowfax/zf-themes": "dev-master"
}

在 index.php 中更改

Zend\Mvc\Application::init(require 'config/application.config.php')->run();

Themes\Mvc\Application::init(require 'config/application.config.php')->run();

这将加载 ThemeManager 服务。

创建新的模块时,只需实现 Themes\ModuleManager\Feature\ThemeProviderInterface

...

use Themes\ModuleManager\Feature\ThemeProviderInterface;

...

class Module implements ThemeProviderInterface
{

    ...
    
    public function getDir()
    {
    	return __DIR__;
    }
    
    public function getNamespace()
    {
    	return __NAMESPACE__;
    }
    
    ...
    
}

主题应位于模块目录内的 themes 子目录中。至少应有一个名为 default 的主题。

示例树

  • themes
    • default
    • my_new_theme

布局文件 layout.phtml 应位于主题的根目录下,其余部分与 Zend Framework 的 view 文件夹一样工作。

资产(CSS、JS、图片等)可以存储在主题下的 assets 文件夹中。以下是一个默认模块的示例条目。

  • default
    • assets
      • css
        • layout.css
        • bootstrap.css
      • js
        • jquery.js
    • application
      • index
        • index.phtml
    • layout.phtml

该模块创建了一个名为 assets 的路由。资产的重定向是

/assets/:modules/*

其中 * 是实际资产的相对路径。

将 Zend Framework 2 应用程序移植到基于主题的应用程序应该非常简单,您只需更改 view 文件夹的名称为 default,将其移动到名为 themes 的文件夹中,并移动布局文件,即可完成。