Skip to:
Content
Pages
Categories
Search
Top
Bottom

Importing from WBB4

  • @sammmmy

    Participant

    Hello,

    i want to import my WBB4 board to bbPress an with a custom importer.
    The “basic” importer is from inspirationally and i wanted to translate it to WBB4
    Now i have a error on line 311 and 312…
    (but i think there will be more 😀 )

    I really hope that someone understands my problem and could help.

    
    <?php
    
    /**
     * Implementation of Wotlab Burning Board v3.x Forum Converter.
     *
     * @since bbPress (r5104)
     * @link Codex Docs http://codex.bbpress.org/import-forums/burningboard
     */
    class wbb3 extends BBP_Converter_Base {
    
    	/**
    	 * Main Constructor
    	 *
    	 * @uses wbb3::setup_globals()
    	 */
    	function __construct() {
    		parent::__construct();
    		$this->setup_globals();
    	}
    
    	/**
    	 * Sets up the field mappings
    	 */
    	public function setup_globals() {
    
    		/** Forum Section *****************************************************/
    
    		// Forum id (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_board',
    			'from_fieldname'  => 'boardID',
    			'to_type'         => 'forum',
    			'to_fieldname'    => '_bbp_forum_id'
    		);
    
    		// Forum parent id (If no parent, then 0. Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_board',
    			'from_fieldname'  => 'parentID',
    			'to_type'         => 'forum',
    			'to_fieldname'    => '_bbp_forum_parent_id'
    		);
    
    		// Forum topic count (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename' => 'wbb1_board',
    			'from_fieldname' => 'threads',
    			'to_type'        => 'forum',
    			'to_fieldname'   => '_bbp_topic_count'
    		);
    
    		// Forum reply count (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename' => 'wbb1_board',
    			'from_fieldname' => 'posts',
    			'to_type'        => 'forum',
    			'to_fieldname'   => '_bbp_reply_count'
    		);
    
    		// Forum total topic count (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename' => 'wbb1_board',
    			'from_fieldname' => 'threads',
    			'to_type'        => 'forum',
    			'to_fieldname'   => '_bbp_total_topic_count'
    		);
    
    		// Forum total reply count (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename' => 'wbb1_board',
    			'from_fieldname' => 'posts',
    			'to_type'        => 'forum',
    			'to_fieldname'   => '_bbp_total_reply_count'
    		);
    
    		// Forum title.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_board',
    			'from_fieldname'  => 'title',
    			'to_type'         => 'forum',
    			'to_fieldname'    => 'post_title'
    		);
    
    		// Forum slug (Clean name to avoid confilcts)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_board',
    			'from_fieldname'  => 'title',
    			'to_type'         => 'forum',
    			'to_fieldname'    => 'post_name',
    			'callback_method' => 'callback_slug'
    		);
    
    		// Forum description.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_board',
    			'from_fieldname'  => 'description',
    			'to_type'         => 'forum',
    			'to_fieldname'    => 'post_content',
    			'callback_method' => 'callback_null'
    		);
    
    		// Forum display order (Starts from 1)
    		$this->field_map[] = array(
    			'from_tablename' => 'wbb1_board',
    			'from_fieldname' => 'position',
    			'to_type'        => 'forum',
    			'to_fieldname'   => 'menu_order'
    		);
    
    		// Forum type (Forum = 0 or Category = 1, Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_board',
    			'from_fieldname'  => 'boardType',
    			'to_type'         => 'forum',
    			'to_fieldname'    => '_bbp_forum_type',
    			'callback_method' => 'callback_forum_type'
    		);
    
    		// Forum status (0=Open or 1=Closed, Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_board',
    			'from_fieldname'  => 'isClosed',
    			'to_type'         => 'forum',
    			'to_fieldname'    => '_bbp_status',
    			'callback_method' => 'callback_forum_status'
    		);
    
    		// Forum dates.
    		$this->field_map[] = array(
    			'to_type'      => 'forum',
    			'to_fieldname' => 'post_date',
    			'default'      => date('Y-m-d H:i:s')
    		);
    		$this->field_map[] = array(
    			'to_type'      => 'forum',
    			'to_fieldname' => 'post_date_gmt',
    			'default'      => date('Y-m-d H:i:s')
    		);
    		$this->field_map[] = array(
    			'to_type'      => 'forum',
    			'to_fieldname' => 'post_modified',
    			'default'      => date('Y-m-d H:i:s')
    		);
    		$this->field_map[] = array(
    			'to_type'      => 'forum',
    			'to_fieldname' => 'post_modified_gmt',
    			'default'      => date('Y-m-d H:i:s')
    		);
    
    		/** Topic Section *****************************************************/
    
    		// Topic id (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'threadID',
    			'to_type'         => 'topic',
    			'to_fieldname'    => '_bbp_topic_id'
    		);
    
    		// Topic language (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'languageID',
    			'to_type'         => 'topic',
    			'to_fieldname'    => '_bbp_language',
    			'callback_method' => 'callback_topic_language'
    		);
    
    		// Topic reply count (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'replies',
    			'to_type'         => 'topic',
    			'to_fieldname'    => '_bbp_reply_count',
    			'callback_method' => 'callback_topic_reply_count'
    		);
    
    		// Topic total reply count (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'replies',
    			'to_type'         => 'topic',
    			'to_fieldname'    => '_bbp_total_reply_count',
    			'callback_method' => 'callback_topic_reply_count'
    		);
    
    		// Topic parent forum id (If no parent, then 0. Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'boardID',
    			'to_type'         => 'topic',
    			'to_fieldname'    => '_bbp_forum_id',
    			'callback_method' => 'callback_forumid'
    		);
    
    		// Topic author.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'userID',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_author',
    			'callback_method' => 'callback_userid'
    		);
    
    		// Topic author ip (Stored in postmeta)
    		// Note: We join the 'wbb1_1_post' table because 'wbb1_1_thread' does not include author ip.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'ipAddress',
    			'join_tablename'  => 'wbb1_thread',
    			'join_type'       => 'INNER',
    			'join_expression' => 'USING (threadID) WHERE wbb1_post.postID = wbb1_thread.firstPostID',
    			'to_type'         => 'topic',
    			'to_fieldname'    => '_bbp_author_ip'
    		);
    
    		// Topic content.
    		// Note: We join the 'wbb1_1_post' table because 'wbb1_thread' does not include topic content.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'message',
    			'join_tablename'  => 'wbb1_thread',
    			'join_type'       => 'INNER',
    			'join_expression' => 'USING (threadID) WHERE wbb1_post.postID = wbb1_thread.firstPostID',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_content',
    			'callback_method' => 'callback_html'
    		);
    
    		// Topic title.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'topic',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_title'
    		);
    
    		// Topic slug (Clean name to avoid conflicts)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'topic',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_name',
    			'callback_method' => 'callback_slug'
    		);
    
    		// Topic parent forum id (If no parent, then 0)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'boardID',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_parent',
    			'callback_method' => 'callback_forumid'
    		);
    
    		// Topic dates.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'time',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_date',
    			'callback_method' => 'callback_datetime'
    		);
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'time',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_date_gmt',
    			'callback_method' => 'callback_datetime'
    		);
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'time',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_modified',
    			'callback_method' => 'callback_datetime'
    		);
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'time',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_modified_gmt',
    			'callback_method' => 'callback_datetime'
    		);
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'lastPostTime',
    			'to_type'         => 'topic',
    			'to_fieldname'    => '_bbp_last_active_time',
    			'callback_method' => 'callback_datetime'
    		);
    
    		// Topic status (Open or Closed)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'isClosed',
    			'to_type'         => 'topic',
    			'to_fieldname'    => 'post_status',
    			'callback_method' => 'callback_topic_status'
    		);
    
    		/** Tags Section ******************************************************/
    
    		/**
    		 * WBB v3.x Forums do not support topic tags out of the box. WBB4?!
    		 */
    
    		/** Reply Section *****************************************************/
    
    		// Reply id (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'postID',
    			'to_type'         => 'reply',
    			'to_fieldname'    => '_bbp_post_id'
    		);
    
    		// Reply parent forum id (If no parent, then 0. Stored in postmeta)
    		// Note: We join the 'wbb1_1_thread' table because 'wbb1_1_post' does not include forum id.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_thread',
    			'from_fieldname'  => 'boardID',
    			'join_tablename'  => 'wbb1_post',
    			'join_type'       => 'INNER',
    			'join_expression' => 'USING (threadID) WHERE wbb1_post.postID != wbb1_thread.firstPostID',
    			'to_type'         => 'reply',
    			'to_fieldname'    => '_bbp_forum_id',
    			'callback_method' => 'callback_forumid'
    		);
    
    		// Reply parent topic id (If no parent, then 0. Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'threadID',
    			'to_type'         => 'reply',
    			'to_fieldname'    => '_bbp_topic_id',
    			'callback_method' => 'callback_topicid'
    		);
    
    		// Reply author ip (Stored in postmeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'ipAddress',
    			'to_type'         => 'reply',
    			'to_fieldname'    => '_bbp_author_ip'
    		);
    
    		// Reply author.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'userID',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_author',
    			'callback_method' => 'callback_userid'
    		);
    
    		// Reply title.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'subject',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_title'
    		);
    
    		// Reply slug (Clean name to avoid conflicts)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'subject',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_name',
    			'callback_method' => 'callback_slug'
    		);
    
    		// Reply content.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'message',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_content',
    			'callback_method' => 'callback_html'
    		);
    
    		// Reply parent topic id (If no parent, then 0)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'threadID',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_parent',
    			'callback_method' => 'callback_topicid'
    		);
    
    		// Reply dates.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'time',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_date',
    			'callback_method' => 'callback_datetime'
    		);
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'time',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_date_gmt',
    			'callback_method' => 'callback_datetime'
    		);
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'lastEditTime',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_modified',
    			'callback_method' => 'callback_datetime'
    		);
    		$this->field_map[] = array(
    			'from_tablename'  => 'wbb1_post',
    			'from_fieldname'  => 'lastEditTime',
    			'to_type'         => 'reply',
    			'to_fieldname'    => 'post_modified_gmt',
    			'callback_method' => 'callback_datetime'
    		);
    
    		/** User Section ******************************************************/
    
    		// Store old User id (Stored in usermeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wcf1_user',
    			'from_fieldname'  => 'userID',
    			'to_type'         => 'user',
    			'to_fieldname'    => '_bbp_user_id'
    		);
    
    		// Store old User password (Stored in usermeta serialized with salt)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wcf1_user',
    			'from_fieldname'  => 'password',
    			'to_type'         => 'user',
    			'to_fieldname'    => '_bbp_password',
    			'callback_method' => 'callback_savepass'
    		);
    
    		// User password verify class (Stored in usermeta for verifying password)
    		$this->field_map[] = array(
    			'to_type'         => 'user',
    			'to_fieldname'    => '_bbp_class',
    			'default'         => 'WBB4'
    		);
    
    		// User name.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wcf1_user',
    			'from_fieldname'  => 'username',
    			'to_type'         => 'user',
    			'to_fieldname'    => 'user_login'
    		);
    
    		// User nice name.
    		$this->field_map[] = array(
    			'from_tablename' => 'wcf1_user',
    			'from_fieldname' => 'username',
    			'to_type'        => 'user',
    			'to_fieldname'   => 'user_nicename'
    		);
    
    		// User email.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wcf1_user',
    			'from_fieldname'  => 'email',
    			'to_type'         => 'user',
    			'to_fieldname'    => 'user_email'
    		);
    
    		// User registered.
    		$this->field_map[] = array(
    			'from_tablename'  => 'wcf1_user',
    			'from_fieldname'  => 'registrationDate',
    			'to_type'         => 'user',
    			'to_fieldname'    => 'user_registered',
    			'callback_method' => 'callback_datetime'
    		);
    
    		// Store Signature (Stored in usermeta)
    		$this->field_map[] = array(
    			'from_tablename'  => 'wcf1_user',
    			'from_fieldname'  => 'signature',
    			'to_fieldname'    => '_bbp_wbb3_user_sig',
    			'to_type'         => 'user',
    			'callback_method' => 'callback_html'
    		);
    	}
    
    	/**
    	 * This method allows us to indicates what is or is not converted for each
    	 * converter.
    	 */
    	public function info() {
    		return '';
    	}
    
    	/**
    	 * This method is to save the salt and password together.  That
    	 * way when we authenticate it we can get it out of the database
    	 * as one value. Array values are auto sanitized by WordPress.
    	 */
    	//public function callback_savepass( $field, $row ) {
    		//$pass_array = array( 'hash' => $field, 'salt' => $row['salt'] );
    		//return $pass_array;
    	}
    
    	/**
    	 * This method is to take the pass out of the database and compare
    	 * to a pass the user has typed in.
    	 */
    
    	//public function authenticate_pass( $password, $serialized_pass ) {
    	//	$pass_array = unserialize( $serialized_pass );
    		//return ( $pass_array['hash'] == md5( md5( $password ). $pass_array['salt'] ) );
    	}
    
    	/**
    	 * Translate the forum type from WBB v3.x numeric's to WordPress's strings.
    	 *
    	 * @param int $status WBBx v3.x numeric forum type
    	 * @return string WordPress safe
    	 */
    	public function callback_forum_type( $status = 0 ) {
    		switch ( $status ) {
    			case 1 :
    				$status = 'category';
    				break;
    
    			case 0  :
    			default :
    				$status = 'forum';
    				break;
    		}
    		return $status;
    	}
    
    	/**
    	 * Translate the forum status from WBB v3.x numeric's to WordPress's strings.
    	 *
    	 * @param int $status WBB v3.x numeric forum status
    	 * @return string WordPress safe
    	 */
    	public function callback_forum_status( $status = 0 ) {
    		switch ( $status ) {
    			case 1 :
    				$status = 'closed';
    				break;
    
    			case 0  :
    			default :
    				$status = 'open';
    				break;
    		}
    		return $status;
    	}
    
    	/**
    	 * Translate the post status from WBB v3.x numeric's to WordPress's strings.
    	 *
    	 * @param int $status WBB v3.x numeric forum status
    	 * @return string WordPress safe
    	 *
    	 */
    	public function callback_topic_status( $status = 0 ) {
    		switch ( $status ) {
    			case 1 :
    				$status = 'closed';
    				break;
    
    			case 0  :
    			default :
    				$status = 'publish';
    				break;
    		}
    		return $status;
    	}
    
    	/**
    	 * Verify the topic reply count.
    	 *
    	 * @param int $count WBB v3.x reply count
    	 * @return string WordPress safe
    	 */
    	public function callback_topic_reply_count( $count = 1 ) {
    		$count = absint( (int) $count - 1 );
    		return $count;
    	}
    
    	/**
    	 * Set languages, add more languages if needed
    	 *
    	 * @param int $language WBB v3.x numeric forum status
    	 * @return string WordPress safe
    	 */
    	public function callback_topic_language( $language = 4 ) {
    		switch ( $language ) {
    			case 4 :
    				$language = 'German';
    				break;
    
    			case 5  :
    			default :
    				$language = 'English';
    				break;
    		}
    		return $language;
    	}
    
    	/**
    	* This callback processes any custom BBCodes with parser.php
    	*/
    	#protected function callback_html( $field ) {
    
    	#	require_once( bbpress()->admin->admin_dir . 'parser.php' );
    	#	$bbcode = BBCode::getInstance();
    	#	$bbcode->enable_smileys = false;
    	#	$bbcode->smiley_regex   = false;
    	#	return html_entity_decode( $bbcode->Parse( $field ) );
    	#}
    }
    
