array( 'controller' => 'import_main_ui', 'path' => null, 'ui' => 'import_admin_form_ui', 'uipath' => null ), 'cat' => array( 'controller' => 'import_cat_ui', 'path' => null, 'ui' => 'import_cat_form_ui', 'uipath' => null ) ); protected $adminMenu = array( 'main/list' => array('caption'=> LAN_LIST, 'perm' => '0'), // 'main/create' => array('caption'=> 'Create import', 'perm' => '0'), // 'cat/list' => array('caption'=> 'Categories', 'perm' => '0'), // 'cat/create' => array('caption'=> "Create Category", 'perm' => '0'), // 'main/prefs' => array('caption'=> LAN_PREFS, 'perm' => '0'), // 'main/custom' => array('caption'=> 'Custom Page', 'perm' => '0') ); protected $adminMenuAliases = array( 'main/edit' => 'main/list' ); protected $menuTitle = LAN_PLUGIN_IMPORT_NAME; } class import_main_ui extends e_admin_ui { protected $pluginTitle = LAN_PLUGIN_IMPORT_NAME; protected $pluginName = 'import'; protected $table = false; protected $providers = array(); // the different types of import. protected $deleteExisting = false; // delete content from existing table during import. protected $selectedTables = array(); // User selection of what tables to import. eg. news, pages etc. protected $importClass = null; // Definitions of available areas to import protected $importTables = array( 'users' => array('message' => LAN_CONVERT_25, 'classfile' => 'import_user_class.php', 'classname' => 'user_import'), 'news' => array('message' => LAN_CONVERT_28, 'classfile' => 'import_news_class.php', 'classname' => 'news_import'), 'page' => array('message' => "Pages", 'classfile' => 'import_page_class.php', 'classname' => 'page_import'), 'links' => array('message' => "Links", 'classfile' => 'import_links_class.php', 'classname' => 'links_import'), 'media' => array('message' => "Media", 'classfile' => 'import_media_class.php', 'classname' => 'media_import'), 'comments' => array('message'=> "Comments"), // 'forumdefs' => array('message' => LAN_CONVERT_26), // 'forumposts' => array('message' => LAN_CONVERT_48), // 'polls' => array('message' => LAN_CONVERT_27) ); // without any Order or Limit. function init() { $fl = e107::getFile(); $importClassList = $fl->get_files(e_PLUGIN.'import/providers', "^.+?_import_class\.php$", "standard", 1); foreach($importClassList as $file) { $tag = str_replace('_class.php','',$file['fname']); $key = str_replace("_import_class.php","",$file['fname']); $this->providers[$key] = $this->getMeta($tag); include_once($file['path'].$file['fname']); // This will set up the variables if(vartrue($_GET['type'])) { $this->importClass = $_GET['type']."_import"; } } } function getMeta($class_name) { if(class_exists($class_name)) { $obj = new $class_name; return array('title' => vartrue($obj->title), 'description' => vartrue($obj->description), 'supported' => vartrue($obj->supported)); } } // After selection - decide where to route things. function importPage() { // print_a($_POST); $this->deleteExisting = varset($_POST['import_delete_existing_data'],0); if($_POST['selectedTables']) { $this->selectedTables = $_POST['selectedTables']; } if(vartrue($_POST['runConversion'])) // default method. { $this->runConversion($_POST['import_source']); return; } $this->showImportOptions($_GET['type']); } function listPage() { $mes = e107::getMessage(); $frm = e107::getForm(); // $mes->addDebug(print_a($this->providers,true)); $text = "
".'DBLAN_10'." ".$frm->hidden('mode','main')." ".$frm->hidden('action','import')." "; foreach($this->importTables as $name) // 1 column for each of users, news, forum etc. { $text .= ""; } $text.=" "; for ($i=0; $i < count($this->importTables)-1; $i++) { $text .= ""; } $text .= ""; foreach ($this->providers as $k=>$info) { $title = $info['title']; $iconFile = e_PLUGIN."import/images/".str_replace("_import","",strtolower($k)).".png"; $icon = (file_exists($iconFile)) ? "" : ""; $text .= "\n"; foreach($this->importTables as $key=>$val) { $text .= "\n"; } $text .= " "; } $text .= "
".LAN_CONVERT_06."".$name['message']."".LAN_OPTIONS."
CSV ".ADMIN_TRUE_ICON." ".$frm->admin_button('import_type', 'csv', 'other',"Select")."
".$icon.$title."
".$info['description']."
".(in_array($key,$info['supported']) ? ADMIN_TRUE_ICON : " ").""; $text .= $frm->admin_button('type', $k, 'other',"Select"); // $text .= $frm->admin_button('import_type', $k, 'other',"Select"); $text .= "
".$frm->hidden('trigger_import',1)."
"; echo $mes->render().$text; // $ns->tablerender(LAN_PLUGIN_IMPORT_NAME, $mes->render().$text); } function runConversion($import_source) { $frm = e107::getForm(); $ns = e107::getRender(); $mes = e107::getMessage(); $abandon = TRUE; switch ($import_source) { case 'csv' : break; case 'db' : if($this->dbImport() == false) { $abandon = true; } break; case 'rss' : if($this->rssImport() == false) { $abandon = true; } break; } if ($msg) { $mes->add($msg, E_MESSAGE_INFO); // $ns -> tablerender(LAN_CONVERT_30, $msg); $msg = ''; } if ($abandon) { // unset($_POST['do_conversion']); $text = "
".$frm->admin_button('dummy_continue',LAN_CONTINUE, 'execute')."
"; $ns -> tablerender(LAN_CONVERT_30,$mes->render(). $text); } } function showImportOptions($type='csv') { global $csv_names, $e_userclass; $mode = $this->importClass; $frm = e107::getForm(); $ns = e107::getRender(); $mes = e107::getMessage(); if (class_exists($mode)) { $mes->addDebug("Class Available: ".$mode); $proObj = new $mode; if($proObj->init()===FALSE) { return; } } $message = "".LAN_CONVERT_05.""; $mes->add($message, E_MESSAGE_WARNING); $text = "
"; /* if($mode == "csv") { $text .= " "; } else */ $importType = $proObj->title; if(method_exists($proObj,"config")) // Config Found in Class - render options from it. { $ops = $proObj->config(); foreach($ops as $key=>$val) { $text .= "\n"; } if($proObj->sourceType) { $text .= "\n"; } } else // STANDARD db Setup { $text .= " "; } // if($mode != 'csv') { $text .= " "; } $text .= ""; if(varset($proObj->defaultClass) !== false) { $text .= " "; } $action = varset($proObj->action,'runConversion'); $text .= "
".LAN_CONVERT_07." \n
".LAN_CONVERT_36."
".LAN_CONVERT_17." ".LAN_CONVERT_18."
".$val['caption']." ".$val['html']; $text .= (vartrue($val['help'])) ? "
".$val['help']."
" : ""; $text .= "
$importType ".LAN_CONVERT_19."
$importType ".LAN_CONVERT_20."
$importType ".LAN_CONVERT_21."
$importType ".LAN_CONVERT_22."
$importType ".LAN_CONVERT_23." mprefix)."' maxlength='100' />
$importType ".LAN_CONVERT_24." "; $defCheck = (count($proObj->supported)==1) ? true : false; foreach ($this->importTables as $k => $v) { if(in_array($k, $proObj->supported)) // display only the options supported. { $text .= $frm->checkbox('selectedTables['.$k.']', $k, $defCheck)." ".$v['message']; //$text .= " ".$v['message']; $text .= "
"; } } $text .= "
".LAN_CONVERT_38." ".LAN_CONVERT_39."
".LAN_CONVERT_16." "; $text .= $e_userclass->vetted_tree('classes_select',array($e_userclass,'checkbox'), varset($_POST['classes_select']),'main,admin,classes,matchclass, no-excludes'); $text .= "
".$frm->admin_button($action,LAN_CONTINUE, 'execute'). $frm->admin_button('back',LAN_CANCEL, 'cancel')."
"; // Now a little bit of JS to initialise some of the display divs etc // $temp = ''; // if(varset($import_source)) { $temp .= "disp('{$import_source}');"; } // if (varset($current_db_type)) $temp .= " flagbits('{$current_db_type}');"; // if (varset($temp)) $text .= ""; $ns -> tablerender(LAN_PLUGIN_IMPORT_NAME.SEP.$importType, $mes->render().$text); } function rssImport() { global $current_db_type; $mes = e107::getMessage(); $mes->addDebug("Loading: RSS"); if(!varset($_POST['runConversion'])) { $mes->addWarning("Under Construction"); } return $this->dbImport('xml'); } /** MAIN IMPORT AREA */ function dbImport($mode='db') { $mes = e107::getMessage(); $mes->addDebug("dbImport(): Loading: ".$this->importClass); if(!is_array($this->importTables)) { $mes->addError("dbImport(): No areas selected for import"); // db connect failed return false; } if (class_exists($this->importClass)) { $mes->addDebug("dbImport(): Class Available: ".$this->importClass); $converter = new $this->importClass; $converter->init(); } else { $mes->addError(LAN_CONVERT_42. "[".$this->importClass."]"); $mes->addDebug("dbImport(): Class NOT Available: ".$this->importClass); return false; } if($mode == 'db') // Don't do DB check on RSS/XML { if (!isset($_POST['dbParamHost']) || !isset($_POST['dbParamUsername']) || !isset($_POST['dbParamPassword']) || !isset($_POST['dbParamDatabase'])) { $mes->addError(LAN_CONVERT_41); return false; } $result = $converter->db_Connect($_POST['dbParamHost'], $_POST['dbParamUsername'], $_POST['dbParamPassword'], $_POST['dbParamDatabase'], $_POST['dbParamPrefix']); if ($result !== TRUE) { $mes->addError(LAN_CONVERT_43.": ".$result); // db connect failed return false; } } if(vartrue($converter->override)) { $mes->addDebug("dbImport(): Override Active!" ); return; } // Return foreach($this->selectedTables as $k => $tm) { $v = $this->importTables[$k]; $loopCounter = 0; $errorCounter = 0; if (is_readable($v['classfile'])) // Load our class for either news, pages etc. { $mes->addDebug("dbImport(): Including File: ".$v['classfile']); require_once($v['classfile']); } else { $mes->addError(LAN_CONVERT_45.': '.$v['classfile']); // can't read class file. return false; } $mes->addDebug("dbImport(): Importing: ".$k); $result = $converter->setupQuery($k, !$this->deleteExisting); if ($result !== TRUE) { $mes->addError(LAN_CONVERT_44.' '.$k); // couldn't set query break; } $exporter = new $v['classname']; // Writes the output data if(is_object($exporter)) { $mes->addDebug("dbImport(): Class Initiated: ".$v['classname']); } else { $mes->addDebug("dbImport(): Couldn't Initiate Class: ".$v['classname']); } if($k == 'users') // Do any type-specific default setting { $exporter->overrideDefault('user_class', $checked_class_list); break; } if ($this->deleteExisting) { $exporter->emptyTargetDB(); // Clean output DB - reasonably safe now } while ($row = $converter->getNext($exporter->getDefaults(),$mode)) { $loopCounter++; $result = $exporter->saveData($row); if ($result !== TRUE) { $errorCounter++; $line_error = $exporter->getErrorText($result); // if ($msg) $msg .= "
"; $msg = str_replace(array('--ERRNUM--','--DB--'),array($line_error,$k),LAN_CONVERT_46).$loopCounter; $mes->addError($msg); // couldn't set query } } $converter->endQuery(); unset($exporter); $msg = str_replace(array('--LINES--','--USERS--', '--ERRORS--','--BLOCK--'), array($loopCounter,$loopCounter-$errorCounter,$errorCounter, $k),LAN_CONVERT_47); $mes->addSuccess($msg); // couldn't set query } return true; /// - old BELOW ---------------------------------------- foreach ($this->importTables as $k => $v) { if (isset($this->selectedTables[$k])) { $loopCounter = 0; $errorCounter = 0; if (is_readable($v['classfile'])) { require_once($v['classfile']); } else { $mes->addError(LAN_CONVERT_45.': '.$v['classfile']); // can't read class file. return false; } if (varset($_POST["import_block_{$k}"],0) == 1) { //if (IMPORT_DEBUG) echo "Importing: {$k}
"; $mes->addDebug("Importing: ".$k); $result = $converter->setupQuery($k,!$this->deleteExisting); if ($result !== TRUE) { $mes->addError(LAN_CONVERT_44.' '.$k); // couldn't set query // $msg .= "Prefix = ".$converter->DBPrefix; break; } $exporter = new $v['classname']; // Writes the output data switch ($k) // Do any type-specific default setting { case 'users' : $exporter->overrideDefault('user_class',$checked_class_list); break; } if ($this->deleteExisting) { $exporter->emptyTargetDB(); // Clean output DB - reasonably safe now } while ($row = $converter->getNext($exporter->getDefaults(),$mode)) { $loopCounter++; $result = $exporter->saveData($row); if ($result !== TRUE) { $errorCounter++; $line_error = $exporter->getErrorText($result); // if ($msg) $msg .= "
"; $msg = str_replace(array('--ERRNUM--','--DB--'),array($line_error,$k),LAN_CONVERT_46).$loopCounter; $mes->addError($msg); // couldn't set query } } $converter->endQuery(); unset($exporter); $msg = str_replace(array('--LINES--','--USERS--', '--ERRORS--','--BLOCK--'), array($loopCounter,$loopCounter-$errorCounter,$errorCounter, $k),LAN_CONVERT_47); $mes->addSuccess($msg); // couldn't set query } else { $mes->addDebug("Error: _POST['import_block_{$k}'] = ".$_POST['import_block_{$k}']); // cou } } else { $mes->addDebug("\$this->selectedTables doesn't contain key: ".$k); // cou } } // $msg = LAN_CONVERT_29; return true; // $abandon = FALSE; } } // Source DB types (i.e. CMS types) supported. Key of each element is the 'short code' for the type $import_class_names = array(); // Title $import_class_comment = array(); // Descriptive comment $import_class_support = array(); // Array of data types supported // Definitions of available areas to import $db_import_blocks = array( 'users' => array('message' => LAN_CONVERT_25, 'classfile' => 'import_user_class.php', 'classname' => 'user_import'), 'news' => array('message' => LAN_CONVERT_28, 'classfile' => 'import_news_class.php', 'classname' => 'news_import'), 'page' => array('message' => "Pages", 'classfile' => 'import_page_class.php', 'classname' => 'page_import'), 'links' => array('message' => "Links", 'classfile' => 'import_links_class.php', 'classname' => 'links_import'), 'media' => array('message' => "Media", 'classfile' => 'import_media_class.php', 'classname' => 'media_import'), 'comments' => array('message'=> "Comments"), // 'forumdefs' => array('message' => LAN_CONVERT_26), // 'forumposts' => array('message' => LAN_CONVERT_48), // 'polls' => array('message' => LAN_CONVERT_27) ); // See what DB-based imports are available (don't really want it here, but gets it into the header script) require_once(e_HANDLER.'file_class.php'); $fl = new e_file; $importClassList = $fl->get_files(e_PLUGIN.'import/providers', "^.+?_import_class\.php$", "standard", 1); foreach($importClassList as $file) { $tag = str_replace('_class.php','',$file['fname']); include_once($file['path'].$file['fname']); // This will set up the variables } unset($importClassList); unset($fl); asort($import_class_names); if(varset($_POST['import_source'])) { $import_source = varset($_POST['import_source'],'csv'); if(varset($_POST['classes_select'])) { $checked_class_list = implode(',',$_POST['classes_select']); } $import_delete_existing_data = varset($_POST['import_delete_existing_data'],0); $current_csv = varset($_POST['csv_format'],'default'); $csv_pw_not_encrypted = varset($_POST['csv_pw_not_encrypted'],0); $csv_data_file = varset($_POST['csv_data_file'],'import.csv'); $current_db_type = varset($_POST['db_import_type'],key($import_class_names)); } $db_blocks_to_import = array(); foreach ($db_import_blocks as $k => $v) { if (isset($_POST['import_block_'.$k])) { $db_blocks_to_import[$k] = 1; } } // require_once(e_ADMIN."auth.php"); if (!is_object($e_userclass)) { require_once(e_HANDLER."userclass_class.php"); // Modified class handler $e_userclass = new user_class; } define('CSV_DEF_FILE','csv_import.txt'); // Supplementary CSV format definitions // Definitions of available CSV-based imports $csv_formats = array('default' => 'user_name,user_password'); $csv_names = array('default' => LAN_CONVERT_12); $csv_options = array('default' => 'simple'); $csv_option_settings = array( 'simple' => array('separator' => ',', 'envelope' => ''), 'simple_sq' => array('separator' => ',', 'envelope' => "'"), 'simple_dq' => array('separator' => ',', 'envelope' => '"'), 'simple_semi' => array('separator' => ',', 'envelope' => ';'), 'simple_bar' => array('separator' => ',', 'envelope' => '|') ); // See what CSV format definitions are available if (is_readable(CSV_DEF_FILE)) { $csv_temp = file(CSV_DEF_FILE); foreach ($csv_temp as $line) { $line = trim(str_replace("\n","",$line)); if ($line) { list($temp,$name,$options,$line) = explode(',',$line,4); $temp = trim($temp); $name = trim($name); $options = trim($options); $line = trim($line); if ($temp && $name && $options && $line) { $csv_formats[$temp] = $line; // Add any new definitions $csv_names[$temp] = $name; $csv_options[$temp] = $options; } } } unset($csv_temp); } $msg = ''; //====================================================== // Executive routine - actually do conversion //====================================================== if(isset($_POST['do_conversion'])) { $abandon = TRUE; switch ($import_source) { case 'csv' : if (!isset($csv_formats[$current_csv])) $msg = "CSV File format error

"; if (!is_readable($csv_data_file)) $msg = LAN_CONVERT_31; if (!isset($csv_options[$current_csv])) $msg = LAN_CONVERT_37.' '.$current_csv; if (!isset($csv_option_settings[$csv_options[$current_csv]])) { $msg = LAN_CONVERT_37.' '.$csv_options[$current_csv]; } if (!$msg) { $field_list = explode(',',$csv_formats[$current_csv]); $separator = $csv_option_settings[$csv_options[$current_csv]]['separator']; $enveloper = $csv_option_settings[$csv_options[$current_csv]]['envelope']; if (IMPORT_DEBUG) echo "CSV import: {$current_csv} Fields: {$csv_formats[$current_csv]}
"; require_once('import_user_class.php'); $usr = new user_import; $usr->overrideDefault('user_class',$checked_class_list); if (($source_data = file($csv_data_file)) === FALSE) $msg = LAN_CONVERT_32; if ($import_delete_existing_data) $usr->emptyTargetDB(); // Delete existing users - reasonably safe now $line_counter = 0; $error_counter = 0; $write_counter = 0; foreach ($source_data as $line) { $line_counter++; $line_error = FALSE; if ($line = trim($line)) { $usr_data = $usr->getDefaults(); // Reset user data $line_data = csv_split($line, $separator, $enveloper); $field_data = current($line_data); foreach ($field_list as $f) { if ($field_data === FALSE) $line_error = TRUE; if ($f != 'dummy') $usr_data[$f] = $field_data; $field_data = next($line_data); } if ($line_error) { if ($msg) $msg .= "
"; $msg .= LAN_CONVERT_33.$line_counter; $error_counter++; } else { if ($csv_pw_not_encrypted) { $usr_data['user_password'] = md5($usr_data['user_password']); } $line_error = $usr->saveData($usr_data); if ($line_error === TRUE) { $write_counter++; } else { $line_error = $usr->getErrorText($line_error); if ($msg) $msg .= "
"; $msg .= str_replace('--ERRNUM--',$line_error,LAN_CONVERT_34).$line_counter; $error_counter++; } } } } if ($msg) $msg .= "
"; if ($import_delete_existing_data) $msg .= LAN_CONVERT_40.'
'; $msg .= str_replace(array('--LINES--','--USERS--', '--ERRORS--'),array($line_counter,$write_counter,$error_counter),LAN_CONVERT_35); } break; case 'db' : if(dbImport() == false) { $abandon = true; } break; case 'rss' : if(rssImport() == false) { $abandon = true; } break; } if ($msg) { $mes->add($msg, E_MESSAGE_INFO); // $ns -> tablerender(LAN_CONVERT_30, $msg); $msg = ''; } if ($abandon) { // unset($_POST['do_conversion']); $text = "
".$frm->admin_button('dummy_continue',LAN_CONTINUE, 'execute')."
"; $ns -> tablerender(LAN_CONVERT_30,$mes->render(). $text); require_once(e_ADMIN."footer.php"); exit; } } /* function rssImport() { global $current_db_type, $db_import_blocks, $import_delete_existing_data,$db_blocks_to_import; $mes = e107::getMessage(); $mes->addDebug("Loading: RSS"); if(!varset($_POST['do_conversion'])) { $mes->addWarning("Under Construction"); } return dbImport('xml'); } function dbImport($mode='db') { global $current_db_type, $db_import_blocks, $import_delete_existing_data,$db_blocks_to_import; $mes = e107::getMessage(); // if (IMPORT_DEBUG) echo "Importing: {$current_db_type}
"; $mes->addDebug("Loading: ".$current_db_type); if (class_exists($current_db_type)) { $mes->addDebug("Class Available: ".$current_db_type); $converter = new $current_db_type; $converter->init(); } else { $mes->addError(LAN_CONVERT_42. "[".$current_db_type."]"); return false; } if($mode == 'db') // Don't do DB check on RSS/XML { if (!isset($_POST['dbParamHost']) || !isset($_POST['dbParamUsername']) || !isset($_POST['dbParamPassword']) || !isset($_POST['dbParamDatabase'])) { $mes->addError(LAN_CONVERT_41); return false; } $result = $converter->db_Connect($_POST['dbParamHost'], $_POST['dbParamUsername'], $_POST['dbParamPassword'], $_POST['dbParamDatabase'], $_POST['dbParamPrefix']); if ($result !== TRUE) { $mes->addError(LAN_CONVERT_43.": ".$result); // db connect failed return false; } } if(!is_array($db_import_blocks)) { $mes->addError("No areas selected for import"); // db connect failed return false; } if(vartrue($converter->override)) { return; } foreach ($db_import_blocks as $k => $v) { if (isset($db_blocks_to_import[$k])) { $loopCounter = 0; $errorCounter = 0; if (is_readable($v['classfile'])) { require_once($v['classfile']); } else { $mes->addError(LAN_CONVERT_45.': '.$v['classfile']); // can't read class file. return false; } if (varset($_POST["import_block_{$k}"],0) == 1) { //if (IMPORT_DEBUG) echo "Importing: {$k}
"; $mes->addDebug("Importing: ".$k); $result = $converter->setupQuery($k,!$import_delete_existing_data); if ($result !== TRUE) { $mes->addError(LAN_CONVERT_44.' '.$k); // couldn't set query // $msg .= "Prefix = ".$converter->DBPrefix; break; } $exporter = new $v['classname']; // Writes the output data switch ($k) // Do any type-specific default setting { case 'users' : $exporter->overrideDefault('user_class',$checked_class_list); break; } if ($import_delete_existing_data) { $exporter->emptyTargetDB(); // Clean output DB - reasonably safe now } while ($row = $converter->getNext($exporter->getDefaults(),$mode)) { $loopCounter++; $result = $exporter->saveData($row); if ($result !== TRUE) { $errorCounter++; $line_error = $exporter->getErrorText($result); // if ($msg) $msg .= "
"; $msg = str_replace(array('--ERRNUM--','--DB--'),array($line_error,$k),LAN_CONVERT_46).$loopCounter; $mes->addError($msg); // couldn't set query } } $converter->endQuery(); unset($exporter); $msg = str_replace(array('--LINES--','--USERS--', '--ERRORS--','--BLOCK--'), array($loopCounter,$loopCounter-$errorCounter,$errorCounter, $k),LAN_CONVERT_47); $mes->addSuccess($msg); // couldn't set query } else { $mes->addDebug("Error: _POST['import_block_{$k}'] = ".$_POST['import_block_{$k}']); // cou } } else { $mes->addDebug("\$db_blocks_to_import doesn't contain key: ".$k); // cou } } // $msg = LAN_CONVERT_29; return true; // $abandon = FALSE; } */ //====================================================== // Display front page //====================================================== new import_admin(); require_once(e_ADMIN."auth.php"); e107::getAdminUI()->runPage(); require_once(e_ADMIN."footer.php"); exit; /* * Currently unused function - shows available import methods and capabilities */ /* function showStartPage() { global $emessage, $frm, $import_class_names, $import_class_support, $db_import_blocks, $import_class_comment; $frm = e107::getForm(); $text = "
".'DBLAN_10'." ".$frm->hidden('mode','main')." ".$frm->hidden('action','import')." "; foreach($db_import_blocks as $name) // 1 column for each of users, news, forum etc. { $text .= ""; } $text.=" "; for ($i=0; $i < count($db_import_blocks)-1; $i++) { $text .= ""; } $text .= ""; foreach ($import_class_names as $k => $title) { $iconFile = e_PLUGIN."import/images/".str_replace("_import","",strtolower($k)).".png"; $icon = (file_exists($iconFile)) ? "" : ""; $text .= "\n"; foreach($db_import_blocks as $key=>$val) { $text .= "\n"; } $text .= " "; } $text .= "
".LAN_CONVERT_06."".$name['message']."".LAN_OPTIONS."
CSV ".ADMIN_TRUE_ICON." ".$frm->admin_button('import_type', 'csv', 'other',"Select")."
".$icon.$title."
".$import_class_comment[$k]."
".(in_array($key,$import_class_support[$k]) ? ADMIN_TRUE_ICON : " ").""; $text .= $frm->admin_button('type', $k, 'other',"Select"); // $text .= $frm->admin_button('import_type', $k, 'other',"Select"); $text .= "
".$frm->hidden('trigger_import',1)."
"; echo $emessage->render().$text; // $ns->tablerender(LAN_PLUGIN_IMPORT_NAME, $emessage->render().$text); } function showImportOptions($mode='csv') { global $text, $emessage, $csv_names, $import_class_names, $e_userclass, $db_import_blocks, $import_class_support, $import_default_prefix; $frm = e107::getForm(); $ns = e107::getRender(); $mes = e107::getMessage(); if (class_exists($mode)) { $mes->addDebug("Class Available: ".$mode); $proObj = new $mode; if($proObj->init()===FALSE) { return; } } $message = "".LAN_CONVERT_05.""; $emessage->add($message, E_MESSAGE_WARNING); $text = "
"; if($mode == "csv") { $text .= " "; } elseif(method_exists($proObj,"config")) { $ops = $proObj->config(); foreach($ops as $key=>$val) { $text .= "\n"; } if($proObj->sourceType) { $text .= "\n"; } } else { $importType = $import_class_names[$mode]; $text .= " "; } if($mode != 'csv') { $text .= " "; } $text .= ""; if(varset($proObj->defaultClass) !== false) { $text .= " "; } $action = varset($proObj->action,'do_conversion'); $text .= "
".LAN_CONVERT_07." \n
".LAN_CONVERT_36."
".LAN_CONVERT_17." ".LAN_CONVERT_18."
".$val['caption']." ".$val['html']; $text .= (vartrue($val['help'])) ? "
".$val['help']."
" : ""; $text .= "
$importType ".LAN_CONVERT_19."
$importType ".LAN_CONVERT_20."
$importType ".LAN_CONVERT_21."
$importType ".LAN_CONVERT_22."
$importType ".LAN_CONVERT_23."
$importType ".LAN_CONVERT_24." "; $defCheck = (count($import_class_support[$mode])==1) ? "checked='checked'" : ""; foreach ($db_import_blocks as $k => $v) { if(in_array($k, $import_class_support[$mode])) // display only the options supported. { $text .= " ".$v['message']; $text .= "
"; } } $text .= "
".LAN_CONVERT_38." ".LAN_CONVERT_39."
".LAN_CONVERT_16." "; $text .= $e_userclass->vetted_tree('classes_select',array($e_userclass,'checkbox'), varset($_POST['classes_select']),'main,admin,classes,matchclass, no-excludes'); $text .= "
".$frm->admin_button($action,LAN_CONTINUE, 'execute'). $frm->admin_button('back',LAN_CANCEL, 'cancel')."
"; // Now a little bit of JS to initialise some of the display divs etc $temp = ''; if(varset($import_source)) { $temp .= "disp('{$import_source}');"; } if (varset($current_db_type)) $temp .= " flagbits('{$current_db_type}');"; if (varset($temp)) $text .= ""; $ns -> tablerender(LAN_PLUGIN_IMPORT_NAME.SEP.$importType, $emessage->render().$text); } */ function csv_split(&$data,$delim=',',$enveloper='') { $ret_array = array(); $fldval=''; $enclosed = false; // $fldcount=0; // $linecount=0; for($i=0;$i $val) { $blocks .= "block_names[{$i}]='{$it}';\n"; $i++; } $i = 0; foreach ($import_class_support as $k => $v) { $vals .= "db_names[$i] = '{$k}';\n"; $comments .= "comment_text[$i] = '{$import_class_comment[$k]}';\n"; // $temp = $import_class_support[$k]; // Array of import types supported $j = 0; $m = 1; // Mask bit foreach ($db_import_blocks as $it => $val) { if (in_array($it,$v)) $j = $j + $m; $m = $m + $m; } $texts .= "db_options[{$i}] = {$j};\n"; $i++; } $text = " "; return $text; } ?>