遊記 Drupal Cacmp TaiPei 2011

今年很榮幸能參加 2011 年的 Drupal camp Taipei
還被邀請介紹了一下我做的一些網站和背後的一些技術
雖然時間上比較倉猝
但大家看投影片也應該可以起碼了解一些概念
https://docs.google.com/present/edit?id=0AawD1m0i97PYZDRxcmh6cl8yMTVkcDY...
出發之前還怕我的普通話太爛, 還好大家都好像聽得懂我講的東西 (希望不是客氣說話)

另外當然就是可以親身見到很多平常在網路上交談的朋友
都看頭像實在是想像不到你們的樣子啊
還有好些朋友都說看過我的部落格
和很多朋友交換名片, 認識新的 Drupaler
遺憾我記名字的能力很差, 經常都認得樣子但名字則說不出來
但真的很開心!
期待下一年的 Camp!

這 Camp 有數個第一次:
第一次到美麗華摩天輪
第一次 open discussion
第一次 sprint
第一次坐貓空
第一次騎機車!!! (感謝 jimmy)

p.s. 多謝 Norman 很熱情的送了我從花蓮帶來的麻薯

我的flickr http://www.flickr.com/photos/joetsui/sets/72157627052995273/

最後下面這麼師的男生到底是誰啊

Drupal Camp Taipei 2011 presentation

Here I pre-release my presentation notes, please come to my presentation at 13:00 at track2!! http://goo.gl/9LdZm #drupalCampTaipei2011

Drupal 的 Javascript 變數陣列

Drupal 是一個CMS, 它除了有很多 PHP 的函數 可以調用之外,
還有在頁面的 javascript 加了一些常用的變數, 函數
你可以在 firebug 或者 chrome 的 developer console內,
Drupal.* 找到它們

例如 PHP 函數<?php base_path()?> 可以在 Drupal.settings.basePath 內找到
所以 AJAX 的要求路徑便可以隨網站路徑自動改變了

Boost cache module health and tips

Boost cache module 是我常用的提升效能的模組
好處是搭建簡單, 幾乎能使用 Drupal 的環境都可以使用
也不需要 shell 的權根
但效能上沒有 vanish 的好

關於 boost 的效能, 最重要的是正確的 cron job
正確的cron 可以確保 boost 產生的檔案和資料夾在過期的情況之下清走
否則 cache 資料夾內的檔案數量很快會直線增加
反倒拖慢了網站

cron 的運行密度起碼需要和 boost 的 expire time 一致
甚至更短
例如本站的 cache 是 1小時 expire, cron 是15分鐘

其餘比較重要的是
Clear all empty folders from cache
和時常留意 "Clear Boost expire data: X page" 的數字
我也有見過 250K PV/m 的網站仍可以使用 boost 的

而cache 的 expire time 便看你的網站的流量
以這個站一天二三百的 PV
一小時平均十頁左右的話, 只是 frontpage 或 Drupal教學 的主頁用 boost 才有意義
其餘只會令第一個瀏覽者載入減慢
但所產生的cache 被其他使用者使用的機率甚低
這些設定都是需要計算一下的

form 也可以使用template (*.tpl.php) (Drupal6.x 版)

舊文:
http://www.joetsuihk.com/form_templates
的做法不太正統, 應該要改成: (用 user-login form 為例):

theme 的 template.php 之內:

<?php
//theme name + form id
MYTHEME_user_login() {
  return array(
   
'user_login' => array(
     
'arguments' => array('form' => NULL),
     
'template' => 'user-login',
    ),
  );
}
?>

清緩存,
便可以在你的 theme 之內建立一個 user-login.tpl.php 直接使用
<?php drupal_render($form);?>

<?php drupal_render($form['name']);?>

等等

Pages

Google