<?php
/*
 * e107 website system
 *
 * Copyright (C) 2008-2009 e107 Inc (e107.org)
 * Released under the terms and conditions of the
 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
 *
 *
 *
 * $Source: /cvs_backup/e107_0.8/e107_plugins/import/PHPFusion_import_class.php,v $
 * $Revision$
 * $Date$
 * $Author$
 */

// Each import file has an identifier which must be the same for:
//		a) This file name - add '_class.php' to get the file name
//		b) The array index of certain variables
// Array element key defines the function prefix and the class name; value is displayed in drop-down selection box

require_once(__DIR__.'/../import_classes.php');

class PHPFusion_import extends base_import_class
{
	
	public $title		= 'PHP Fusion';
	public $description	= 'Based on v9';
	public $supported	=  array('users', 'userclass');
	public $mprefix		= 'fusion_';
	
  // Set up a query for the specified task.
  // Returns TRUE on success. FALSE on error
	function setupQuery($task, $blank_user=FALSE)
	{
	    if ($this->ourDB == NULL) return FALSE;
	    switch ($task)
		{
		  case 'users' :
		    $result = $this->ourDB->gen("SELECT * FROM {$this->DBPrefix}users");
			if ($result === FALSE) return FALSE;
			break;


		 case 'userclass' :
		    $result = $this->ourDB->gen("SELECT * FROM {$this->DBPrefix}user_groups");
			if ($result === FALSE) return FALSE;
			break;


		  default :
		    return FALSE;
		}
		$this->copyUserInfo = !$blank_user;
		$this->currentTask = $task;
		return TRUE;
	}


  //------------------------------------
  //	Internal functions below here
  //------------------------------------
  
  // Copy data read from the DB into the record to be returned.
	  function copyUserData(&$target, &$source)
	  {
	    if($source['user_algo'] === 'sha256')
		{
			$hashType = '$5$';
		}
		else
		{
		    $hashType = '';
		}

		if ($this->copyUserInfo) $target['user_id'] = $source['user_id'];
		$target['user_name'] = $source['user_name'];
		$target['user_loginname'] = $source['user_name'];
		$target['user_password'] = $source['user_password'];
		$target['user_email'] = $source['user_email'];
		$target['user_hideemail'] = $source['user_hide_email'];
	    $target['user_image'] = $source['user_avatar'];
		$target['user_signature'] = $source['user_sig'];
		$target['user_forums'] = $source['user_posts'];
		$target['user_join'] = $source['user_joined'];
		$target['user_lastvisit'] = $source['user_lastvisit'];
		$target['user_location'] = $source['user_location'];
		$target['user_birthday'] = $source['user_birthdate'];
		$target['user_aim'] = $source['user_aim'];
		$target['user_icq'] = $source['user_icq'];
		$target['user_msn'] = $source['user_msn'];
		$target['user_yahoo'] = $source['user_yahoo'];
		$target['user_homepage'] = $source['user_web'];
		$target['user_timezone'] = $source['user_offset'];		// guess - may need conversion
		$target['user_ip'] = $source['user_ip'];
	//	$target['user_'] = $source[''];
	//	$target['user_'] = $source[''];

	//	$target['user_ban'] = ($source['user_status'] ? 2 : 0);					// Guess



		//return $target;

		$this->debug($source,$target);
	  }





		/**
	 * Align source data to e107 User Table
	 * @param $target array - default e107 target values for e107_user table.
	 * @param $source array - WordPress table data
	 */
	function copyUserClassData(&$target, &$source)
	{

		$target['userclass_id']             = $source['group_id'];
		$target['userclass_name']           = $source['group_name'];
		$target['userclass_description']    = $source['group_description'];
		$target['userclass_editclass']      = e_UC_ADMIN;
		$target['userclass_parent']         = 0;
		$target['userclass_accum']          = '';
		$target['userclass_visibility']     = e_UC_ADMIN;
		$target['userclass_type']           = '';
		$target['userclass_icon']           = '';
		$target['userclass_perms']          = '';

	//	return $target;

		$this->debug($source,$target);

	}





	/**
	 * Align source data with e107 News Table
	 * @param $target array - default e107 target values for e107_news table.
	 * @param $source array - other cms table data
	 */
	function copyNewsData(&$target, &$source)
	{

		$target['news_id']				    = $source['']; // leave empty to auto-increment.
		$target['news_title']				= $source[''];
		$target['news_sef']					= $source[''];
		$target['news_body']				= $source['']; // wrap in [html] tags if required.
		$target['news_extended']			= $source['']; // wrap in [html] tags if required.
		$target['news_meta_keywords']		= $source[''];
		$target['news_meta_description']	= $source[''];
		$target['news_datestamp']			= $source['datestamp'];
		$target['news_author']				= $source[''];
		$target['news_category']			= $source[''];
		$target['news_allow_comments']		= $source[''];
		$target['news_start']				= $source[''];
		$target['news_end']					= $source[''];
		$target['news_class']				= $source[''];
		$target['news_render_type']			= $source[''];
		$target['news_comment_total']		= $source[''];
		$target['news_summary']				= $source[''];
		$target['news_thumbnail']			= $source[''];
		$target['news_sticky']				= $source[''];

		return $target;  // comment out to debug

	//	$this->renderDebug($source,$target);


	}


