fritak/nette-dynamic-loader

使用 bower 的 nette 动态加载器。

1.2.2 2015-06-01 12:07 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:50:17 UTC


README

这是一个 nette 的虚拟动态加载器。

##开始使用

  1. 通过 bower 下载所有插件,安装到 PATH:PLUGIN_NAME/css 和 PLUGIN_NAME/js(遗憾的是,目前没有其他路径可选)。您可以使用 Bower 安装器(bower.json)轻松完成此操作。
  "dependencies": {
    "jquery": "~2.1.3",
    "jquery-ui": "~1.11.4",
    "bootstrap": "~3.3.4",
  },
  "install": {
    "path": {
        "css": "plugins/{name}/css",
        "js": "plugins/{name}/js",
        "/[sc|le]ss$/": "plugins/{name}/css",
        "eot": "plugins/{name}/fonts",
        "svg": "plugins/{name}/fonts",
        "ttf": "plugins/{name}/fonts",
        "woff": "plugins/{name}/fonts",
        "woff2": "plugins/{name}/fonts",
        "otf": "plugins/{name}/fonts",
        "png":  "plugins/{name}/css/images"
    }
  1. 推荐安装方法是使用 composer。
composer require fritak/nette-dynamic-loader
  1. 在 config.neon 中注册参数 a 用于缓存。
parameters:
    loader:
        bowerJson:  '/var/www/bower.json' # Path to your bower file
        pluginPath: '/var/www/plugins/'   # Path to installed plugins (see item 0)
services:
	- DynamicLoader\Loader(%loader%, @cacheStorage)
  1. 创建组件(例如,在 BasePresenter 中)。
    use DynamicLoader\Loader;

    public function createComponentHeadLoader() 
    {
        $component = clone $this->context->getByType('DynamicLoader\Loader');
        $component->renderPosition = Loader::POSITION_HEAD;
        return $component;
    }
    
    public function createComponentBottomLoader() 
    {
        $component = clone $this->context->getByType('DynamicLoader\Loader');
        $component->renderPosition = Loader::POSITION_BOTT;
        return $component;
    }
  1. 将控件添加到模板中(例如,@layout)。
{control dynamicLoader}
  1. 就是这样!您可以使用以下配置来控制它
parameters:
    loader:
        defaultCSS: DynamicLoader\Loader::POSITION_HEAD #Defaut CSS position
        defaultJS:  DynamicLoader\Loader::POSITION_BOTT #Defaut JS  position
        renderAll:  1                                   # Render ALL added plugins
        bowerJson:  '/var/project/www/bower.json'       # Path to your bower file
        basePath:   '/project/www'                      # If you have different basePath than is default
        pluginPath: '/var/project/www/plugins/'         # Path to installed plugins (see item 0)
        disableBar: 1                                   # You can disable debug bar
        positionsHead:                                  # You can set plugins positions in HEAD OR BOTT directly:
            - 'bootstrap.min.css'
        positionsBott:
            - 'bootstrap.min.js'
  1. 您可以设置默认插件全局
        defaultPlugins:                                 
            - 'jquery'
            - 'jquery-ui'
            - 'bootstrap'
  1. 或在组中。但此时您必须将 GROUP 设置为组件。
        defaultPlugins:                                 
            front:
                - 'jquery'
            backEnd: 
                - 'jquery'
                - 'jquery-ui'
                - 'bootstrap'
  1. 如果您设置了 defaultPlugins,则不会加载其他插件。因此,您必须在演示者中手动设置它们(例如,在 HomepagePresenter 中)。
    public function __construct() 
    {
        $this->enablePlugins = ['jquery-ui'];
        parent::__construct();
    }
  1. 并编辑 basePresenter
    public $enablePlugins = [];

    public function createComponentHeadLoader() 
    {
        $component = clone $this->context->getByType('\DynamicLoader\Loader');
        $component->renderPosition = Loader::POSITION_HEAD;
        $component->enablePlugins = $this->enablePlugins;
        $component->group = 'front';
        return $component;
    }
    
    public function createComponentBottomLoader() 
    {
        $component = clone $this->context->getByType('\DynamicLoader\Loader');
        $component->renderPosition = Loader::POSITION_BOTT;
        $component->enablePlugins = $this->enablePlugins;
        $component->group = 'front';
        return $component;
    }

链接