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++;

即可。