自定義導入

自定義導入

相關: #2134 提高 Example.php 論壇導入程序的可讀性(內聯文檔和代碼格式)

您可以自定義包含在/bbpress/includes/admin/converters/Example.php 中的 example.php 以設置從任何 MySQL 資料庫導入。

一個很好的參考是查看包含的轉換器 bbPress1.phpphpBB.phpSimplePress5.php 並比較資料庫表和欄位映射,因為這應該會給您一些很好的提示。

以下是逐步完成自定義包含的 Example.php 轉換器的示例的工作,該示例取自支持論壇請求,以幫助製作 Mingle 論壇轉換器@robin-w 的另一篇關於使用自定義導入器將 Snitz 論壇從 Microsoft Access 轉換為 MySQL 資料庫的精彩帖子也可以在這裡閱讀

  1. 您需要的第一步是找到要從中導入的當前 SQL 資料庫的資料庫架構,這可以在現有軟體的文檔中,或者您可以使用 phpMyAdmin 找到它,現在我將鏈接到這是來自原始帖子的這裡
  2. 我們還需要確定將在 「導入論壇」 用戶界面中使用的資料庫前綴

現有論壇是否共享相同的目標 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

  1. 在同一文件夾中複製 Example.php 並將其命名為 Mingle.php(這裡的文件名區分大小寫)
  2. 打開您最喜歡的文本編輯器(記事本、 Text Pad 、 Notepad++、 Sublime Text 等)並開始編輯您新創建的 Mingle.php 文件
      • 通過進行以下更改為轉換器指定唯一名稱:
        第 4 行從:* Implementation of Example converter. 第 4 行到:
        * Implementation of Mingle Forums converter.
        第 06 行來自:
        class Example_Converter extends BBP_Converter_Base

        第 06 行至:(
        class Mingle extends BBP_Converter_Base

        確保上述內容與文件名的第一部分匹配,因為它區分大小寫)

從論壇部分和第一個資料庫表和欄位映射 「論壇 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',

  1. 現在我們對 Example.php 中的每個現有資料庫映射重複此操作
  2. 連接特定欄位值的表…
  3. 標籤 – 如果源論壇不使用話題標籤,您可以從轉換器中刪除此部分,如果它確實編輯了 「來自」 值。
  4. 用戶…
  5. 遷移 BBCode 、笑臉和自定義 HTML……
  6. 下一步…

上次修改 2021.12.25

報告拼寫錯誤

以下文本將發送給我們的編輯: