Posts tagged ‘drupal’

drupal 6 to wordpress 2.7

又把部落格從 drupal 搬回到 wordpress ,因為實在太忙,沒有空玩drupal的強大功能,也沒空維持它。而單純以書寫來說,wordpress是方便多了。不過,搬回來實在很麻煩…這是drupal故意的嗎?呵呵

必須要使用SQL的指令修改資料,所以必需要有phpMyadmin、相關權限與一定程度的語法知識(不必太厲害,會操作即可)。

參考:http://socialcmsbuzz.com/convert-import-a-drupal-6-based-website-to-wordpress-v27-20052009/

step1. 首先,你要先安裝一個新的wordpress系統,SQL資料庫名為「tempdb」(如果不是這個名字,以下指令請自行修改)

step2 然後將 drupal 6 的 SQL database 備份出來,再輸入到 wordpress 的資料庫「tempdb」中。

step3 依照以下語法,一一修改

(1) 輸入前清除表格

TRUNCATE TABLE tempdb.wp_comments;
TRUNCATE TABLE tempdb.wp_links;
TRUNCATE TABLE tempdb.wp_postmeta;
TRUNCATE TABLE tempdb.wp_posts;
TRUNCATE TABLE tempdb.wp_term_relationships;
TRUNCATE TABLE tempdb.wp_term_taxonomy;
TRUNCATE TABLE tempdb.wp_terms;

(2) 匯入分類與標籤

INSERT INTO tempdb.wp_terms (term_id, `name`, slug, term_group)
SELECT
d.tid, d.name, REPLACE(LOWER(d.name), ' ', '-'), 0
FROM tempdb.term_data d
INNER JOIN tempdb.term_hierarchy h
USING(tid)
;

INSERT INTO tempdb.wp_term_taxonomy (term_id, taxonomy, description, parent)
SELECT
d.tid `term_id`,
'category' `taxonomy`,
d.description `description`,
h.parent `parent`
FROM tempdb.term_data d
INNER JOIN tempdb.term_hierarchy h
USING(tid)
;

(3) 匯入文章內容

INSERT INTO
    tempdb.wp_posts (id, post_date, post_content, post_title,
    post_excerpt, post_name, post_modified)
SELECT DISTINCT
    n.nid, FROM_UNIXTIME(created), body, n.title,
    teaser,
    REPLACE(REPLACE(REPLACE(REPLACE(LOWER(n.title),' ', '-'),'.', '-'),',', '-'),'+', '-'),
    FROM_UNIXTIME(changed)
FROM tempdb.node n, tempdb.node_revisions r
WHERE n.vid = r.vid

(4) 連結文章與分類

INSERT INTO tempdb.wp_term_relationships (object_id, term_taxonomy_id)
SELECT nid, tid FROM tempdb.term_node;

Category Count Updating

UPDATE wp_term_taxonomy tt
SET `count` = (
 SELECT COUNT(tr.object_id)
 FROM wp_term_relationships tr
 WHERE tr.term_taxonomy_id = tt.term_taxonomy_id
);

(5) 隱藏未驗證回應

INSERT INTO tempdb.wp_comments (comment_post_ID, comment_date, comment_content, comment_parent, comment_author, comment_author_email, comment_author_url, comment_approved)
SELECT nid, FROM_UNIXTIME(timestamp), comment, thread, name, mail, homepage, status FROM tempdb.comments;

(6) 更新文章回應數

UPDATE `wp_posts` SET `comment_count` = (SELECT COUNT(`comment_post_id`) FROM `wp_comments` WHERE `wp_posts`.`id` = `wp_comments`.`comment_post_id`);

(7) 修正斷行符號

UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '', '');

(8) 修正圖檔位置

