目前分類:Drupal (18)

瀏覽方式: 標題列表 簡短摘要

目前我在 Drupal 上愛用的編輯器是 TinyMCE,最近碰到了一些由使用者貼上的文章會造成版面被破壞的問題。

我是使用 Wysiwyg 配合 TinyMCE 來載入,所以可以只改 Wysiwyg 模組裡面的檔案,來達到控制 TinyMCE 貼上的動作。

我用的 Wysiwyg 版本是 6.x-2.2,TinyMCE 的版本是 3.3.9.3

要改的檔案是:wysiwyg/editors/js/tinymce-3.js

在 init: function(ed, url) {...} 這個函數裡面新增以下程式碼:

HACGIS 發表在 痞客邦 留言(0) 人氣()

i18n 模組對 Drupal 的各類翻譯方式幾乎都能進行翻譯的支援,雖然有些方式比較麻煩,不過還算堪用~

Translation table 模組可以幫忙一半種類的翻譯(分類、內容類型、選單),其他的部份則是需要用搜尋的方式進行翻譯,而且一次只能翻譯一句,比較不方便。

其中最麻煩的是 CCK 的翻譯,翻完之後不會立即生效,必須要跑一下 update 才會生效(對,你沒看錯,就是那個升級系統跟模組用的 update)。

簡單來說,CCK 的翻譯流程如下:

  1. Refresh Text Group(這裡最好全選,如果在翻譯時沒看到更新的字串,就再 Refresh 一次)
  2. 搜尋 CCK 字串做翻譯,一次一個字串
  3. Run Update
  4. Refresh Text Group

HACGIS 發表在 痞客邦 留言(2) 人氣()

我是籌備委員之一,這是 Drupal Taiwan 成立以來第一個 DrupalCamp,活動議程目前正在排定。

今年已知應該會發行的 Drupal 中文書籍有 3 本,而新的 Drupal 7 更對優使性大大增強,個人估計這兩年會是 Drupal 在台灣發展的成長期起點。

想了解 Drupal 的一切嗎?快來報名吧~

報名網站:http://registrano.com/events/drupalcamp

活動網站:http://camp.drupaltaiwan.org/

HACGIS 發表在 痞客邦 留言(0) 人氣()

Views 2.x 要改變排序方式的方式跟 1.x 差不多,最大的差異是設定上要繫結 views_handler 的物件,處理上比較麻煩。

底下假設目前排序方式是依據 "Post date" desc,而我們想要在傳遞任意的一個參數,改變其排序順序為根據 "type" asc, "Post date" desc,即插入一個 "type" asc 條件在原先的 "Post date" desc 之前。

  1. 插入一個 Global:Null 的 Argument
  2. Validator options 中的 Validator 設定為 PHP Code
  3. PHP validate code 中填入:
    $sort = views_get_handler('node', 'type', 'sort');
    $options = array(
      'order' => 'ASC',
      'id' => 'type',
      'table'=> 'node',
      'field'=>'type',
      'relationship'=>'none',
    );
    
    array_unshift($view->sort, $sort);
    $sort->init($view, $options);
    
    return true;
    

  4. 按下 Update 按鈕
  5. 之後便可在 Live Preview 檢視結果~

views_get_hander 的三個參數為:

  1. 表格名稱
  2. 欄位名稱
  3. handler 種類:sort, field, argument, filter, relationship

$options 的內容,可以建立一個你想要的排序條件,然後 dpm($view->sort) 來觀察~


HACGIS 發表在 痞客邦 留言(0) 人氣()

有時候不寫下來真的會忘記~

當 Content Taxonomy 配合 Hierarchical Select 時,原本會自動帶入討論分類作為預設值的行為卻不見了。

我試過在 form_alter 跟 #pre_render 等地方去設定 Hierarchical Select 的 #default_value 卻無效~

後來在該Content Taxonomy 的 CCK 欄位的預設值填入:

