在icdsoft 使用 codeigniter 的clean url
在icdsoft中使用 clean url
http://example.com/index.php/abc -> http://example.com/abc
出現錯誤, return 404
clean url CI doc:
http://codeigniter.com/user_guide/general/urls.html
solved by Google, CI wiki:
http://codeigniter.com/wiki/Dreamhost_.htaccess/ (solution1)
RewriteEngine on
RewriteCond $1 !^(index\.php|public|user_guide|robots\.txt)
RewriteRule ^(.*)$ /index.php?/$1 [L]
Note the question mark after index.php
D6 regions, regions vs panels
有別於 Drupal 5 中在 template.php 定義region 的方式,
Drupal 6.x 的region 定義在 [theme].info 之內: (用Drupal 5.x 一篇的例子)
regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[bottom_left] = Bottom left
regions[bottom_center] = Bottom center
regions[bottom_right] = Bottom right
regions[] array 之內用underscore, 右面可以用 space 空格
$bottom_right, $bottom_left, $bottom_center 等的變數就會出現在page*.tpl.php 之內
你可以將它們放到自定的位置, div 之內
//page.tpl.php
<?php
if ( $bottom_left || $bottom_center || $bottom_right || $feed_icons ):
endif;
?>
到 admin->site building->blocks 就會看到有'bottom left' 等等的選項了
ref: http://drupal.org/node/171224
而region vs panels 都是做很相似的工作,
便是提供一個分割頁面的方法
我的經驗是, 像我這個block, 每一頁的頁底都需要三個分割
用region 比較好
而特定的頁面的分割, 則使用panels 比較方便
而且, 要記得, regions 的variable 只會在 page*.tpl.php 中出現
Drupal multi site single sign on
EDIT: 2010-04-11 settings.php 的位置
同一個domain 之下使用多個 Drupal multi site 的時候,
可以共用同一組的user 是很簡單了
但login 了一個site 之後, 登入的狀態卻不能夠一直在不同的subdomain 使用
但服用以下之後就可以了: (在你的 sites/[folder]/settings.php 內, 原本注釋了的)
<?php
//settings.php
$cookie_domain = '.example.com';
?>
implement hook_block()
hook_block() 是一個給 Drupal 提供block 的方法
假如你發覺自己在 add block 的時候用了 input method 使用了php
那你其實應該建立一個 module, 使用 hook_block()
原因: "module" vs "add block"
- php 的 syntax error 不會因為寫進了 DB 而做成修正的極大麻煩 vs 要直接修改 DB record
- File 方便 version control vs DB record 的 version control 和沒有做差無幾..
- customization 集中方便修改 vs 源碼分散
- File deployment vs DB deployment
所以, 不要懶了, 而且建立hook_block() 也很簡單
假設 module 名為 joe
<?php
function joe_block($op = 'list', $delta = 0, $edit = array()) {
//在 admin/building/block 時設定用
if ($op == 'list') {
//$blocks 為array, 即一個module 可以提供多個block
$blocks[0] = array('info' => t('Mymodule block #1 shows ...'),
'weight' => 0, 'status' => 1, 'region' => 'left');
//第二個block
$blocks[1] = array('info' => t('Mymodule block #2 describes ...'));
// $op為list 時返回 block[]
return $blocks;
}
//$op 為 view 則 真正輸出使用
else if ($op == 'view') {
switch($delta) {
//第一block, $delta 為 0
case 0:
$block = array('subject' => t('Title of block #1'),
//content 可以在另一個function 內定義
'content' => joe_display_block_1());
break;
//$delta == 1
case 1:
$block = array('subject' => t('Title of block #2'),
'content' => joe_display_block_2());
break;
}
return $block;
}
}
function joe_display_block_1() {
//直接貼原本在php content 內的代碼就可以了
return $return;
}
function joe_display_block_2() {
return $return;
}
?>
ref:
http://api.drupal.org/api/function/hook_block/6
建立一個新 module:
http://www.joetsuihk.com/module_development_introduction_moduleinfo
台灣的朋友的詢問:
http://drupaltaiwan.org/forum/20100205/4016#comment-13542
2010-03-15 Boost enabled
Boost 是一個將匿名(非登入用戶, anonymous visitor)從動態生成的PHP 頁面轉到靜態HTML 頁面的模組
這模組能大量減少匿名用戶的載入頁面時間
但登入的使用者就沒有幫助
它的工作原理是利用了匿名用戶所看到的頁面不含有個人化的 block/內容
在匿名用戶的頁面內容完全一玫的話
頁面便有可能只使用靜態的HTML
它的工作的流程從Drupal 初始化開始
先判定使用者的登入狀態
直到這裡, Boost 都沒有提升頁面效能
但一旦判定為匿名用戶, 用戶便會被.htaccess 轉發到預先製好的靜態HTML
達成效能的提升
一個很好用的模組, 特別是對於匿名用遊客訪問為主的網站
Boost is a module that drive anonymous visitor from dynamic PHP pages to boost generated static HTML through apache .htaccess settings
This module can help anonymous users page load speed very much,
while logged in user have no effect on it.
It used the nature that annoymous user do not have customized theme/blocks/content
so every visitor should see the same content,
can thus can serve the page through static HTML
The mechanism start from Drupal initialize,
first check if the user is logged in or not.
Up to this point, this module do not help in performance,
but once anonymous user got redirected to cached files by redirect and .htaccess file,
the page load time boosted
A very good module for sites with mainly anonymous users like joetsuihk.com