自定義導入相關: #2134 提高 Example.php 論壇導入程序的可讀性 (內聯文檔和代碼格式)
您可以自定義包含在/bbpress/includes/admin/converters/Example.php 中的 example.php 以設置從任何 MySQL 數據庫導入。
一個很好的參考是查看包含的轉換器 bbPress1.php 、 phpBB.php 和 SimplePress5.php 並比較數據庫表和字段映射,因為這應該會給您一些很好的提示。
以下是逐步完成自定義包含的 Example.php 轉換器的示例的工作,該示例取自支持論壇請求,以幫助製作 Mingle 論壇轉換器。 @robin-w 的另一篇關於使用自定義導入器將 Snitz 論壇從 Microsoft Access 轉換為 MySQL 數據庫的精彩帖子也可以在這裏閲讀。
- 您需要的第一步是找到要從中導入的當前 SQL 數據庫的數據庫架構,這可以在現有軟件的文檔中,或者您可以使用 phpMyAdmin 找到它,現在我將鏈接到這是來自原始帖子的這裏
- 我們還需要確定將在 「導入論壇」 用户界面中使用的數據庫前綴
現有論壇是否共享相同的目標 WordPress 數據庫,還是現有數據庫與目標 WordPress 數據庫完全分開?
在這個使用 Mingle 的例子中,它是一個 WordPress 插件,與 WordPress 共享相同的數據庫,並將以下表格添加到現有的 WordPress 數據庫中 (在這種情況下,WordPress 設置為使用 wp_ 作為數據庫前綴):
wp_forum_forums
wp_forum_groups
wp_forum_posts
wp_forum_threads
wp_forum_usergroup2user
wp_forum_usergroups
- 在同一文件夾中複製 Example.php 並將其命名為 Mingle.php(這裏的文件名區分大小寫)
- 打開您最喜歡的文本編輯器 (記事本、 Text Pad 、 Notepad++、 Sublime Text 等) 並開始編輯您新創建的 Mingle.php 文件
從論壇部分和第一個數據庫表和字段映射 「論壇 ID」 在 Example.php 第 18 行開始
-
-
18 // Forum id. Stored in postmeta.
19 $this->field_map[] = array(
20 'from_tablename' => 'forum', 'from_fieldname' => 'forumid',
21 'to_type' => 'forum', 'to_fieldname' => '_bbp_forum_id'
22 );
看到我們有一個 「from_tablename」 叫 「論壇」 和 「from_fieldname」 叫 「forumid」 這些是隻有兩個值,您將需要在大多數情況下的變化。'to_type' 'to_type'和'to_fieldname'值都是此數據存儲在 bbPress 中的位置,我們不需要更改其中任何一個。 - 如果我們將這些相同的值與 bbPress1.php 進行比較:
29 'from_tablename' => 'forums',
30 'from_fieldname' => 'forum_id',
- 與 phpBB.php 相比:18 'from_tablename' => 'forums',
19 'from_fieldname' => 'forum_id', - 與 SimplePress5.php 相比:
20 'from_tablename' => 'sfforums',
21 'from_fieldname' => 'forum_id',
- 如果我們查看 Mingle Forums 數據庫架構:
wp_forum_forums
id
name
parent_id
description
views
sort
- 計算得出的猜測將使我們將以下內容用於我們的第一個數據庫映射
'from_tablename' => 'forum_forums',
'from_fieldname' => 'id',
下一步在論壇部分,用於 Example.php Line#24 中的第二個數據庫映射 「論壇父 ID」
-
-
24 // Forum parent id. If no parent, than 0. Stored in postmeta.
25 $this->field_map[] = array(
26 'from_tablename' => 'forum', 'from_fieldname' => 'parentid',
27 'to_type' => 'forum', 'to_fieldname' => '_bbp_parent_id'
28 );
- 這次計算出的猜測將使我們將以下內容用於我們的第二個數據庫映射
'from_tablename' => 'forum_forums',
'from_fieldname' => 'parent_id',
- 現在我們對 Example.php 中的每個現有數據庫映射重複此操作
- 連接特定字段值的表...
- 標籤 – 如果源論壇不使用話題標籤,您可以從轉換器中刪除此部分,如果它確實編輯了 「來自」 值。
- 用户…
- 遷移 BBCode 、笑臉和自定義 HTML……
- 下一步…