	/**
	 * Align source data with e107 News Table
	 * @param $target array - default e107 target values for e107_news table.
	 * @param $source array - other cms table data
	 */
	function copyNewsCategoryData(&$target, &$source)
	{
		$target['category_id']                  = $source[''];
		$target['category_name']                = $source[''];
		$target['category_sef']                 = $source[''];
		$target['category_meta_description']    = $source[''];
		$target['category_meta_keywords']       = $source[''];
		$target['category_manager']			    = $source[''];
		$target['category_icon']                = $source[''];
		$target['category_order']               = $source[''];

		return $target;  // comment out to debug

	}



	/**
	 * Align source data to e107 Page Table
	 * @param $target array - default e107 target values for e107_page table.
	 * @param $source array - other cms table data
	 */
	function copyPageData(&$target, &$source)
	{


		$target['page_id']				    = $source[''];
		$target['page_title']			    = $source[''];
		$target['page_sef']				    = $source[''];
		$target['page_text']			    = $source[''];
		$target['page_metakeys']		    = $source[''];
		$target['page_metadscr']		    = $source[''];
		$target['page_datestamp']		    = $source[''];
		$target['page_author']			    = $source[''];
		$target['page_category']		    = $source[''];
		$target['page_comment_flag']	    = $source[''];
		$target['page_password']		    = $source[''];
		$target['page_class']	            = $source[''];

		return $target;  // comment out to debug

	}




 	/**
	 * $target - e107_forum table
	 * $source - other cms
	 */
	function copyForumData(&$target, &$source)
	{

		$target['forum_id'] 				= $source[''];
		$target['forum_name'] 				= $source[''];
		$target['forum_description'] 		= $source[''];
		$target['forum_parent']				= $source[''];
		$target['forum_sub']				= $source[''];
		$target['forum_datestamp']			= $source[''];
		$target['forum_moderators']			= $source[''];

		$target['forum_threads'] 			= $source[''];
		$target['forum_replies']			= $source[''];
		$target['forum_lastpost_user']		= $source[''];
		$target['forum_lastpost_user_anon']	= $source[''];
		$target['forum_lastpost_info']		= $source[''];
		$target['forum_class']				= $source[''];
		$target['forum_order']				= $source[''];
		$target['forum_postclass']	        = $source[''];
		$target['forum_threadclass']	    = $source[''];
		$target['forum_options']	        = $source[''];
		$target['forum_sef']                = $source[''];

		return $target;


	}


	/**
	 * $target - e107 forum_threads
	 * $source - other cms
	 */
	function copyForumThreadData(&$target, &$source)
	{

		$target['thread_id'] 				= $source[''];
		$target['thread_name'] 				= $source[''];
		$target['thread_forum_id'] 			= $source[''];
		$target['thread_views'] 			= $source[''];
		$target['thread_active'] 			= $source[''];
		$target['thread_lastpost'] 			= $source[''];
		$target['thread_sticky'] 			= $source[''];
		$target['thread_datestamp'] 		= $source[''];
		$target['thread_user'] 				= $source[''];
		$target['thread_user_anon'] 		= $source[''];
		$target['thread_lastuser'] 			= $source[''];
		$target['thread_lastuser_anon'] 	= $source[''];
		$target['thread_total_replies'] 	= $source[''];
		$target['thread_options'] 			= $source[''];

		return $target;

	}


	/**
	 * $target - e107_forum_post table
	 * $source - other cms
	 */
	function copyForumPostData(&$target, &$source)
	{

		$target['post_id'] 					= $source[''];
		$target['post_entry'] 				= $source[''];
		$target['post_thread'] 				= $source[''];
		$target['post_forum'] 				= $source[''];
		$target['post_status'] 				= $source[''];
		$target['post_datestamp'] 			= $source[''];
		$target['post_user'] 				= $source[''];
		$target['post_edit_datestamp'] 		= $source[''];
		$target['post_edit_user'] 			= $source[''];
		$target['post_ip'] 					= $source[''];
		$target['post_user_anon'] 			= $source[''];
		$target['post_attachments'] 		= $source[''];
		$target['post_options'] 			= $source[''];


		return $target;

		$this->debug($source,$target);

	}

	/**
	 * Align source data to e107 Links Table
	 * @param $target array - default e107 target values for e107_links table.
	 * @param $source array - WordPress table data
	 */
	function copyLinksData(&$target, &$source)
	{

		/* e107 Link Targets.
		0 => LCLAN_20, // 0 = same window
		1 => LCLAN_23, // new window
		4 => LCLAN_24, // 4 = miniwindow  600x400
		5 => LINKLAN_1 // 5 = miniwindow  800x600
		*/

		$target['link_id']			    = $source[''];	  // leave blank to auto-increment
		$target['link_name']			= $source[''];
		$target['link_url']				= $source[''];
		$target['link_description']		= $source['']; // wrap with [html] [/html] if necessary.
		$target['link_button']			= $source['']; // image file.
		$target['link_category']		= $source['']; // integer
		$target['link_order']			= $source['']; // integer
		$target['link_parent']			= $source['']; // integer
		$target['link_open']			= $source['']; // link_target
		$target['link_class']			= $source[''];
		$target['link_sefurl']			= $source[''];




		return $target;  // comment out to debug

		$this->debug($source,$target);


	}








}


