fritak / nette-dynamic-loader
使用 bower 的 nette 动态加载器。
1.2.2
2015-06-01 12:07 UTC
Requires
- php: >=5.3.0
README
这是一个 nette 的虚拟动态加载器。
##开始使用
- 通过 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" }
- 推荐安装方法是使用 composer。
composer require fritak/nette-dynamic-loader
- 在 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)
- 创建组件(例如,在 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; }
- 将控件添加到模板中(例如,@layout)。
{control dynamicLoader}
- 就是这样!您可以使用以下配置来控制它
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'
- 您可以设置默认插件全局
defaultPlugins: - 'jquery' - 'jquery-ui' - 'bootstrap'
- 或在组中。但此时您必须将 GROUP 设置为组件。
defaultPlugins: front: - 'jquery' backEnd: - 'jquery' - 'jquery-ui' - 'bootstrap'
- 如果您设置了 defaultPlugins,则不会加载其他插件。因此,您必须在演示者中手动设置它们(例如,在 HomepagePresenter 中)。
public function __construct() { $this->enablePlugins = ['jquery-ui']; parent::__construct(); }
- 并编辑 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; }