源码下载地址: http://code.google.com/p/glools-drupal/downloads/list
项目地址:http://code.google.com/p/glools-drupal
示例网站: www.lasooo.cn (基于0.3版本开发)
更新项目如下:
-
[frontend module] 独立channel操作到 inc_channels.
这样的分离可以有效的减少对frontend模块核心代码的编辑,以维护其稳定性,并优化对channel开发的规范性。 -
[glools module] 原在 glools_page_build函数中,定义的 节点view_mode扩展操作,转移到frontend模块中。
这样可以使frontend更专注前台,同时glools模块更专注功能与标准化扩展。 -
[glools module] 修复drupal内核系统关于image_style操作无效的bug.
该问题的起因是,在后台上传图片后,负责图片style操作的函数没有被调用,导致没有正确的创建根据image_style设定的图片。
解决办法参见glools模块相关函数。 -
[ajax.js] 该程序是drupal内核程序,修复通过服务器端invoke命令调用自定义JS对象(已注册为JQUERY对象)无效的操作。
新的ajax.js 保存在glools模块根目录下,可自行决定是否启用。
启用新ajax.js 代替drupal内核ajax.js的需求:
当自定义客户端JS对象,并希望通过服务器端ajax_command_invoke函数调用时,需要使用新ajax.js,其它情况暂时不需要。 -
[gloolsgarden theme] 该模板包,在依赖drupal核心style.css基础上,规范并定义了整套drupal模板开发结构,非常方便企业应用开发。
具体内容包括:- layout结构定义,包含依赖layout概念的template和CSS等。
说明:layout结构定义,不指具体layout.tpl.php模板结构定义。而是指基于drupal系统进行模板定制的整套结构,其内容包含:- layout的定义 - 系统默认为channel名称(@channel定义规范)
- 在gloolsgarden模板包中,layout的实现:
- 模板统一放置在 templates/layouts 目录下。
- CSS文件统一放置在 css/layouts目录下。
- 基于layout模板的CSS样式文件会在gloolsgarden模板包中,自动加载,具体参见 gloolsgarden/theme-funcs.inc程序
- 网站首页也是频道之一命名为frontpage.
- 基于layout概念的template和CSS文件都有明确的规范,具体参考gloolsgarden模板包中相应的文件。
- layout结构定义,包含依赖layout概念的template和CSS等。
-
[gloolsgarden theme] layouts/[layout name].layout.php 文件HTML节点结构说明(节点CLASS名称作为节点名称)
- page-wrapper: 网站页面最外层节点
- box-wrapper:页面最高级别区域群(region)定义,所谓区域群,指该节点下,包含多个区域结构,且只能包含区域结构。在页面表现中,区域群是横向的。
- regions-wrapper:该节点下面才是页面真正的区域定义,之在一个横向范围内的区域结构定义。
- region: 具体区域定义,一个区域下包含多个内容块(block)
- block:具体内容块,该节点内部只能是具体页面呈现内容,不能再包含任何页面结构性内容。在glools-drupal框架中,block和view接轨。
以上的节点结构中,除 page-wrapper是唯一节点外,其它各层节点都可并向扩展,也就是说,页面结构中,可以包含多个box-wrapper,每一个box-wrapper
可包含多个regions-wrapper。该节点层级结构,的设计基础需求基础是大型门户型网站页面结构需求,例如网易,新浪,腾讯等,以及你在地球上看到的任何复杂页面结构。除页面结构定义外,各类模板都分别放置在regions,blocks目录内,所以遵守并建立良好的开发规范会更便于大型项目长期开发和维护。
目录结构在CSS中也同样有效,请参见gloolsgarden/css/目录结构. - page-wrapper: 网站页面最外层节点
-
[glools module]规范Glools_Inc_Tools::loadInc();方法目录指向的使用,具体请参见
libraries/glools/loadinc.lib.inc
static protected function defaultIncTypes(){
return array(
'lib' => array('path_suffix'=>'libraries', 'file_suffix'=>'lib'),
'data' => array('path_suffix'=>'data', 'file_suffix'=>'data'),
'preset' => array('path_suffix'=>'presets', 'file_suffix'=>'preset'),
'channel' => array('path_suffix'=>'channels', 'file_suffix'=>'channel'),
'tpl' => array('path_suffix'=>'templates', 'file_suffix'=>'tpl')
);
}
如需扩展可自行扩展该方法,在原v0.3系统中,Glools_Inc_Tools::loadInc('aaa', 'libraries', 'module');方法调用,需要文件名后最必须是 ?.libraries.inc
这其中,libraries命名不规范,不应该是复数,更合适的名称应该是lib简称,所以在这里规范。 -
[frontend module] 对AJAX操作的规范(unstable,继续优化中):
- 如在channel中,有表单设置,并附加AJAX选项,可默认设置callback参数为frontend_channel_form_ajax_callback,负责所有基于频道的CHANNEL AJAC callback操作。
因为,如果定义callback函数在具体?.channel.inc配置文件中,则AJAX请求,有时可能无法正确找到相应的callback,表单项验证负责完成element_validate任务即可. - frontend_form_element_validate_ajax_render 是可扩展函数,可以根据自己需求设置输出结果。
- 如在channel中,有表单设置,并附加AJAX选项,可默认设置callback参数为frontend_channel_form_ajax_callback,负责所有基于频道的CHANNEL AJAC callback操作。
-
[frontend module] 各个频道的 form validate,submit操作统一到frontend_channel_form_validate, frontend_channel_form_submit两个函数中,并由这两个函数分别
导入具体的?.channel.inc文件,并invoke [form_id]_validate, [form_id]_submit方法。
该操作为解决,drupal_get_form, 无法正确找到设置在channel中的表单操作。 -
[gloolsgarden theme] 基于node view_mode属性,系统会自动加载 node--node_type-view_mode.tpl.php程序,和 css/nodetypes/[node_type]-view_mode.node.css
样式文件。 -
[view] (重复说明)0.3系统中,所有view的css,js 等文件统一放置在views目录中,具体见 views/目录结构,并且系统会自动调用这些文件。
在view目录中, features和misc目录分离,并view的具体目录为 features/view/?.view.inc 的用意为,一个view,可以有多个模板和样式文件,可以更灵活定制。 -
在v0.3.2版本中,包含frontend模块完成项目中的channels代码包和gloolsgarden模板包。在实际项目开发中,可参考使用。

Comments
建议把代码提交到drupal.org
建议把代码提交到drupal.org,可以充分发挥drupal强大的社区优势,方便大家提出更多建议和bug提交、追踪!让系统不断优化、完善!
Drupal中国 http://drupalchina.cn Drupal China
DrupalSNS http://drupalsns.com
同意 jackniu
同意 jackniu 的观点,希望可以尽快在sandbox看到你的代码。
“Glools-drupal used for
“Glools-drupal used for speeding up drupal development for enterprise web site.”
第一次看到就已经是0.3版了,更新日志让人感觉应该很有兴趣,如果有一个完整优化的说明就更好了。
之前有几个版本,是在本地开发的,没有上传。 Glools-
之前有几个版本,是在本地开发的,没有上传。
Glools-Drupal-1.0正式版本发布的时候一定会上传到drupal社区,现在还不到时候,这套框架是众多drupal7项目开发经验的积累,同时也需要更多的项目应用使其更完善,并逐步趋于成熟。
The creator of GLOOLS.