return array(

HACGIS 發表在 痞客邦 留言(0) 人氣()

上個禮拜幫客戶的 Drupal 網站做升級,一切狀況良好,不過這兩天客戶說,訪客發表的回應無法顯示。


剛剛回到家後做了幾個測試,發現狀況很有趣:的確如客戶所說,訪客發表的回應在文章中無法顯示,但是最新回應區塊卻有顯示。


本來以為是文章權限的問題,檢查了半天,也重設權限了,問題還是一直存在。

HACGIS 發表在 痞客邦 留言(4) 人氣()

昨天跟客戶定期 meeting,有談到目前一個案子的畫面上的小調整。


由於要修改到 CSS 檔案,所以我把虛擬主機上的整個目錄打包複製下來、資料庫用 phpMyAdmin 匯出,配合空的 PAPM 重建後,卻發現每次進入首頁卻變成下載畫面。


嘗試了幾個方式都還是一樣,最後終於讓我重建成功。

HACGIS 發表在 痞客邦 留言(0) 人氣()

起源是我想要做一個像討論區板塊的 View,會顯示最上層的討論區,並在每個討論區下面列出該討論區的討論板。


方法很簡單,需要兩個模組:



HACGIS 發表在 痞客邦 留言(0) 人氣()

我一直認為,中文化是推廣軟體系統最重要的一步。


Drupal 是我非常喜歡的一套開源內容管理系統,最近因為自己出來作 SOHO 接案子的關係,時間比以前在公司上班時充裕許多,所以我可以一邊作案子,一邊作 Drupal 模組的翻譯。


最近我把相關作翻譯的模組包在一起,並在 Drupal Taiwan 那邊發了文章,希望能推廣翻譯工作。

HACGIS 發表在 痞客邦 留言(1) 人氣()

在 Drupal 裡面有許多的所見即所得編輯器,比如說: TinyMCE 和 FCKEditor 是兩個比較為大家熟知的。


不過在設定上,有些只允許本文輸入的狀況,常常需要為不同的 class 或是 path 設定例外條件,以免把所有的 TEXTAREA 都變成所見即所得的編輯畫面。


WYSIWYG API 就比較聰明,它可以根據輸入格式(Input Format )來設定不同的編輯器,這樣就無須設定例外條件了。

HACGIS 發表在 痞客邦 留言(0) 人氣()

先說好,這個方法只適用在主要版號相同的情況(例如:5.0 -> 5.1) ,並不適用在主要版號不同的狀況(例如:5.x -> 6.x)。



  1. 備份檔案與資料庫。
  2. 下載新版的 Drupal 主程式。

HACGIS 發表在 痞客邦 留言(0) 人氣()

由於 Localizer 沒辦法對 frontpage 做個別指定,而且我需要的只是把屬於各國語言不同的資料撈出來,畫面的結構不變。
因此,我在 Views 中設定 frontpage,並在 Argument Handling Code 中輸入:




HACGIS 發表在 痞客邦 留言(0) 人氣()

目前做的這個案子,需要把舊的文章匯入到新的系統中,匯入是沒什麼問題的,文章數目沒少,可是有些文章就是有幾個欄位匯不進來。
研究之後發現,是因為文章本文的欄位 (一般來說是 Body) 的內容引起的問題,實際上因為內容很長,我也無法判斷問題出在哪?

只記得為了避免雙引號跟換行字元,我在匯入之前已經先處理裡過了:我用 OpenOffice.org 來置換字元,因為他支援正規表達式的搜尋與取代,我把雙引號換成單引號、換行字元換成 <br />。

HACGIS 發表在 痞客邦 留言(0) 人氣()

Node Import 模組是個非常好用的模組,可以把各種類型的 Node 資料先用打好,存成 csv 檔然後匯入。
不過對於自設的 CCK 欄位有個缺憾,就是在匯入之前必須先把 widget 的型態,由 option (select list / checkbox / radio) 改成 text,這樣才能匯入,實在是不太方便。
我修改了一點程式,讓它可以不用轉換 widget 的型態也能匯入,不過有個限制,目前修改的方式,只支援 Allowed values list 為下列形式:
value1
value2

HACGIS 發表在 痞客邦 留言(0) 人氣()

目前首上有一個案子,要作一些統計的處理,其中有一向是關於日期欄位的。
我用 Drupal 的 Views 模組搭配 Date 模組來作,於 Argument 指定該日期欄位,這樣就可以顯示出我要的結果。
不過 Date 模組中有個小問題,那就是在生成 SQL 命令時,會產生錯誤,其錯誤的理由是,日期欄位的名稱被設定成 range ,而剛好在 MySQL 中 range 是保留字,必須用 `range` 才能使用該名稱。
所以我修改了 date_views.inc 中的 _date_views_argument_range_handler 函數

HACGIS 發表在 痞客邦 留言(0) 人氣()

這兩天一直在修改版型,改的差不多的時候,想看一下在IE底下會不會有東西跑掉,一切過去發現 Nice Menu 跑位了,而且還跑得很奇怪。
因為我不希望用絕對定位的方式去鎖位置,而相對定位卻會跑位,實在很傷腦筋,花了半天嘗試錯誤,終於被我改出來了~
解決方法是在 style.css 中加入底下的樣式:

.block-nice_menus {

HACGIS 發表在 痞客邦 留言(0) 人氣()

最近接了母公司的兩個網站要做,開了兩次會之後總算動工了,目前正在一步步用 Drupal 把功能需求做出來。
其中有一項是要有個像 ASUS 切換語言顯示的下拉式選單,下拉式選單的部份可以用 Nice Menu 這個模組完成,語言切換則交給 Localizer 模組來負責,可是問題是 Localizer 只提供區塊,沒有提供選單~
後來我在 Customizing the ui locale switching block 找到一段程式碼,拿那個來改造。
完成品在這:

HACGIS 發表在 痞客邦 留言(1) 人氣()

趁著春假,幫我的姨丈的診所網站升級一下系統(Drupal)
升級的過程就照著UPGRADE.txt一步步做就行了,沒什麼困難的~
麻煩的是localizer沒辦法直接抓到i18n的結構,後來只好手動修正,還好我表弟夠懶,沒翻譯幾張網頁。
大體上半天時間就結束了。
目前localizer還有一些小問題,不過還不會構成使用者的困擾,我現在是底下這兩個版本混著用

HACGIS 發表在 痞客邦 留言(0) 人氣()