Drupal 7.x

Upgrade to Drupal 7!

-
Free tags: 

Spend 6 hours:
package live site, clone to local development environment
disable local contributed modules
turn on maintenance mode
upgrade local core to Drupal 7.x version
Convert custom theme to D7
upgrade contributed modules
configure contributed modules
use 7.x version of cck, use content migrate module to migrate fields to 7.x core
package local
backup live site
transfer local to live
DONE!

升級到 Drupal 7!

-
Free tags: 

花了6個小時的時間:
打包 live site,在 local 重製相同環境
關掉 local contributed modules
maintanence mode
在 local 一步步將 Drupal core 升級到 7.x 版本
修改客製 theme 至相容於 Drupal 7
contributed modules 升級到 7.x 版本
contributed modules 的新設定
使用 cck 7.x 版本的 content migrate 將 cck fields migrate 到 7.x 的 core
打包 local
再備份 live
轉移 local 到 live
大功告成!

對於大家來說應該是完全沒有分別的
我在轉移到 live site 大功告成的時候都迷了一下
「咦?完成了?外觀上完全一樣麻」
直到打開管理頁面看到 seven 這一個 theme 才完全確認真的完成了

下一步應該是打開多語言選項
將中文為主的 blog 改為雙語
擴大 SEO 和讀者層
2013 GoGoGo!

建立內容後跳轉到指定 URL

-
Free tags: 

我突然在需要使用的時候發現我竟然沒有寫下:

Rules 沒有我想要的欄位可以 compare

Rules 原生的 node 欄位只有很少的幾個
例如 created, updated 之類的
但我想比較的是 cck 的欄位呀
一個 checkbox 有沒有選到
一個 node reference 是否為空
一個字符欄位有否包含某些字等等

其實只要先加一個 'entity has field' 的 condition
選你想要比較的欄位
再到 data compare 便會出現你需要的欄位了

又或者更直接的方法是加一個 content is type
選擇你需要的 content type, 但如此的話便必需要是單一 content type 了

話說回來,要在 rules 和 hooks 之間選擇才是真正的困難
相關討論: http://www.drupaler.co.uk/blog/rules-versus-hooks-or-abstraction-shock

Drupal7.x javascript function after ajax - ajax invoke

初探 Drupal 中使用 ajax 之後
使想在 AJAX complete 之後執行一些自定義的 javascript

例如ajax form submit 之後 slideUp form
submit 之後需要修改某些內容

使用的是 ajax callback 的command, 加上 ajax_command_invoke
Form array:

Drupal7 表單內載入 css, js, attach

Edit: 2012-11-07: external css

Drupal7 中以下的代碼是不會達到你想要的效果的

Drupal7 AJAX 提交表單 submit form

Drupal7 原生已經提供一大堆 AJAX 的 API 可以使用
令一些基本的 AJAX 工作變得很簡單,例如

Drupal7 Javascript, once()

-
Free tags: 

once() 是我碰到 ajax submit 的時候第一次使用到
它是一個已經內建到 Drupal 的一個 jQuery 插件
令一個 event 不會 bind 兩次

原意是一條連結觸發 ajax
我bind 了 click event 到增加一個 loading 的 gif
取代 (replaceWith) 的方式將一個 form 更換
因為 replaceWith 之後都會再一次執行 javascript
下一次解發連結便會有兩個 loading gif
可以使用 once() 解決:

Pages

Google