Drupal 7 利用函數l()設定URL

目的要串成下列的URL,以便在view可以設定編輯的連結
http://drupal_test/drupal-7.26/?q=node/25/edit&destination=meeting-v01

一開始是簡單用下列的方式取得URL,但是實際連結後卻發現部份的字元變成亂碼
$linkurl= l(t('編輯'), 'node/'.$nid.'/edit&destination=meeting-v01') ;
print $linkurl ;

實際上的URL變為 node/25/edit%26destination%3Dmeeting-v01,
其實它並不是亂碼,只是在URL中傳遞這些特殊符號時要使用編碼。
編碼的格式為:%加字元的ASCII碼,即一個百分號%,
後面跟對應字元的ASCII(16進位)碼值。所以空格的編碼值是「%20」。
不過這樣的URL實際應用在Drupal中是無法正確連結的。

因此對於函數l(),必須加上一些參數,以呈現正確的URL,程式碼如下:
$linkurl = l(t('編輯'), 'node/'.$nid.'/edit',array(
        'query' =>  
            array(
              'destination' => 'meeting-v01'
            ),
        'html' => TRUE
  )  );
print $linkurl;

'query'的陣列表示要附在「&」 後面的變數,其格式為「變數名稱」=> 「值」,
由上可知'destination' => 'meeting-v01'指的是destination=meeting-v01,
可以設定多個變數,只要將變數設定在'query'的陣列之中就可以了。

'html'表示啟用html格式

這樣就可以得到正確的node/25/edit&destination=meeting-v01的連結


Oracle DB的listener.log清理