修改首頁的template

你可以使用一個和其他頁面完全不同的首頁, 只要你能應用 template suggestion.

打開你的theme_developer module, 指一下首頁,
你便會發現frontpage 是有一個特別的suggestion: page-front.tpl.php

你只要在你的theme folder 內建立/複製一個page-front.tpl.php,
然後你便可以開始加特別的class 到body,
或者使用完全不同的region (front-left, front-mid-left, front-mid-right, front-right)
把首頁變作4欄以應付首頁大量資料的需求

p.s. 記得清空你的cache 以使用新增的page-front.tpl.php
p.p.s 你當然也可以使用panels 之類的模組完成相同的效果

原文: http://drupal.org/node/317461

加js, css file 到theme, Add a theme specific js/css to a page

如題, 你可以在 theme 的 .info file 用以下的方法

scripts[] = js/gallery.js

stylesheets[all][] = css/gallery.css

你可以加第三方的 js/css, 例如 jquery ui, fancybox 之類
如果你看到你的page.tpl.php 有<script type="text/javascript" src=""></script>你可能會考慮用以上的方法include 了

Note1: 路徑是相對到theme 的資料夾
Node2: 它們會被優化的, 如果你開啟了壓縮 js/css 檔案的話

As titled, if you want to add a js or css file only to a theme, you may:

scripts[] = js/gallery.js

stylesheets[all][] = css/gallery.css

This should contain mostly contain some 3rd party js/css libraries/frameworks.
if you find you put some <script type="text/javascript" src=""></script> in page.tpl.php, you better think again to put it like above.

Note1: the path they refered is CURRENT_THEME directory
Node2: They will got aggregated if you turn on compressing js/css files in "Performance" page

Actions, trigger, rules, workflow

這四個Drupal6 的module 互相有關連,功能又多, 做一個小小的整理

action 和 rules 是做同一件事:定義一些“行為”/“行動”
而rules 是進階版的 action
這些“行為” 例如顯示一個信息, 發一個email 等等,單獨存是沒有意義的, 它需要一個觸發器去觸發一個action/rule
這個觸發器就是 trigger module 了

觸發器的例子有:“在儲存一個node 之後”
那你就可以達成:“在儲存一個node 之後,發一個email到 admin@abc.com

以上的例子很簡單,不足以說明它們的強大,但這篇只是想給讀者一個概念
讀者們要先內化這概念, 下一個post 便可以講一下進階的用法

而 workflow 是一個處理流程的module, 本身也是一個巨大的觸發器
workflow 自己可以做到定時出版一類的功能,由draft 到review 到publish, 每一步都有一個trigger, 可以trigger send email 等等的rules
有機會的話也可以詳細講講

ref:
trigger 和 action 是 D6 內建的
Rules: http://drupal.org/project/rules
Workflow: http://drupal.org/project/workflow

在windows 上使用Drush

使用了一段時間了, 現在才有時間介紹一下drush
有如 admin_menu, 用過便忘不了
基於 *nix 的 drush 簡單易用, 但windows 上便有些限制, 最常用的 drush dl views 用不了..
hack (不用cygwin):

1.
下載Drush http://drupal.org/project/drush, 解壓到 /path/to/drush

2.
下載並安裝:
http://gnuwin32.sourceforge.net/packages/libarchive.htm
http://gnuwin32.sourceforge.net/packages/gzip.htm
http://gnuwin32.sourceforge.net/packages/wget.htm

再將 控制台 > 進階 > 環境變數
新增 / 修改 PATH: C:\Program Files\GnuWin32\bin;/path/to/drush

3.
cd /path/to/drupal
drush.bat dl views

完成!!

p.s. admin_menu 之外, 我還一定會裝 vertical_tabs, drush, devel

SVN merge

merge 是一件麻煩事. 當然, 用了branch 或者tag 才需要 merge.

當一個或者多個commit 需要同時應用到另一個branch, 你便需要merge. 通常你都會從trunk merge 到branch 的

一開始使用merge 可能會感到害怕, 但merge 和commit, update 一樣, 用多了使自然覺得很方便了. 而且, 不需要擔心merge 錯, 因為merge 的動作本身是不會提交到svn 的. merge 完了, 你確認了代碼, 功能都沒有問題之後, commit, 才會提交到svn.

在merge 的過程, 你要選擇你merge 的 revision number, 所以, svn 的 commit message 便很重要, 會是你決定用不用某一commit 的最重要依據.

merge 時, 你應該先switch 到被merge 的branch, 再選擇trunk 的revision, 例如, trunk revision 123 需要copy 到 branch, 便應該switch 到 branch, 再用merge

Pages

Google