Glools-Drupal 简易使用引导

Events happening in the community are now at Drupal community events on www.drupal.org.
GloolsGuan's picture

该引导基于 Glools-Drupal release-0.3.1

Glools-Drupal大概介绍:
1. 现在比较完善的是针对drupal7的前台开发整套组件。
2. 修正或完善drupal7部分内核功能,这些修复都独立名字在glools模块下,选择使用。
3. 建立基础的drupal7框架扩展库开发标准。
4. 抽取部分drupal7内容输出模型,并建立glools library,可以方便进行后台自定义管理数据开发。
5. glools-garden模板包,是一套适合大型网站,全面自定义页面框架的扩展包,几分钟就可以定义一个框架, 配合完善的view组件(glools-drupal的view组建,不是drupal第三方views模块),建立一个框架页面, 不超过30分钟,这是慢的,当然,如果view组件不丰富,可能需要多一些时间开发。
6. 这套框架,现在已经应用于几个网站,框架还在开发中,并不成熟,但是应付一般常规网站开发,稳当。

第一部分: 前台开发组件
“ 简要说明 ”
【组成】
- view,核心代码 library/glools, 扩展组件 /sites/all/views,
配置文件【任何模块】/views-preset.data.inc, 启动 [module]_page_build();
在glools-drupal中,默认在frontend模块中,其它模块不得配置view,只为规范。
- channel(频道)定义,默认域名下所有一级目录参数为频道,例如 www.domain.com/aaa, 其中aaa为频道。
该参数设置只能为英文字母组合。在channel详细的配置程序中,可以无限扩展下级目录,例如 w.d.com/a/b/c等。
channel文件配置目录 module:frontend/inc_channels.
- frontend 模块,负责前台全部逻辑,其它模块提供功能,不涉及前台显示逻辑,这是glools-drupal的规范,这样
开发便于长期维护。
- glools-garden模板包,以及其实现的layout结构,具体参考:
* glools-garden/template.php
* glools-garden/theme-funcs.inc
* glools-garden/templates/layouts
* glools-garden/css/layouts
当设置templates/layout时,对应的layout 的 CSS文件会自动加载。
另: 在glools-garden模板包中,明确区分, layout,region,block,nodes的模板和对应css文件。
【改善】
- view_mode, 当通过node_view_multiple();输出节点样式时,可指定任意view_mode,命名规范符合PHPH函数命名
规范即可,例如 $view_mode="aaa",那么系统会自动寻找 glools-garden/templates/node--[node type]-[view mode].tpl.php,
所以,可以灵活自定义任何内容类型的任何view_mode样式。glools-drupal框架中,留了一些实例代码可供参考。
同时对应的CSS文件也会自动加载,glools-garden/css/nodetypes/[node type]-[view mode].node.css
- 自定义layout template,对应的css文件也会自动加载,这个前面已经说过。
- region template 和 CSS文件都独立了,可以自由在layout中配置,类似搭积木(参考代码)。
- layout remplate是由 region组合而成,随意配置,所以几分种就可以搞定一个layout,配合view,就是一个独立的频道页面完成。

【开发说明】
这一套东西,目前跑起来还比较顺畅,但是文档不多,bug多少也有一些,所以需要多看代码。

第二部分: drupal7内核修正和完善
1. glools_pager, 在glools模块下,修正默认drupal7,同一个页面多个分页可能出错的问题。
在frontend/inc_channels/news.channel.inc frontend_channel_news();有使用方法,

        ->addMetaData('page-owner', 'news');
        ...
        $build['pager'] = array(
          '#theme'   => 'glools_pager',
          '#weight'  => 5,
          '#element' => 'news'
        );
       

分别是 addMetaData方法和 #element设置,这两部分要对应,就可以了。
2. [module]glools/inc_libraries/drupal-theme.lib.inc
theme_glools_item_list(); 添加 “cAttributes” 属性 表示 container attributes.
3. model, 目录 /sites/all/models, 主要解决两个问题:
1. 避免数据提取随意在任意模块中,方便后期维护和扩展。
2. drupal7 数据操作底层默认支持多服务器和数据库模式,但是在实际操作中,这部分功能被忽略,model重新启用,只需要简单设置参数就可以,
具体参考源码, [libraries]/glools/model.lib.inc. 以及 sites/all/models/*.model.inc

第三部分: drupal7扩展库开发标准,参考 glools library. 主要是 class命名和引用问题。
[module]glools/inc_libraries/func.lib.inc有使用实例,包括view组件,model都是使用实例。

大概就这么多了,剩下的多看代码,手册不完善,玩儿drupal需要多研究代码。

此文献给中国drupal社区所有成员,希望中国drupal社区可以更好的发展。也希望很多新手在拿着第三方module磊积木的同时,
可以多研究drupal源码,学习drupal的精神,多有一些实际的应用和社区贡献。

glools-drupal 下载地址 http://code.google.com/p/glools-drupal
我的新浪微博,@GloolsGuan, 有问题 @我。

Comments

zterry95's picture

谢谢你的贡献。

但是个人建议可以做成一个profile,并放到drupal.org,这样会有更多的人去使用和测试你的代码。这样才符合drupal风格。这样会有利于提高代码质量,并且跟多人参与的讨论,会给你带来更多的意见或者建议,对Glools的提升,肯定会有所帮助。

个人一点建议,望采纳。

profile是个好主意,但可能不够

miloyz's picture

把项目分解成三个部分上传:
theme
module
install profile
这样就完整了。

如果要整个上传的话,可以考虑distribution。但因为distribution里的项目都是产品类的,不知道上传审核会不会通过。

Love, Peace and Drupal

GloolsGuan's picture

多谢楼上的意见,如果进展顺利,今年晚些时候会规范代码并上传drupal社区,现在还在发展中,代码中还有很多不完善和不稳定的成分,应付一些常规网站开发没有什么问题,但是长期维护和使用会有问题,所以还需要完善。

多谢

The creator of GLOOLS.

DrupalHK

Group categories

HKDUG Vocabulary

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: