Think in Drupal第4集 预告

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2012-12-24 15:19

经过三个月的辛苦努力,Think in Drupal第4集的写作工作即将完工。第4集本身和2,3集没有直接联系,可以看作是第1集的姐妹篇。在这一集的Think in Drupal里面,主要讲解了一下内容:

基于Entity API自定义一个实体类型

Views的集成开发,如何导出views到代码里面,如果定义新的Views字段

Rules的集成开发,如何自定义一个动作,自定义一个条件,如何导出rules规则到模块代码里面。

上下文链接的集成

Drupal批处理(Batch)API

Drupal主题系统

Drupal最佳实践,代码安全、编码标准、GIt使用

Ctools插件开发,如果自定义一个插件类型,

 

本集,以自己编写的Breadcrumb2模块和Field Validation模块为主线,介绍了Drupal7模块开发中的常用技术。

预计将会在2012年12月底完工,2013年1月上旬,将会在thinkindrupal.taobao.com上面出售。

Drupal版本:

drupal中的hook顺序问题

g089h515r806 的头像
Submitted by g089h515r806 on 星期五, 2012-12-21 14:08

Drupal中的hook顺序问题,这是刚学Drupal开始时,经常遇到的一个问题,因为Drupal中的hook很多,有些hook,它的执行顺序,对后面的是有影响的。

比如hook_form_alter,如果一个多个模块,同时使用hook_form_alter修改同一个表单,这个时候,先后顺序不一样,效果可能也就不同。

在drupal7中,为了解决hook的顺序问题,我们可以调整模块的重量,比如我在Field

Validation模块中,就使用了下面的代码:

/**

 * Implements hook_install().

 */

function field_validation_install() {

  db_query("UPDATE {system} SET weight = 10 WHERE name = 'field_validation'");

}

通过将field_validation'模块的重量设置为10,从而让这个模块的钩子实现,放在靠后的位置执行。

Drupal版本:

购买Think in Drupal中文资料,送thinkindrupal.com读者账号

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2012-12-20 15:06

    凡是购买Think in Drupal中文资料的用户,在购买成功后,可以增送一个thinkindrupal.com账号。thinkindrupal.com是老葛的个人博客,原名zhupou.cn,现在更名为了thinkindrupal.com.现在网站关闭了注册功能,主要是因为垃圾用户太多,很多都是发广告的,前段时间清空了大量的垃圾用户,但是也有部分真实的用户被清除掉了。

     当您收到我们快递Think in Drupa资料以后,评价完毕,注意,只有给我们好评的客户,才会增送thinkindrupal.com账号。您可以通过旺旺、QQ、或者邮件,告诉老葛,你想要的用户名、密码。老葛会通过thinkindrupal.com的后台为您创建对应的账号。对于只提供用户名的,创建的密码与用户名将会一致,请登录后修改您的密码。

     有关资料中的各种问题,请大家发到thinkindrupal.com的论坛里面来,通常放到“有问有答”就可以了。对于与资料相关的问题,我们会第一时间及时的给您答复。

Drupal版本:

drupal慢?不,Drupal很快

g089h515r806 的头像
Submitted by g089h515r806 on 星期三, 2012-12-19 15:27

很多人刚接触Drupal的时候,总是感觉Drupal很慢,即便是在本地,装了几个Drupal模块以后,感觉就跑不动了。这个本身和本地环境的配置也有关系,建议修改php.ini文件,将PHP的内存,执行时间都调的大一点。这样就不会感觉慢了。

模块不要装太多,尤其是安装量比较小的Drupal模块,更应该注意。模块太多,对于性能的拖累也是非常明显的。

网站上线后,建议开启所有的缓存。性能优化的关键就在于缓存。有各种层次的缓存技术,具体可以参看Think in Drupal 第三集里面,有关性能优化的介绍。

 

Drupal6比Drupal5慢, Drupal7比Drupal6慢,Drupal8比Drupal7慢。其中,Drupal7的性能问题最为突出,性能比Drupal6慢很多。Entity API模块用的时候,要小心,很吃内存,也存在潜在的性能问题。顺便说一句,Commerce比Ubercart慢,具体慢多少,没有实际测试过,这是应该的,Commerce大量的使用Entity API,对性能影响很大,性能问题一直也是让commerce头疼的问题。

drupal取当前路径

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2012-12-18 03:32

Drupal模块开发过程中,经常需要获取当前路径,获取当前路径别名:

获取当前当前路径

current_path

适用Drupal7,Drupal8

获取当前当前路径别名

drupal_get_path_alias

适用Drupal6,Drupal7,Drupal8

获取当前内部路径

drupal_get_normal_path

适用Drupal6,Drupal7,Drupal8

获取当前路径别名(或路径):

request_path

适用Drupal7,Drupal8

 

论坛:

使用<marquee>在Drupal中实现滚动公告

g089h515r806 的头像
Submitted by g089h515r806 on 星期二, 2012-12-18 03:10

   如果是给中国客户搭建Drupal网站的话,客户经常提出一些花俏的小功能,比如说滚动公告,如果实现,这也是初学者经常问的问题。

    滚动公告,一听名字,可能很多人,不知道怎么回事,和Drupal联系在一起,如何使用Drupal实现滚动公告?下面是个例子

我能滚动啊,这里放滚动公告

    其实在Drupal中实现滚动公告,只需要创建一个静态区块即可,通过Drupal后台创建静态区块,这个是最基本的功能,我想大多数人都知道。

在区块里面加上一个html标签,<marquee> ... </marquee>,这样就搞定了。

滚动公告这个效果,有时候又被人称之为跑马灯,很早以前自己就谢过一片文章:http://www.thinkindrupal.com/node/2903, 里面介绍了这个效果。

   最近有人问如何在Drupal实现滚动公告这个问题,这里再重新写一遍,介绍一下。

论坛:

页面

Subscribe to Think in Drupal RSS