Viewing 8 replies - 26 through 33 (of 33 total)
  • @netweb

    Keymaster

    @sammmmy

    Can you extract some sample data for me from your database so I can get this working for you?

    Ideally if you made a copy of the forum, topic, reply, and user tables with just a few rows of data left in each table? (Of course without any sensitive data by editing or removing it of course)

    More specifically, the forum table would have one or two forums, the topics table would have a couple of topics that have a parentID of one of the forums you include, and then a couple of replies that have parentID’s of topic or topics you’ve included.

    @sammmmy

    Participant

    sorry i can not post the links to my files.
    the posts are not displayed…

    @sammmmy

    Participant

    Here is some sample data from my database.
    Is that all you need?

    wbb1_board.pdf

    wbb1_post

    wbb1_thread.pdf

    @netweb

    Keymaster

    @sammmmy Fixed, the posts were caught by Akismet for having more than 2 links, I’ve fixed one and removed the other duplicates.

    This is excellent, I’ll take a look later, a couple of things if you could clarify please:

    In the posts table, subject is the topic title?
    In the posts table, message is either the topic or the reply content?
    In the threads table, topic, what is this? Is this also the topic title? And if it is also the topic title does this match the subject field from the posts table exactly?

    @sammmmy

    Participant

    In the posts table, subject is a seperately post title and totally unnecessary…
    In the posts table, message is the reply content.
    In the threads table, topic Is this is the thread title.

    That’s a little messed up…

    @sammmmy

    Participant

    how is it going?
    can i do more then that?

    @robkk

    Moderator

    @sammmmy

    You can always try hire a developer to do the import for you. It has been 3 months since you first made the topic, and the team has been very busy squashing bugs lately.

    @sammmmy

    Participant

    To hire a developer was harder than i thought…

    I have to wait until someone can help me and I hope this helps all others who want to change.

Viewing 8 replies - 26 through 33 (of 33 total)
  • You must be logged in to reply to this topic.
Skip to toolbar