From 2ddfc5ec95cfc7150d94a56ba48385786aba98aa Mon Sep 17 00:00:00 2001 From: hickert Date: Thu, 29 Jul 2010 08:10:28 +0000 Subject: [PATCH] Updated code indentation git-svn-id: https://oss.gonicus.de/repositories/gosa/branches/2.6@19201 594d385d-05f5-0310-b6e9-bd551577e9d8 --- .../addons/ldapmanager/class_csvimport.inc | 886 +++++++++--------- 1 file changed, 443 insertions(+), 443 deletions(-) diff --git a/gosa-plugins/ldapmanager/addons/ldapmanager/class_csvimport.inc b/gosa-plugins/ldapmanager/addons/ldapmanager/class_csvimport.inc index 4fac56880..39cd5fe31 100644 --- a/gosa-plugins/ldapmanager/addons/ldapmanager/class_csvimport.inc +++ b/gosa-plugins/ldapmanager/addons/ldapmanager/class_csvimport.inc @@ -2,504 +2,504 @@ class csvimport extends plugin { - /* Definitions */ - var $plHeadline= "LDIF export"; - var $plDescription= "This does something"; - var $access= ""; - - /* Array with csv informations*/ - var $csvinfo=array(); - - /* attribute list for save action */ - var $attributes= array(); - var $objectclasses= array(); - var $view_logged = FALSE; - - function csvimport (&$config, $dn= NULL) - { - /* Include config object */ - $this->config= &$config; - - $this->ui = get_userinfo(); - } - - function execute() - { - /* Call parent execute */ - plugin::execute(); - - /* Log view */ - if(!$this->view_logged){ - $this->view_logged = TRUE; - new log("view","all/".get_class($this),$this->dn); - } + /* Definitions */ + var $plHeadline= "LDIF export"; + var $plDescription= "This does something"; + var $access= ""; - /* initiate smarty */ - $smarty= get_smarty(); - $smarty->assign("selectedattrs",array(0=>"")); - $smarty->assign("data",array(0=>"")); - $smarty->assign("head",array(0=>"")); - $smarty->assign("sorted",0); - $smarty->assign("fileup",0); + /* Array with csv informations*/ + var $csvinfo=array(); - /* Get the LDAP link, to generate the Export */ - $ldap = $this->config->get_ldap_link(); + /* attribute list for save action */ + var $attributes= array(); + var $objectclasses= array(); + var $view_logged = FALSE; - $arrtemplates = array(); - $tempvar =0; + function csvimport (&$config, $dn= NULL) + { + /* Include config object */ + $this->config= &$config; - /* Array to fill in Formfields */ - $arrtemplates[$tempvar] = "None"; - if(!is_array($this->csvinfo)){ - $this->csvinfo=array(); + $this->ui = get_userinfo(); } - /* Set Usertemplate information and get all Attribute from userclass */ - unset ($this->csvinfo['arrtemplates']); - unset ($this->csvinfo['arrtempls']); + function execute() + { + /* Call parent execute */ + plugin::execute(); - /* Generate Template Array, Attribute Array */ - if(!isset($this->csvinfo['arrtempls'])){ + /* Log view */ + if(!$this->view_logged){ + $this->view_logged = TRUE; + new log("view","all/".get_class($this),$this->dn); + } - /* Generating attributes */ - $attrs = @get_class_vars("user"); - $this->csvinfo['attr'] = $attrs['attributes']; + /* initiate smarty */ + $smarty= get_smarty(); + $smarty->assign("selectedattrs",array(0=>"")); + $smarty->assign("data",array(0=>"")); + $smarty->assign("head",array(0=>"")); + $smarty->assign("sorted",0); + $smarty->assign("fileup",0); - /* Attach the choise none to discard a csv col */ - $new = array(); - $new[0]="none"; - $new[1]="userPassword"; - for($c = 0; $c < count($this->csvinfo['attr']);$c++){ - $new[$c+2]=$this->csvinfo['attr'][$c]; - } + /* Get the LDAP link, to generate the Export */ + $ldap = $this->config->get_ldap_link(); - $this->csvinfo['attr'] = $new; + $arrtemplates = array(); + $tempvar =0; - /* Search all Templates */ - $this->csvinfo['templates'] = $ldap->search("(objectClass=gosaUserTemplate)",array("*")); + /* Array to fill in Formfields */ + $arrtemplates[$tempvar] = "None"; + if(!is_array($this->csvinfo)){ + $this->csvinfo=array(); + } - /* Array to handle selected Form fiels */ - $this->csvinfo['arrtempls'][$tempvar]['name'] = ""; - $this->csvinfo['arrtempls'][$tempvar]['dn'] = ""; + /* Set Usertemplate information and get all Attribute from userclass */ + unset ($this->csvinfo['arrtemplates']); + unset ($this->csvinfo['arrtempls']); - $this->csvinfo['arrtemplates'][]="None"; + /* Generate Template Array, Attribute Array */ + if(!isset($this->csvinfo['arrtempls'])){ - while($temp = $ldap->fetch($this->csvinfo['templates'])){ - $tempvar ++; - $this->csvinfo['arrtemplates'][$tempvar] = $temp['sn'][0]." - ".$this->config->idepartments[preg_replace("/^[^,]+,".preg_quote(get_people_ou(), '/')."/i", "", $temp['dn'])]; - $this->csvinfo['arrtempls'] [$tempvar]['name'] = $temp['sn'][0]; - $this->csvinfo['arrtempls'] [$tempvar]['dn'] = $temp['dn']; - } - } + /* Generating attributes */ + $attrs = @get_class_vars("user"); + $this->csvinfo['attr'] = $attrs['attributes']; + + /* Attach the choise none to discard a csv col */ + $new = array(); + $new[0]="none"; + $new[1]="userPassword"; + for($c = 0; $c < count($this->csvinfo['attr']);$c++){ + $new[$c+2]=$this->csvinfo['attr'][$c]; + } - $arr_temp = array_flip($this->csvinfo['attr']); - $this->csvinfo['arr_selected']= array($arr_temp['uid'],$arr_temp['sn'],$arr_temp['givenName'],$arr_temp['userPassword']); + $this->csvinfo['attr'] = $new; - $smarty->assign("templates",$this->csvinfo['arrtemplates']); - $smarty->assign("attrs",$this->csvinfo['attr']); + /* Search all Templates */ + $this->csvinfo['templates'] = $ldap->search("(objectClass=gosaUserTemplate)",array("*")); - /* Check permissions for import */ - $acl = $this->ui->get_permissions($this->config->current['BASE'],"all/all"); - if(!preg_match("/w/",$acl)){ - if(isset($_POST['userfile']) || isset($_POST['sorted']) || isset($_POST['fileup'])){ - msg_dialog::display(_("Permission error"), _("You've no permission to import CSV files."), ERROR_DIALOG); - } - return ($smarty->fetch (get_template_path('contentcsv.tpl', TRUE))); - } + /* Array to handle selected Form fiels */ + $this->csvinfo['arrtempls'][$tempvar]['name'] = ""; + $this->csvinfo['arrtempls'][$tempvar]['dn'] = ""; - /* If the given dat from the csv File are sorted by the attributes */ - if(isset($_POST['sorted'])) { + $this->csvinfo['arrtemplates'][]="None"; - /* Template Handling */ - $smarty->assign("fileup",TRUE); - $smarty->assign("sorted",TRUE); + while($temp = $ldap->fetch($this->csvinfo['templates'])){ + $tempvar ++; + $this->csvinfo['arrtemplates'][$tempvar] = $temp['sn'][0]." - ".$this->config->idepartments[preg_replace("/^[^,]+,".preg_quote(get_people_ou(), '/')."/i", "", $temp['dn'])]; + $this->csvinfo['arrtempls'] [$tempvar]['name'] = $temp['sn'][0]; + $this->csvinfo['arrtempls'] [$tempvar]['dn'] = $temp['dn']; + } + } - for($i = 0 ; $i < $this->csvinfo['rows'];$i++){ - /* Preparing given Data */ - $this->csvinfo['sorteddata'][$i]=array(); + $arr_temp = array_flip($this->csvinfo['attr']); + $this->csvinfo['arr_selected']= array($arr_temp['uid'],$arr_temp['sn'],$arr_temp['givenName'],$arr_temp['userPassword']); - /* Go through every col */ - for($a = 0; $a <= ($this->csvinfo['cols']); $a ++) { - /* Append a status col at last, to show possibly errors */ - if($a==($this->csvinfo['cols'])){ - $this->csvinfo['sorteddata'][$i]["status"]="-"; - } else { - $cc = ($i * ($this->csvinfo['cols']))+$a; + $smarty->assign("templates",$this->csvinfo['arrtemplates']); + $smarty->assign("attrs",$this->csvinfo['attr']); - /* If theres a Attribut given for this col */ - if(!empty($_POST[('row'.($a))])) { - $this->csvinfo['sorteddata'][$i][$this->csvinfo['attr'][$_POST[('row'.($a))]]]=$this->csvinfo['data'][($cc)]; + /* Check permissions for import */ + $acl = $this->ui->get_permissions($this->config->current['BASE'],"all/all"); + if(!preg_match("/w/",$acl)){ + if(isset($_POST['userfile']) || isset($_POST['sorted']) || isset($_POST['fileup'])){ + msg_dialog::display(_("Permission error"), _("You've no permission to import CSV files."), ERROR_DIALOG); } - } + return ($smarty->fetch (get_template_path('contentcsv.tpl', TRUE))); } - } - /* aleast one entry */ - $rowcnt=0; - if(isset($this->csvinfo['sorteddata'])){ - $rowcnt ++; + /* If the given dat from the csv File are sorted by the attributes */ + if(isset($_POST['sorted'])) { + + /* Template Handling */ + $smarty->assign("fileup",TRUE); + $smarty->assign("sorted",TRUE); + + for($i = 0 ; $i < $this->csvinfo['rows'];$i++){ + /* Preparing given Data */ + $this->csvinfo['sorteddata'][$i]=array(); + + /* Go through every col */ + for($a = 0; $a <= ($this->csvinfo['cols']); $a ++) { + /* Append a status col at last, to show possibly errors */ + if($a==($this->csvinfo['cols'])){ + $this->csvinfo['sorteddata'][$i]["status"]="-"; + } else { + $cc = ($i * ($this->csvinfo['cols']))+$a; + + /* If theres a Attribut given for this col */ + if(!empty($_POST[('row'.($a))])) { + $this->csvinfo['sorteddata'][$i][$this->csvinfo['attr'][$_POST[('row'.($a))]]]=$this->csvinfo['data'][($cc)]; + } + } + } + } + + /* aleast one entry */ + $rowcnt=0; + if(isset($this->csvinfo['sorteddata'])){ + $rowcnt ++; + + /* Set the col count */ + $tblcolcount= count ($this->csvinfo['cols']); + + /* entrie count */ + $tbl_entries= count ($this->csvinfo['count']); + + /* row count */ + $tbl_rows = $tbl_entries / $tblcolcount; + + /* No error occurred */ + $failing = FALSE; + + /* For every row */ + for($i = 0; $i < $this->csvinfo['rows']; $i++){ + + /* Get elemenet */ + $dat = $this->csvinfo['sorteddata'][$i]; + + /* If not all needed vars set .... */ + if( ( empty($dat['sn']))||( empty($dat['givenName']))||( empty($dat['uid']))|| + (!isset($dat['sn']))||(!isset($dat['givenName']))||(!isset($dat['uid']))){ + + /* Output Error */ + msg_dialog::display(_("Error"), _("Need at least 'sn', 'givenName' and 'uid' to create users."), ERROR_DIALOG); + } else { + + /* Register usertab to trigger edit dialog */ + $this->usertab= new usertabs($this->config, $this->config->data['TABS']['USERTABS'], 'new'); + $keys = array_keys($dat); + + + /* Set all submitted vars */ + if(is_array($keys)) + foreach($keys as $key) { + if($key != "status"){ + $this->usertab->$key = $dat[$key]; + } + } + + /* Initialize template */ + if($this->csvinfo['tplid']!=0){ + $this->usertab->adapt_from_template($this->csvinfo['arrtempls'][$this->csvinfo['tplid']]['dn']); + $this->usertab->save_object(); + } else { + + /* Reset vars */ + if(is_array($keys)) + foreach($keys as $key) { + if($key != "status"){ + $this->usertab->by_object['user']->$key = $dat[$key]; + } + } + } + + // Setting user Password + if((isset($dat['userPassword']))&&(!empty($dat['userPassword']))) + $password = $dat['userPassword']; + else + { + $rand_str=""; + $feed = "0123456789abcdefghijklmnopqrstuvwxyz"; + for ($i=0; $i < 8; $i++) + { + $rand_str .= substr($feed, rand(0, strlen($feed)-1), 1); + } + $password = $rand_str; + } + + /* Insert in the LDAP tree */ + if(count($this->usertab->check())) { + msg_dialog::displayChecks($this->usertab->check()); + $this->csvinfo['sorteddata'][$i]['status']=""._("failed").""; + $failing = $i+1; + break; + } else { + $this->csvinfo['sorteddata'][$i]['status']=_("ok"); + $this->usertab->save(); + change_password($this->usertab->dn,$password); + } + } + } - /* Set the col count */ - $tblcolcount= count ($this->csvinfo['cols']); + $pointsbefore = FALSE; + $pointsafter = FALSE; - /* entrie count */ - $tbl_entries= count ($this->csvinfo['count']); + /* Get Attributs for Tableheadline */ + $this->csvinfo['colsstr'] = array(); + for($i =0; $i <= $this->csvinfo['cols']; $i++) { + if(!empty($_POST[('row'.$i)])){ + $this->csvinfo['colsstr'][$i] = $this->csvinfo['attr'][$_POST[('row'.$i)]]; + } + } - /* row count */ - $tbl_rows = $tbl_entries / $tblcolcount; + /*Create array with data for the template */ + if($failing == FALSE){ - /* No error occurred */ - $failing = FALSE; + $dataouts= array(); + for($i =1; $i <= $this->csvinfo['shownrowscount']; $i++) { + if(is_array($this->csvinfo['sorteddata'][($i-1)])){ + foreach($this->csvinfo['sorteddata'][($i-1)] as $dat){ + $dataouts[]=$dat; + } + } + } - /* For every row */ - for($i = 0; $i < $this->csvinfo['rows']; $i++){ + if($this->csvinfo['rows']> $this->csvinfo['shownrowscount']){ + $pointsafter = TRUE; + } + } else { + $pointsbefore = TRUE; + $pointsafter = TRUE; - /* Get elemenet */ - $dat = $this->csvinfo['sorteddata'][$i]; + $begin = $failing -3; - /* If not all needed vars set .... */ - if( ( empty($dat['sn']))||( empty($dat['givenName']))||( empty($dat['uid']))|| - (!isset($dat['sn']))||(!isset($dat['givenName']))||(!isset($dat['uid']))){ + if($begin <0) { + $begin =0; + $pointsbefore = FALSE; + } - /* Output Error */ - msg_dialog::display(_("Error"), _("Need at least 'sn', 'givenName' and 'uid' to create users."), ERROR_DIALOG); - } else { + $end = $failing + 2; - /* Register usertab to trigger edit dialog */ - $this->usertab= new usertabs($this->config, $this->config->data['TABS']['USERTABS'], 'new'); - $keys = array_keys($dat); + if($end > $this->csvinfo['rows']) { + $end = $this->csvinfo['rows']+1; + $pointsafter = FALSE; + } + $this->csvinfo['shownrowscount']=$end - $begin; + if($this->csvinfo['shownrowscount']> $this->csvinfo['rows'])$this->csvinfo['shownrowscount']=$this->csvinfo['rows']; - /* Set all submitted vars */ - if(is_array($keys)) - foreach($keys as $key) { - if($key != "status"){ - $this->usertab->$key = $dat[$key]; + $dataouts = array(); + for($i =$begin; $i <= $end; $i++) { + if(is_array($this->csvinfo['sorteddata'][($i-1)])){ + foreach($this->csvinfo['sorteddata'][($i-1)] as $dat){ + $dataouts[]=$dat; + } + } + } } - } - - /* Initialize template */ - if($this->csvinfo['tplid']!=0){ - $this->usertab->adapt_from_template($this->csvinfo['arrtempls'][$this->csvinfo['tplid']]['dn']); - $this->usertab->save_object(); - } else { + $tmparr2 = $this->csvinfo['colsstr']; + $tmparr2[]=_("status"); - /* Reset vars */ - if(is_array($keys)) - foreach($keys as $key) { - if($key != "status"){ - $this->usertab->by_object['user']->$key = $dat[$key]; - } + /* Error? */ + if ($failing){ + msg_dialog::display(_("Error"), sprintf(_("Cannot insert entry '%s'!"), $failing), ERROR_DIALOG); } - } - - // Setting user Password - if((isset($dat['userPassword']))&&(!empty($dat['userPassword']))) - $password = $dat['userPassword']; - else - { - $rand_str=""; - $feed = "0123456789abcdefghijklmnopqrstuvwxyz"; - for ($i=0; $i < 8; $i++) - { - $rand_str .= substr($feed, rand(0, strlen($feed)-1), 1); - } - $password = $rand_str; - } - - /* Insert in the LDAP tree */ - if(count($this->usertab->check())) { - msg_dialog::displayChecks($this->usertab->check()); - $this->csvinfo['sorteddata'][$i]['status']=""._("failed").""; - $failing = $i+1; - break; + $smarty->assign("error",$failing); + + /* Set vars to smarty */ + $smarty->assign("cols",count($tmparr2)); + $smarty->assign("anz" ,$this->csvinfo['count']); + $smarty->assign("rows",$this->csvinfo['shownrowscount']); + + + $cnt = 0 ; + $tmp2 = $tmp3 = array(); + if(is_array($dataouts)) + foreach($dataouts as $tmp){ + $tmp2[] = $tmp; + $cnt ++ ; + if($cnt >= count($tmparr2)){ + $tmp3[] = $tmp2; + $tmp2= array(); + $cnt = 0; + } + } + $smarty->assign("head",$tmparr2); + $smarty->assign("data",$tmp3); + + /* Set other vars */ + $smarty->assign("i",1); + $smarty->assign("ie",0); + $smarty->assign("tplid",$this->csvinfo['tplid']); + + $smarty->assign("pointsafter",$pointsafter); + $smarty->assign("pointsbefore",$pointsbefore); } else { - $this->csvinfo['sorteddata'][$i]['status']=_("ok"); - $this->usertab->save(); - change_password($this->usertab->dn,$password); - } - } - } + /* Set Template ID */ + $tplid = $_POST['tplid']; - $pointsbefore = FALSE; - $pointsafter = FALSE; - /* Get Attributs for Tableheadline */ - $this->csvinfo['colsstr'] = array(); - for($i =0; $i <= $this->csvinfo['cols']; $i++) { - if(!empty($_POST[('row'.$i)])){ - $this->csvinfo['colsstr'][$i] = $this->csvinfo['attr'][$_POST[('row'.$i)]]; - } - } - - /*Create array with data for the template */ - if($failing == FALSE){ - - $dataouts= array(); - for($i =1; $i <= $this->csvinfo['shownrowscount']; $i++) { - if(is_array($this->csvinfo['sorteddata'][($i-1)])){ - foreach($this->csvinfo['sorteddata'][($i-1)] as $dat){ - $dataouts[]=$dat; - } + $smarty->assign("tpl",$arrtemplates[$tplid]); + msg_dialog::display(_("Information"), _("Nothing to import!"), INFO_DIALOG); } - } - if($this->csvinfo['rows']> $this->csvinfo['shownrowscount']){ - $pointsafter = TRUE; - } + /* If theres a File uploaded */ } else { - $pointsbefore = TRUE; - $pointsafter = TRUE; - - $begin = $failing -3; - - if($begin <0) { - $begin =0; - $pointsbefore = FALSE; - } - - $end = $failing + 2; - - if($end > $this->csvinfo['rows']) { - $end = $this->csvinfo['rows']+1; - $pointsafter = FALSE; - } - $this->csvinfo['shownrowscount']=$end - $begin; - - if($this->csvinfo['shownrowscount']> $this->csvinfo['rows'])$this->csvinfo['shownrowscount']=$this->csvinfo['rows']; - - $dataouts = array(); - for($i =$begin; $i <= $end; $i++) { - if(is_array($this->csvinfo['sorteddata'][($i-1)])){ - foreach($this->csvinfo['sorteddata'][($i-1)] as $dat){ - $dataouts[]=$dat; - } - } - } - } - $tmparr2 = $this->csvinfo['colsstr']; - $tmparr2[]=_("status"); - - /* Error? */ - if ($failing){ - msg_dialog::display(_("Error"), sprintf(_("Cannot insert entry '%s'!"), $failing), ERROR_DIALOG); - } - $smarty->assign("error",$failing); - - /* Set vars to smarty */ - $smarty->assign("cols",count($tmparr2)); - $smarty->assign("anz" ,$this->csvinfo['count']); - $smarty->assign("rows",$this->csvinfo['shownrowscount']); - - - $cnt = 0 ; - $tmp2 = $tmp3 = array(); - if(is_array($dataouts)) - foreach($dataouts as $tmp){ - $tmp2[] = $tmp; - $cnt ++ ; - if($cnt >= count($tmparr2)){ - $tmp3[] = $tmp2; - $tmp2= array(); - $cnt = 0; - } - } - $smarty->assign("head",$tmparr2); - $smarty->assign("data",$tmp3); - - /* Set other vars */ - $smarty->assign("i",1); - $smarty->assign("ie",0); - $smarty->assign("tplid",$this->csvinfo['tplid']); + /* Check if theres a file uploaded */ + if(!empty($_FILES['userfile']['name'])){ - $smarty->assign("pointsafter",$pointsafter); - $smarty->assign("pointsbefore",$pointsbefore); - } else { - /* Set Template ID */ - $tplid = $_POST['tplid']; + $handle = NULL; - - $smarty->assign("tpl",$arrtemplates[$tplid]); - msg_dialog::display(_("Information"), _("Nothing to import!"), INFO_DIALOG); - } - - /* If theres a File uploaded */ - } else { - /* Check if theres a file uploaded */ - if(!empty($_FILES['userfile']['name'])){ - - $handle = NULL; - - if((!isset($_FILES['userfile']['name']))||(!isset($_POST['fileup']))) - { - msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file not found")), ERROR_DIALOG); - $smarty->assign("LDIFError",TRUE); - } - elseif(!$_FILES['userfile']['size'] > 0 ) - { - msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file is empty")), ERROR_DIALOG); - $smarty->assign("LDIFError",TRUE); - } - /* Is there a tmp file, which we can use ? */ - elseif(!file_exists($_FILES['userfile']['tmp_name'])) - { - msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file not found")), ERROR_DIALOG); - $smarty->assign("LDIFError",TRUE); - } - elseif(!$handle = @fopen($_FILES['userfile']['tmp_name'],"r")) - { - msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file not readable")), ERROR_DIALOG); - $smarty->assign("LDIFError",TRUE); - } - else - { - $smarty->assign("fileup",TRUE); - $str = ""; - - - /* Reading content */ - while(!feof($handle)) { - $str .= fread($handle,1024); - } - - $lines = preg_split("/\n/",$str); - $anz = 0; - $rest = 0; - $data = array(); - - /* check colum count */ - if(is_array($lines)) - foreach($lines as $line) { - /* continue if theres a comment */ - if(substr(trim($line),0,1)=="#"){ - continue; - } - - $line= str_replace ("\t","",$line); - $cells = explode(",",$line ) ; - - if(count($cells)> $anz ){ - $anz = count($cells); - } - } - - /* At least one entry */ - if($anz >1) { - - /* Generate array with outpu info */ - if(is_array($lines)) - foreach($lines as $line) { - $rest = 0; - $cnt = 0; - - /* dont use comments or empty lines */ - if((substr(trim($line),0,1)=="#")||(empty($line))){ - continue; + if((!isset($_FILES['userfile']['name']))||(!isset($_POST['fileup']))) + { + msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file not found")), ERROR_DIALOG); + $smarty->assign("LDIFError",TRUE); + } + elseif(!$_FILES['userfile']['size'] > 0 ) + { + msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file is empty")), ERROR_DIALOG); + $smarty->assign("LDIFError",TRUE); + } + /* Is there a tmp file, which we can use ? */ + elseif(!file_exists($_FILES['userfile']['tmp_name'])) + { + msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file not found")), ERROR_DIALOG); + $smarty->assign("LDIFError",TRUE); } + elseif(!$handle = @fopen($_FILES['userfile']['tmp_name'],"r")) + { + msg_dialog::display(_("Error"), sprintf(_("Cannot read uploaded file: %s"), _("file not readable")), ERROR_DIALOG); + $smarty->assign("LDIFError",TRUE); + } + else + { + $smarty->assign("fileup",TRUE); + $str = ""; - /* replace \t to , */ - $line= str_replace ("\t" ,"" ,$line); - /* get all elements */ - $cells = explode(",",$line ) ; + /* Reading content */ + while(!feof($handle)) { + $str .= fread($handle,1024); + } - /* attach all elements to data array */ - if(is_array($cells)) - foreach($cells as $cell) { - if(!empty($cell)) { - $cnt++; - $data[]=trim($cell); + $lines = preg_split("/\n/",$str); + $anz = 0; + $rest = 0; + $data = array(); + + /* check colum count */ + if(is_array($lines)) + foreach($lines as $line) { + /* continue if theres a comment */ + if(substr(trim($line),0,1)=="#"){ + continue; + } + + $line= str_replace ("\t","",$line); + $cells = explode(",",$line ) ; + + if(count($cells)> $anz ){ + $anz = count($cells); + } + } + + /* At least one entry */ + if($anz >1) { + + /* Generate array with outpu info */ + if(is_array($lines)) + foreach($lines as $line) { + $rest = 0; + $cnt = 0; + + /* dont use comments or empty lines */ + if((substr(trim($line),0,1)=="#")||(empty($line))){ + continue; + } + + /* replace \t to , */ + $line= str_replace ("\t" ,"" ,$line); + + /* get all elements */ + $cells = explode(",",$line ) ; + + /* attach all elements to data array */ + if(is_array($cells)) + foreach($cells as $cell) { + if(!empty($cell)) { + $cnt++; + $data[]=trim($cell); + } + } + + /* cell count less than anz, attach some empty fields */ + if(($cnt != $anz)&&(!empty($cnt))) { + $rest = $anz - $cnt; + for($i = 0 ; $i < $rest ; $i ++){ + $data[] = " "; + } + } + } + + unset($this->csvinfo['sorteddata']); + unset($this->csvinfo['colsstr']); + unset($this->csvinfo['sorteddata']); + + $this->csvinfo['cols'] = $anz; + $this->csvinfo['data'] = array(); + $this->csvinfo['data'] = $data; + $this->csvinfo['count'] = count($this->csvinfo['data']); + + if($this->csvinfo['count']> (6* $this->csvinfo['cols'])) { + /* only show 6 rows in ouptuttablei */ + $datouttemp = array_chunk($this->csvinfo['data'],(6* $this->csvinfo['cols'])); + $this->csvinfo['dataout']=$datouttemp[0]; + $this->csvinfo['shownrowscount'] = 6; + } else { + $this->csvinfo['shownrowscount'] = (count($this->csvinfo['data']))/$this->csvinfo['cols']; + $this->csvinfo['dataout']= $this->csvinfo['data']; + } + + $this->csvinfo['tplid'] = $_POST['template']; + $this->csvinfo['templatestr'] = $this->csvinfo['arrtemplates' ][$this->csvinfo['tplid']]; + $this->csvinfo['count'] = count($this->csvinfo['data']); + $this->csvinfo['rows'] = (count($this->csvinfo['data'])/$anz); + + $i = 0; + $tmp = $tmp2= array(); + if(is_array($this->csvinfo['dataout'])) + foreach($this->csvinfo['dataout'] as $dat){ + $tmp[]= $dat; + $i++; + if($i >=$this->csvinfo['cols']){ + $i = 0; + $tmp2[] = $tmp; + $tmp = array(); + } + + } + + /* Set Templateid */ + $smarty->assign("tplid",$this->csvinfo['tplid']); + + /* Set Template */ + $smarty->assign("tpl",$this->csvinfo['templatestr']); + + /* Temp var 1 */ + $smarty->assign("ia",1); + + /* Temp var 2 */ + $smarty->assign("i",0); + + /* Num rows */ + $smarty->assign("rows",$this->csvinfo['shownrowscount']); + + + for($i = 0 ; $i < $anz; $i ++) + $this->csvinfo['arr_selected'][]="0"; + + $smarty->assign("selectedattrs",$this->csvinfo['arr_selected']); + + /* Entrie count5 */ + $smarty->assign("anz",$this->csvinfo['cols']); + + /* Array with data */ + $smarty->assign("data",$tmp2); + + @fclose($handle); + } else { + $smarty->assign("tpl",$this->csvinfo['attr'][$_POST['template']]); + $smarty->assign("LDIFError",TRUE); + $smarty->assign("fileup",FALSE); + msg_dialog::display(_("Error"), _("Cannot find CSV data in the selected file!"), ERROR_DIALOG); } - } - - /* cell count less than anz, attach some empty fields */ - if(($cnt != $anz)&&(!empty($cnt))) { - $rest = $anz - $cnt; - for($i = 0 ; $i < $rest ; $i ++){ - $data[] = " "; - } } - } - - unset($this->csvinfo['sorteddata']); - unset($this->csvinfo['colsstr']); - unset($this->csvinfo['sorteddata']); - - $this->csvinfo['cols'] = $anz; - $this->csvinfo['data'] = array(); - $this->csvinfo['data'] = $data; - $this->csvinfo['count'] = count($this->csvinfo['data']); - - if($this->csvinfo['count']> (6* $this->csvinfo['cols'])) { - /* only show 6 rows in ouptuttablei */ - $datouttemp = array_chunk($this->csvinfo['data'],(6* $this->csvinfo['cols'])); - $this->csvinfo['dataout']=$datouttemp[0]; - $this->csvinfo['shownrowscount'] = 6; - } else { - $this->csvinfo['shownrowscount'] = (count($this->csvinfo['data']))/$this->csvinfo['cols']; - $this->csvinfo['dataout']= $this->csvinfo['data']; } + } - $this->csvinfo['tplid'] = $_POST['template']; - $this->csvinfo['templatestr'] = $this->csvinfo['arrtemplates' ][$this->csvinfo['tplid']]; - $this->csvinfo['count'] = count($this->csvinfo['data']); - $this->csvinfo['rows'] = (count($this->csvinfo['data'])/$anz); - - $i = 0; - $tmp = $tmp2= array(); - if(is_array($this->csvinfo['dataout'])) - foreach($this->csvinfo['dataout'] as $dat){ - $tmp[]= $dat; - $i++; - if($i >=$this->csvinfo['cols']){ - $i = 0; - $tmp2[] = $tmp; - $tmp = array(); - } - - } - - /* Set Templateid */ - $smarty->assign("tplid",$this->csvinfo['tplid']); - - /* Set Template */ - $smarty->assign("tpl",$this->csvinfo['templatestr']); - - /* Temp var 1 */ - $smarty->assign("ia",1); - - /* Temp var 2 */ - $smarty->assign("i",0); - - /* Num rows */ - $smarty->assign("rows",$this->csvinfo['shownrowscount']); - - - for($i = 0 ; $i < $anz; $i ++) - $this->csvinfo['arr_selected'][]="0"; - - $smarty->assign("selectedattrs",$this->csvinfo['arr_selected']); - - /* Entrie count5 */ - $smarty->assign("anz",$this->csvinfo['cols']); - - /* Array with data */ - $smarty->assign("data",$tmp2); - - @fclose($handle); - } else { - $smarty->assign("tpl",$this->csvinfo['attr'][$_POST['template']]); - $smarty->assign("LDIFError",TRUE); - $smarty->assign("fileup",FALSE); - msg_dialog::display(_("Error"), _("Cannot find CSV data in the selected file!"), ERROR_DIALOG); - } - } - } - } - - /* Show main page */ - return ($smarty->fetch (get_template_path('contentcsv.tpl', TRUE))); - } + /* Show main page */ + return ($smarty->fetch (get_template_path('contentcsv.tpl', TRUE))); + } } -- 2.30.2