
各位常來的大德們應該有發現,阿舍在每一篇文章的上方都多加一個 Goolgle 的廣告和二個推文的貼紙 ( 沒辦法,點閱率幾乎是...零...所以...只好...調一下位置了 ),呵....呵,住巷內的都知道,這個是透過加入 CCK 欄位的方式就可做到了,不過,問題來了,舊文件的 CCK 欄位怎麼去更新呢 ?
阿舍有去爬一些文,也試用過 Action View 這個模組,但是都沒辦法滿足阿舍的需要,所以,阿舍只好自己一個人去研究資料庫結構,看能不能用 下 SQL 指令來解,啊! 皇天不負苦心人,終於有給它試出來哩^^。
開始之前,阿舍要先說一下,以下這個做法是非官方的,也是有危險的動作,阿舍是有練過的 ( 是有建置測試模擬的環境... ),所以要試之前,請大德們先備份自己的資料庫,不然阿舍只能請佛祖給您加持了.....
操作方式不難,說明如下:
1.請先記住要更新的 CCK 欄位名稱
在 「管理」>「內容類型」>「欄位」>「欄位名稱」可以查的到,阿舍的欄位名稱就是 field_gad。
2.開啟 PHPAdmin
3.在左邊那一排,點要處理的資料庫
4.在右邊的那一排 TAB 裡,點選第二個 TAB 的 SQL,會出現一個可輸入 SQL 指令的輸入框
5.輸入 SQL 指令來塞值,輸入下面的 SQL 指令後,按右下角的執行
以阿舍修改 Story 表單 ( 所以要修改的資料表是 content_type_story ) 的欄位 field_gad 為例,輸入如下 SQL 指令:
Update content_type_story set field_gad_value='要更新的值',field_gad_format = 3;
註.
field_gad_format 指的是 "輸入格式",就是表單上的 "輸入格式的那三個選項",阿舍存入的值是 HTML,所以設為 3 。
6.輸入 SQL 指令來清除快取,按右下角的執行後,會跳出確認對話框,請大德要真的確認一下哩 !
完成步驟 5 的更新後,快去開一份文件來看看.....,保證沒有更新....=_=!!,因為 Drupal 有快取 ( Cache) 的機制,所以這種由後端直接更新的變化,Drupal 應該是不會知道要去更新快取的,這時,就要手動清一下快取了,請輸入下面的 SQL 指令:
delete from cache_content;
7.去試試看,應該就會看到新加入的值了。
阿舍所使用的環境並沒安裝其他額外的 CCK 模組,是單純一點的,而且文件數沒有破百,因此不一定適用於各大德的環境,請各位大德酌量使用......。
後記. (2008/03/10)
還是會有幾篇的文章會沒有更新到,但是原因還沒有給它找到,再研究囉......。
- 瀏覽次數: 3008


發表新回應