$lineRangeTo) : $lineRangeFrom = 0; $lineRangeTo = PHP_INT_MAX; endif;
$fp = @fopen($filename, "r" ) or die("Konnte Datei nicht öffnen.");
$data = array(); // Empty array for data
// loop to eof
$i = 0;
$count = 0;
while(!feof($fp)) {
$line = fgetcsv($fp, 4096, $delimiter); // Read line with delimiter (default = ";")
if (!is_array($line)) continue;
// Check range
$doRead = true;
if ($count < $lineRangeFrom) : $doRead = false; endif;
if ($count > $lineRangeTo) : $doRead = false; endif;
// Matrix of data (each element of data is a row, one row is a array of fields)
if ($doRead) :
$lineLen = count($line);
for ($j = 0; $j < $lineLen; $j++) {
if ($removeDbSigns != "") :
$line[$j] = str_replace("'", "", $line[$j]);
endif;
$data[$i][$j] = myStrCheck($line[$j]);
}
$i++;
endif;
$count++;
}
fclose($fp);
return $data;
}
function importDataset ($filename) {
$fp = @fopen($filename, "r" ) or die("Konnte Datei nicht öffnen.");
$data = array(); // Empty array for data
// loop to eof
$i = 0;
while(!feof($fp)) {
$line = fgets($fp); // Read line
$line = trim($line);
if ($line != "") :
$data[$i] = myStrCheck($line); // Escape string
$i++;
endif;
}
fclose($fp);
return $data;
}
function writeExportLog($logText) {
global $write2logfile, $db_log_file;
if ($write2logfile == "1") :
$fileHandle = fopen($db_log_file, 'a');
fwrite($fileHandle, $logText . "\n");
fclose($fileHandle);
endif;
return;
}
function writeImportLog($logText) {
global $write2logfile, $logFile;
if ($write2logfile == "1") :
$fileHandle = fopen($logFile, 'a');
fwrite($fileHandle, $logText . "\n");
fclose($fileHandle);
endif;
return;
}
function removeFile($fileName, $path = "", $pathSeparator = "/") {
$retVal = "";
if ($fileName != "") :
// Set complete path
if ($path != "") :
if (substr($path, -1) != $pathSeparator ) :
$path .= $pathSeparator;
endif;
$fileName = $path . $fileName;
endif;
// Check existence of the file
if (file_exists($fileName)) :
unlink($fileName);
$retVal = "0";
else :
$retVal = "-2"; // No file in directory
endif;
else :
$retVal = "-1"; // No file name specified
endif;
return $retVal;
}
function getNumOfFilesInFolder($path) {
$retVal = 0;
if (file_exists($path)) :
if ($handle = opendir($path)) :
while (false !== ($file = readdir($handle))) :
if ($file != "." && $file != "..") {
$retVal++;
}
endwhile;
closedir($handle);
endif;
else :
$retVal = "-1"; // Folder does not exist
endif;
return $retVal;
}
function getNumOfFilesByFilterInFolder($path, $filter = "", $prefix = "") {
$retVal = 0;
if (file_exists($path)) :
if ($handle = opendir($path)) :
while (false !== ($file = readdir($handle))) :
if ($file != "." && $file != "..") {
if ($filter == "") :
$retVal++;
else :
// Count files according to filter in "$filter" only
if ($prefix = "1") :
if (substr($file,0,strlen($filter)) == $filter) :
$retVal++;
endif;
else :
if (!(strpos($file, $filter) === FALSE)) :
$retVal++;
endif;
endif;
endif;
}
endwhile;
closedir($handle);
endif;
else :
$retVal = "-1"; // Folder does not exist
endif;
return $retVal;
}
function getFilenamesInFolder($path) {
$retVal = array();
if (file_exists($path)) :
if ($handle = opendir($path)) :
while (false !== ($file = readdir($handle))) :
if ($file != "." && $file != "..") {
$retVal[] = $file;
}
endwhile;
closedir($handle);
endif;
else :
$retVal = "-1"; // Folder does not exist
endif;
return $retVal;
}
// Find files in a specified directory with specified extensions (searches recursive in subfolders)
// Call function with :
// $htmlfiles = findfile('/some/dir','/\.(htm|html)$/');
function findfile($location='',$fileregex='') {
if (!$location or !is_dir($location) or !$fileregex) {
return false;
}
$matchedfiles = array();
$all = opendir($location);
while ($file = readdir($all)) {
if (is_dir($location.'/'.$file) and $file <> ".." and $file <> ".") {
$subdir_matches = findfile($location.'/'.$file,$fileregex);
$matchedfiles = array_merge($matchedfiles,$subdir_matches);
unset($file);
}
elseif (!is_dir($location.'/'.$file)) {
if (preg_match($fileregex,$file)) {
array_push($matchedfiles,$location.'/'.$file);
}
}
}
closedir($all);
unset($all);
return $matchedfiles;
}
function deleteTables($tableName, $whereClause = "") {
global $db, $PHP_SELF;
$sqlquery = "DELETE FROM " . $tableName;
if ($whereClause != "") : $sqlquery .= " WHERE " . $whereClause; endif;
$result = $db->query($sqlquery);
if (DB::isError($result)) die ("$PHP_SELF:
$sqlquery
" . $result->getMessage());
writeExportLog("DELETE TABLE " . $tableName);
echo "DELETE TABLE: " . $tableName . "
";
}
// Depending on the mode some directories are excluded by navigation except the current employee is administrator
function checkForPredefinedDirectories($pathToCompare) {
global $hq_id;
$retBool = true;
// Check for path to customer data
$dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_CS", $hq_id);
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_CS", "0"); endif;
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = "90b1a8efc903576bbb2d6e2a79b00a5e"; endif;
if ($pathToCompare == $dirSpecialForObjType) : $retBool = false; endif;
// Check for path to courier data
if ($retBool) :
$dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_CR", $hq_id);
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_CR", "0"); endif;
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = "f697836ccbee1a08ff752f5510049f6e"; endif;
if ($pathToCompare == $dirSpecialForObjType) : $retBool = false; endif;
endif;
// Check for path to couriervehicle data
if ($retBool) :
$dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_CRVH", $hq_id);
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_CRVH", "0"); endif;
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = "7bb0357ar00a5u89ob1e3c9b2d6e2a79"; endif;
if ($pathToCompare == $dirSpecialForObjType) : $retBool = false; endif;
endif;
// Check for path to employee data
if ($retBool) :
$dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_EMP", $hq_id);
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_EMP", "0"); endif;
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = "yxj5fr3gz7uau378cf4gh2fcnh67i7gh"; endif;
if ($pathToCompare == $dirSpecialForObjType) : $retBool = false; endif;
endif;
// Check for path to job data
if ($retBool) :
$dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_JB", $hq_id);
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = getParameterValue("0", "DATATRANSFER_DIRECTORY_JB", "0"); endif;
if ($dirSpecialForObjType == "") : $dirSpecialForObjType = "a547bc4b2a91355a3aba3ed0827cf6f2"; endif;
if ($pathToCompare == $dirSpecialForObjType) : $retBool = false; endif;
endif;
// ...
return $retBool;
}
// Get path for object data (e.g. customer data with objType = "CS")
function getPathForObjectData ($basePath, $objType = "CS") {
global $hq_id;
$basePath = trim($basePath);
if ($basePath != "") :
$objDirSpecial = getParameterValue("0", "DATATRANSFER_DIRECTORY_" . $objType, $hq_id);
if ($objDirSpecial == "") : $objDirSpecial = getParameterValue("0", "DATATRANSFER_DIRECTORY_" . $objType, "0"); endif;
if ($objDirSpecial != "") :
$basePath .= $objDirSpecial . "/";
endif;
// Get parameter for usage the headquarters as sub-paths
$parUseHqPath = getParameterValue("0", "DATATRANSFER_HQ_PATH_" . $objType . "_ENABLED", $hq_id);
if ($parUseHqPath == "") : $parUseHqPath = getParameterValue("0", "DATATRANSFER_HQ_PATH_" . $objType . "_ENABLED", "0"); endif;
if ($parUseHqPath == "1") :
$hqMnemonic = getFieldValueFromId("headquarters","hq_id",$hq_id,"hq_mnemonic");
if ($hqMnemonic != "") :
$basePath .= $hqMnemonic . "/";
endif;
endif;
endif;
return $basePath;
}
// If uploaded file is associated to a special object (e.g. customer document, courier document, etc.),
// insert or update in REDUNDANT structure ("gdc") because of performance by displaying lists (customer list, courier list, job list, etc.)!
function gdcSetNumberOfDocuments ($docLocalDirCurrent, $objType, $objId, $fileFilterPrefix) {
if ($docLocalDirCurrent != "" && $objType != "" && $objId != "" && $fileFilterPrefix != "") :
$objType = strtolower($objType);
$objNumOfFiles = getNumOfFilesByFilterInFolder($docLocalDirCurrent, $fileFilterPrefix, "1");
if (existsEntry("genericdatacontainer", array("gdc_obj_type", $objType, "gdc_gen_fieldname", "num_of_documents", "gdc_obj_id", $objId))) :
updateStmt("genericdatacontainer", "gdc_obj_id", $objId, array("gdc_content",$objNumOfFiles), "gdc_obj_type = '" . $objType . "' AND gdc_gen_fieldname = 'num_of_documents'");
else :
insertStmt("genericdatacontainer", array("gdc_obj_type", $objType, "gdc_gen_fieldname", "num_of_documents", "gdc_obj_id", $objId, "gdc_content", $objNumOfFiles, "gdc_context", ""));
endif;
endif;
}
?>