rayamedia / yima-widgetator
此包的最新版本(dev-master)没有可用的许可信息。
Widgetator 布局模块。
dev-master
2015-06-24 17:44 UTC
Requires
- php: >=5.3.3
- rayamedia/yima-plugin-installer: dev-master
- rayamedia/yima-static-uri-helper: dev-master
This package is auto-updated.
Last update: 2024-09-24 05:20:56 UTC
README
本模块是 Yima 应用框架的一部分
查看实际效果
什么是 Widget
Widget 是一个实现最小接口 WidgetInterface 的类
interface WidgetInterface { /** * Render widget as string output * * @return string */ public function render(); }
Widget 插件管理器
Widgets 存储在 widget 插件管理器(widget 的服务定位器)。使用服务管理器键 yimaWidgetator.WidgetManager 存储,并作为工厂服务构建。
从合并的配置中定义 widget(s)
return array( /** * Register Widgets in WidgetManager * * each widget must instance of WidgetInterface */ 'yima_widgetator' => [ // This is configurable service manager config 'services' => [ 'invokables' => [ # 'widgetName' => 'Widget\Class', ], 'initializers' => [ // DB: Using Global db Adapter on each services Implemented AdapterAwareInterface function ($instance, $sl) { if ($instance instanceof \Zend\Db\Adapter\AdapterAwareInterface) { $sm = $sl->getServiceLocator(); $instance->setDbAdapter( $sm->get('Zend\Db\Adapter\Adapter') ); } } ], ], 'widgets' => [ /** @see RegionBoxContainer */ 'region_box' => [ # // $priority default is start with 0 # $priority => 'WidgetName', # $priority => [ # 'widget' => 'WidgetName' # 'params' => [ # 'with_construct_param' => 'param_value' # ] # ], ], ], ],
如何获取 Widgets?
在控制器中通过控制器助手
$this->layout()->side_bar = $this->widget('widgetName')->render();
在视图脚本中
<div class="container"> <p><?php echo $this->widget('widgetName')->render();?></p> </div>
使用 Ajax 调用加载 Widgets
ajax widget 加载需要一些在模块的 www 文件夹中可以找到的 js 资源。你可以将文件放在任何你想的地方,并编辑 config\module.config.php。
return array( /** * Libraries that used in Ajax Loading of widgets. * @see \yimaJquery\View\Helper\WidgetAjaxy */ 'static_uri_helper' => array( 'Yima.Widgetator.JS.Jquery.Ajaxq' => '$basepath/js/yima-widgetator/jquery.ajaxq.min.js', 'Yima.Widgetator.JS.Jquery.Json' => '$basepath/js/yima-widgetator/jquery.json.min.js', ),
有关 static_uri_helper 的更多信息,请参阅 yimaStaticUriHelper
在视图脚本中
<div class="container"> <p id="container_id"> <?php echo $this->widgetAjaxy('widgetName', // widget name array('option' => 'value'), // options 'container_id', // id of dom element 'function callback(response)' // callback after loading widget ); ?> </p> </div>
我正在努力改进 Widgets 的 Ajax 加载。
最后
我们有一些名为:AbstractWidget 和 AbstractMvcWidget 的抽象类 Widgets。(查看)
待办事项
将添加示例 Widgets 和 AbstractClasses。
安装
要求
Composer 安装
在您的 composer.json 中包含 rayamedia/yima-widgetator
或克隆到模块文件夹
在应用程序配置中启用模块
支持
要报告错误或请求功能,请访问 问题跟踪器。
请随时通过新的问题、请求和代码修复或新功能来贡献。