UPDATE tempdb.wp_posts SET post_content = REPLACE(post_content, '"/sites/default/files/',

step4 完成資料庫修正後,可把 tempdb 中 druapl 的資料表刪除,並把 wordpress 的資料表移到真正的 wordpress 資料庫中。

step5 中文部分顯示若有問題,記得到 wp-config.php 中加入以二行。

define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_general_ci');

用wordpress import轉換到drupal

之前的轉換是用wp2drupal這個module,但使用上非常的麻煩,而且有版本的問題。今天靈機一動,直接查詢有沒有用WXR匯入的方式,結果竟然有!!根據Migrate a WordPress site to Drupal這篇文章,可以用WordPress Import這個module完成。

一試之下,真是讓我非常鬱卒,又簡單又快,沒有任何問題。啟用模組後,內容管理會出現「wordpress import」,匯入下載好的WXR檔,決定要匯到哪個作者名下(如果不選,則不會匯入),文章、類別、標籤通通都進來了…

drupal 5 無法登入問題

升級到drupal 5之後,發現無法登入使用者,輸入帳號密碼後仍然保持在原頁面,既沒有錯誤訊息、也不是已登入。到drupal.org查詢後,發現問題出在user.module上,修改方式如下:

打開user.module找到957行,應該是

sess_regenerate();
return ‘user/’. $user->uid;

在兩行前面加上//,就變成

//sess_regenerate();
//return ‘user/’. $user->uid;

這樣就可以了。據說是4.7時舊有的問題,不知道為什麼一直沒修好。

參考文章

drupal taxonomy 相關模組

drupal的taxonomy既是分類對是標籤,運用存乎一心。我試了好幾個不同的module,發現…

taxonomy multi editor 在大量新增term時最好用,但若vocabulary都選freetag在表格中會讀不出來,因為freetag是自行輸入。

而 Taxonomy Manager用AJAX的方式調整term的順序和從屬,也相當方便,但網路慢時很辛苦。

Taxonomy Batch Operation的優點在於可以大量刪除,還有新增terms時可一次加入,除此之外沒啥用。

另外,看了說明的文章後,我也改變對vocabulary的想法。它的設計是偏類型,而非同類中的大小項。

drupal multisite 多站點設置

可能因為太簡單了,所以幾乎沒有相關的文章…這裡所討論的是如何用同一組程式,建立有不同資料庫不同domain的獨立網站。

作法如下,

  1. 先準備好MySQL Database和Domain Name(或subdomain)
  2. 到/sites/建立一個新的資料夾以domain.com或subdomain.com為名,將/sites/default/setting.php拷貝到此資料夾中
  3. 修改setting.php

    $db_url = 'mysql://db-username:db-password@localhost/new-db-name';

  4. 將domain name指向drupal的根目錄即可(這裡可分為parked domain和symlink兩種作法)

參考閱讀:

WordPress to Drupal 轉換

從wordpress到drupal有以下幾個方式:

1. Steve的轉換程式
非常方便,但我測試的結果對中文是不行的…

2. WP2Drupal Module for Drupal 4.x
目前安全的方式是先轉換到4.x,再升級成5.x

3. WP2Drupal Module Patched for Drupal 5.x by ktiedt
不確定是否一定可用,但我測試結果是OK。不過,在設定轉入文字編碼時按ipang.net的說法須設成latin1,否則將會亂碼(我第一次轉換便是如此)。

Bibliography

Drupal 的 bibliography module 可以產生一個線上文獻管理系統,

  • 可從Endnote/Bitex/RIS格式輸入輸出
  • 可以不同文獻格式輸出(original, CSE, APA and IEEE)
  • 可將<bib>citation key</bib>標籤在文章中插入citation ((需要在輸入格式(filters)中勾選設定,就為了這個搞了2小時…))(可與footnote module共同使用 ((安裝footnote後,biblio的設定中會出現是否合併的選項)))
  • 可將 keywords 與 taxonomy 結合 ((在biblio的設定中決定,預設為否))
  • 可以 Year/Type/Author排序,並以 keyword 過濾

作者說近期將會與 view module 整合,頗適合有整理研究文獻需要的人,可將drupal作為一個線上書寫的平台。除此之外,這裡還有其他學術相關module的討論,包括 conference、journal等。