mamp & yii

如果 yii 要搭配 mac上的 MAMP 使用,請把connectionString 從

mysql:host=127.0.0.1;dbname=playaround

改成

mysql:dbname=playaround;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock

即可

yii extensions

剛用了一些 extension 就發現一些小問題..

我用了 yii-user & images

yii-users

在 modules/user/views/admin/_menu.php 裡面的

if ( count($list)) {

要改成

if (isset($list)&&  count($list)) {

然後 images的設定那邊錯了

<pre>'import'=>array(
    ...
    'application.helpers.*',
    ...
),

應該是

<pre>'import'=>array(
    ...
    'application.extensions.helpers.*',
    ...
),

因為是解到 base/extensions/helpers/ 底下阿!!

drupal 5 & php 5.3

他們感情不好。

今天在公司用了 ubuntu 10.04 感覺相當不錯,剛剛就把學校的某台伺服器升級一下,結果亂噴….  。主要是因為 drupal 5.x 尚未跟 php 5.3 完全相容,所以有些地方要改一下。

首先要把錯誤回報等級改一下

includes/common.inc line  (line 592)

if ($errno & (E_ALL ^ E_NOTICE)) {

to

if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) {

再來是 theme的警告

in includes/theme.inc (line 171)

$output = call_user_func_array($functions[$function], $args);

to

$output = call_user_func_array($functions[$function], &$args);

最後, 如果看這種類似的錯誤 warning: syntax error, unexpected BOOL_TRUE in modules/node/node.info on line 3 in /var/www/creative/includes/module.inc on line 195. 表示 node.info 裡面的描述有用到 on 這個字。 所以去把那個字串用  " “包起來即可。

大概就這樣了,升級前要先看一下 >"<

cakephp 在 user_dir中

剛剛把cakephp 1.3 rc3 裝到自己的家目錄卻怎麼也動不了…一直出現找不到網頁…。一直改 userdir_conf 也沒有用….。
後來才發現真是太白痴了,在.htaccess中加上

RewriteBase /~username/cake_dir

就可以了…
哇勒…

drupal_install_template

之前提過之後架站都會使用drupal 來做,不過每開一個新project 都得重新下載一次module,很煩。通常的作法是自己管理一份drupal, 不過嘛…. 這樣還是要處理model 更新的問題。 所以我就用ruby寫了一個自動下載安裝的腳本,然後又取了個爛名字  =.=  drupal_install_template 。 其實這些問題都很簡單,可是似乎都沒官方解法@@ 像是rails 也是到2.3 才有template的功能。

*nix 平台適用(mac也可,因為它混用了wget & tar & mv 指令) 使用方法很簡單,到 list.yml 裡面依次把 model name填上,然後執行它就可以了  😛

這腳本授權為WTFPL ,意思就是隨便你拿去幹啥XD

其實還有一些想法,像是自動補上中文語系檔,或是model可以指定版本….etc 。不過隨著時間慢慢來補上吧  😛

[drupal] insert view and Viewfield

insert view  和 viewfield 是drupal 中兩個可以把別的view 插入到當前node 的模組。不過insert view 有點問題,他會自己cache 一份 render 後的結果,這會導致當view 裡頭的node 更新後,他會很慢很慢才更新(學弟改了node的資料後,半小時後還沒更新o_O!!!)。

這應該算是地雷 😛  所以有類似需求的話,可以改用 viewfield,他一樣可以提供類似的功能,不過這樣就只能插入一個view了。

[drupal] 解決views_tabs 排序不正常的問題

views_tabs 是一個drupal 的擴充套件。它可以讓view中的元素以tab的方式呈現出來。不過它有一個問題:

總是不願意依照view中的設定來好好排序。 怎麼勸都勸不聽。

這幾天追了一下,發現主要的原因應該是它所使用到的jstool tab模組中的:

function tabs_process_tabset($element)

裡面又對元素呼叫了一次 uasort($element, “_element_sort") ; (77行附近)

而drupal中的_element_sort函式主要會根據每個$element的成員"#weight" (如果沒設定就取用#title成員)來排序。

views_tabs 在產生元素陣列的時候沒把這個成員給放進去(不過這要算誰的錯呢?)。所以解決方法很簡單,就是我們自己加進去。

底下是最簡單的方式:

在 function theme_views_tabs_display($view, $nodes, $type, $teasers = FALSE, $links = TRUE)函式中的

foreach ($nodes as $node) {

改成

$i =0;
foreach ($nodes as $node) {

111 $tabset[$title] = array(
112 '#type' => 'tabpage',
113 '#content' => $content,
114 '#title' => $title,
115 );

改成

111 $tabset[$title] = array(
112 '#type' => 'tabpage',
113 '#content' => $content,
114 '#title' => $title,
115 '#weight' =>$index,
116 );
117 $index++;

即可。

又一款php framework-Orchid

這套看起來不錯,集成式的架構的確擁有很多優勢存在,因為大部份的人都懶嘛  ….。

作者的網站上列出來目前集成的特色有:

1. Caching Engine with support of Memcache, MySQL and SQLite as Storage
2. MVC
3. RoR like Layout and segregated template components.
4. Partial Caching in Template
5. Very efficient object loading and dispatching
6. DAL for MySQL (Both MySQL and MySQLi), SQLite, PostgreSQL and MSSQL
7. Support for PDO
8. Builtin Unit Testing Library where you can write unit tests inside the controller without extra pain.
9. Internationalization using Language files
10. Session Manager (Regular and DB Based)
11. Bundled Google Map Library
12. Bundled Google Chart Library
13. Bundled JSON Library
14. Bundled Prototype, jQuery, Scriptaculous and SWFObject Scripts with on-demand gzip support
15. On demand gzipping for javascripts
16. Active Record
17. Excellent Benchmarking and Profiling support which you can use to profile your application
18. CSS based Button Manager (What is this???? — checkout)
19. AJAX Library

根據官網上最新的文章,還預計要整合:

20.blueprint CSS (css 的framework 還不錯用)
21.open ID

實在是不錯。

建立自己的digg-like網站

以往要建立自己的digg-like網站,可以使用pligg 這套軟體,不過現在也可以使用drupal來架設囉!!

使用方式請參考 drigg-code,範例網站請參考:drigg。以我對drupal的了解,用起來應該不會跟pligg一樣流暢,不過好處是可以跟其他drupal的模組做整合,很容易擴充出新的功能出來。不過這個介面看起來….恩 大概還有一小段路要走 XD

DokuWiki

Dokuwiki真的算是最好用的wiki了(比較對象有mediawiki and pmwiki)。我想最主要的好處在:

  1. 可以從前端進行設定 (外掛啟動與否、權限控制…etc 這部份mediawiki沒有辦法) ,無須修改.php檔案
  2. 不使用資料庫(對於中小型的站台來說,使用資料庫對他們來說是個負擔,備份又麻煩。)
  3. 速度快(mediawiki的速度喔…..)。

缺點:

  1. 外掛不多 (不過他幾乎基本的都有了,不太需要額外裝些什麼。外掛數量這方面,pmwiki and mediawiki勝出)
  2. 佈景主題不多(ㄟ..好像跟上一個一樣耶XD)
  3. 開發較慢(跟開發者人數有關吧…不過很夠用了)。

最近因為開始了一些小計畫,所以開始用這套,用起來感覺很不錯。如果你的站台屬於中小型,那麼Dokuwiki就很夠用了。用到mediawiki,結果可能會跟我研究所的wiki一樣,用不到10%的功能,卻要付出很多代價。

弄的差不多了,過幾天可以再回過頭來寫DBN了,每次寫出來的東西都跟腦海裡長得挺不一樣的XD。

ref:http://www.robbin.cc/dokuwiki/doku.php?id=syntax:syntax

update:

感謝 網站製作學習誌的站長jaceju 大人在迴響中的整理,這份整理的比較好 😛

dokuwiki的好處有:

1. 安裝容易 (其實根本就是解壓縮以後就開始用了) 。
2. 支援程式語言變色功能。
3. 內建有輸出 RSS 的功能。
4. 頁面能用 namespace 來建立階層關係。
5. 能外掛 Blog 及 Tag 等 plugins 。