Bun Wong's Blog

专注于 Web 应用程序开发

Drupal

Drupal 下 files 为符号连接目录的 imagecache 异常

2010/02/03 •

Drupal 可调用 file_create_path($source) 来返回 $source 的真实存在路径,而 file_create_path 函数内部是通过调用 file_check_location($source, $directory) 来检查 $source 是否存在于 $directory 内的,这里的 $directory 是 file_directory_path(),也就是我们熟悉的 sites/defailt/files 目录...

Drupal 渲染注册流程剖析

2009/12/19 •

昨天晚上遇到一个很纠结的问题,是关于 Drupal Theme 的 Template 文件路径问题。原则上只要 Theme 主题目录下存在同名的 tpl.php 的话,Drupal 将不再使用 Module 目录下的默认模板,出现的问题则不同,Drupal 找不到 Theme 目录下的文件而总是用原默认模板...

Drupal 后台主题

2009/07/17 •

今天发现了一个很不错的主题,很适合用来做 Drupal 的后台,因为 Drupal 中后台和前台是可以选择不同的主题,前台通常都是自定制的了,如果你已经很厌倦了 Drupal 默认的丑陋的 Garland 主题,又或者你不希望被人发现你用的是 Drupal ( 或许你是个 soho 分子,你并不希望客户知道这个被你说的天花乱坠的网站是用开源 CMS 开发的 ) ,就不妨试试这个叫 RootCandy 的主题吧 :)

Drupal 优秀模块列表

2009/07/03 •

这里用来记录下 Drupal 的 Module 列表,发现了好用的模块的话会加上来 :)

Drupal .htaccess rewrite 规则分析

2009/06/24 •

Drupal 默认通过 apache 的 mod_rewrite 来实现 Clean URLs 功能,大家可以打开根目录下 .htaccess 看到关于 mod_rewrite 的规则,下面我们来分析一下 Drupal 的 rewrite 规则:

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
...

关于用 Drupal 重建 Blog

2009/06/19 •

这个想法不是这几天才有,当我接触到 Drupal Module 开发的那一天开始,我就被这个好东西深深吸引,而以前辛辛苦苦写框架写控制器写模型做出来的东西,都可以用 Drupal 和它的第三方 Module 来很简单的实现,因此现在主要问题不是出现在功能实现上,而是如何把内容更好的表现出来。尽管现在对 Theme 的开发还不是很熟练,要按照 Drupal Template 的机制来实现当前的主题对我来说还有相当难度,但是我想这个 Blog 是个很好的练习机会。

深入 Drupal 引导流程 (3) - session_set_save_handler

2009/05/26 •

接下来是 Drupal 的会话阶段,Drupal 是采用 PHP 内置的会话机制,但是它重载了 PHP 内置的会话处理器 (PHP 内建处理是把会话保存为文件方式的),把会话数据保存在数据库内。

case DRUPAL_BOOTSTRAP_SESSION:
  require_once variable_get('session_inc', './includes/session.inc');
  session_set_save_handler('sess_open', 'sess_close', 'sess_read', 'sess_write', 'sess_destroy_sid', 'sess_gc');
  session_start();
  break;

...

深入 Drupal 引导流程 (2)

2009/05/20 •

这段时间一直在研究 Drupal 的源代码,哈哈,少时间来更新 Blog,今天我们再续 Drupal 的引导流程

case DRUPAL_BOOTSTRAP_EARLY_PAGE_CACHE:
  // Allow specifying special cache handlers in settings.php, like
  // using memcached or files for storing cache information.
  require_once variable_get('cache_inc', './includes/cache.inc');
  // If the page_cache_fastpath is set to TRUE in settings.php and
  // page_cache_fastpath (implemented in the special implementation of
  // cache.inc) printed the page and indicated this with a returned TRUE
  // then we are done.
  if (variable_get('page_cache_fastpath', FALSE) && page_cache_fastpath()) {
    exit;
  }
  break;

早期页面缓存阶段...

深入 Drupal 引导流程 (1)

2009/05/11 •

对于每个请求,Drupal 通过一系列的引导指令阶段来引导它自己。这些阶段在 bootstrap.inc 中定义

/**
* First bootstrap phase: initialize configuration.
*/
define('DRUPAL_BOOTSTRAP_CONFIGURATION', 0);
...

Drupal 生成缩略图功能

2009/04/25 •

提到 Drupal 生成缩略图,或者你第一次时间想到的会是 Image Module,但本文说的是并不是一些第三方的工具包。其实,尽管说 Drupal 内核的图片处理能力不算强,但对于生成缩略图的小功能还是应付有余,大家可以看看 Drupal 图片处理核心文件 includes/image.inc的说明。

Drupal 内置的缩略图方法有 4 种:resize, scale, crop, scale & crop,总有一款适合你 :)

...

Drupal 外部身份验证模组开发

2009/04/22 •

最近公司的项目是使用 Drupal 为基础的二次开发,估计最近几个月都以这个方向为主,作为 Drupal 的新手,现在也只能一边埋头看文档一边写些 Example 了。上头给了一个小需求,是把 Drupal 的登录模块修改成可以使用自己的验证方式和默认 Druapl 验证方式的切换。

Google 出来的结果很多都是 for Drupal 5.x 的,大家要注意啦, Drupal 6.x 和 5.x 的 HOOK 函数和参数表有很大的差别,所以建议大家多看看 Drupal API手册。后来绕了一大圈发现 Drupal 6.x 的默认模组 (modules) 里面,有一个叫 OpenId 的模组可以实现这个功能。当然,我们的外部身份验证需求通常不唯一的,比如可能是 Discuz! 论坛或者你当前站点的身份验证,制定一个外部身份验证模组正是我们今天的题目解决的问题。

...

Google Analytics

最近一个月访问数:349

Ads