你在这里

编辑推荐代码片段

主标签

基于Drush的批处理的延伸思考

0
Vote up!

批处理有很多种实施方案,到了Drupal,借助Drush,我们就有了更DrupalWay的方法,本文探讨的是如何让批处理的效率大幅提升。

本文是在本站之前两篇文章基础上的续篇,背景知识请移步:

Drupal7单系统多主题资源文件分离加载方案

0
Vote up!

: 本文的技巧基于Drupal7,Drupal6也做过类似的事情,但Drupal7更复杂一些,所以以Drupal7来举例。

我们在使用Drupal建站时,经常使用drupal_add_js, drupal_add_css来添加资源文件,有的会根据条件只在指定的页面加载资源文件,而有的,由于就是需要全站生效,就会全局加载。

Drupal给用户添加角色和删除角色的代码片段

0
Vote up!

Drupal中用后台添加和删除角色十分简单,但有时我们需要在自定义模块中编程实现这个逻辑,可能是为了自动化,也可能是有额外的业务逻辑,给用户添加角色不像编辑节点那样load出来再save就行了,我们需要花点心思。

任意规则批量导出节点的Drush命令

0
Vote up!

导出Node节点,我们常用的一个方法是使用Node export模块,这个模块既支持后台导入导出,也支持Drush命令,Drush命令的用法如下:

Drupal批量处理数据的脚本

0
Vote up!

当我们做批处理的时候,可能会有各种个样的方式,比如使用Drupal的Batch API,比如自己写个php脚本,循环处理,比如写个drush命令,比如利用Jenkins循环调用自身的方式,可以利用多线程技术,甚至是换一个思路用其他语言比如Node.js来做批处理。

我这里当然不会介绍这么多,只是说一下我遇到的一个场景的解决方法。

场景描述:

用Drush命令序列快速得到一个中文本地测试环境

0
Vote up!

这个主题的初级版请参考:最简单的重置本地环境的方法

通过执行drush si,我们可以得到了一个新的空的Drupal环境,但为了测试模块,或者实现某些想法,我们仍然需要继续配置一些东西,例如:

Drupal6编程批量创建CCK字段

1
Vote up!

如果是少数的字段,我们直接使用CCK的字段管理后台创建就可以了,但是如果是几十个,上百个字段,我们还人工手动创建么?这种繁琐的工作任何人都不愿意做,更何况是程序猿的我们呢。

这个代码片段来自于工作中的一次内容类型数据结构初始化的任务,有上百个字段要建立,类型也不尽相同,但大体可以分为以下几类。

让dpm只执行一次

0
Vote up!

由于Drupal执行流程的特殊性,当我们使用dpm打印调试信息时,很多时候同一个位置的调试信息会被重复打印,但我们往往只需要看一条就够了,重复打印会造成页面打开缓慢,甚至打不开,同时也会影响我们的调试效率。

通过这个代码片段,我们可以只显示同一个位置dpm调用第一次的打印结果,通过改造这个代码片段,你甚至可以指定范围,或者输出次数统计之类的附加信息。

怎样自定义一个输入格式过滤器

0
Vote up!

输入格式过滤器也是Drupal的一大特色,有了各种过滤器,我们可以把URL变成链接,可以过滤不允许的标签或属性,可以支持Markdown语法,甚至可以自定义语法。

定义输入格式过滤器主要是要学会使用hook_filter_info。(在Drupal6里是hook_filter)。

让页面上所有的没有走CDN的资源都走CDN

0
Vote up!

Drupal有CDN模块,开启后,经过恰当的配置,理论上Drupal默认支持的比如CSS加载,文件路径,imagecache的图片等都会自动的切换到CDN。但现实往往是残酷的,不完美的。我们的网站上经常有一些人工编辑的页面,使用了写死(hard coded)的指向主站资源的链接。

Drupal邮件系统迁移思路

0
Vote up!

本代码片段分享的是Drupal邮件系统迁移的大致思路。

如何快速的导出复杂查询条件的数据

0
Vote up!

如果是简单的查询条件,一般的MySQL客户端,尤其是我经常用的Navicat就可以胜任了,但是我遇到的问题是,公司其他部门要的数据的查询语句比较复杂,执行时间非常长,是个慢查询,里面有多表JOIN,有聚合运算,百万数量级的数据,这里不导论更换成Hadoop或者MongoDB等高端话题,就是如何能快速的把数据导出来。

紧急批量删除节点

24
Vote up!

批量删除节点当然,核心自带的管理界面可以做到,如果是大批量的删除,我们需要借助VBO模块。但如果要删除的节点要满足一个比较复杂的条件,VBO也很难解决。