diff --git a/lib/util/ktutil.inc b/lib/util/ktutil.inc index a8db060..c4eadb9 100644 --- a/lib/util/ktutil.inc +++ b/lib/util/ktutil.inc @@ -229,7 +229,9 @@ class KTUtil { if (!is_array($aArray)) { $aArray = (array) $aArray; } - if (empty($aArray)) { + + // Evaluates to false if $aArray is not set or if it has zero length (ie. it's first character is not set). + if (!isset($aArray{0})) { return $mDefault; } if (array_key_exists($sKey, $aArray)) { diff --git a/search2/indexing/extractorCore.inc.php b/search2/indexing/extractorCore.inc.php index 36ec73c..b205fba 100644 --- a/search2/indexing/extractorCore.inc.php +++ b/search2/indexing/extractorCore.inc.php @@ -360,7 +360,9 @@ abstract class ExternalDocumentExtractor extends DocumentExtractor $temp_dir = $config->get('urls/tmpDirectory'); $res = 0; - $script_prefix = $temp_dir . '/' . time(); + $docid = $this->document->getId(); + + $script_prefix = $temp_dir . '/' . time() . '-' . $docid; $script_out = $script_prefix . '.out'; // define the scripts that we want @@ -380,7 +382,7 @@ abstract class ExternalDocumentExtractor extends DocumentExtractor $script = "#!/bin/sh\n"; $script .= "# This is an auto generated file. \n"; - $script .= $cmd . ' 2>>"' . $script_out . '" >>"' . $script_out . "\"\n"; + $script .= $cmd . ' 2>>"' . $script_out . "\"\n"; $script .= "exit $?\n"; } diff --git a/search2/indexing/extractors/OpenXmlTextExtractor.inc.php b/search2/indexing/extractors/OpenXmlTextExtractor.inc.php index cb01a12..b1baf72 100644 --- a/search2/indexing/extractors/OpenXmlTextExtractor.inc.php +++ b/search2/indexing/extractors/OpenXmlTextExtractor.inc.php @@ -144,16 +144,10 @@ class OpenXmlTextExtractor extends ExternalDocumentExtractor $config = KTConfig::getSingleton(); $temp_dir = $config->get('urls/tmpDirectory'); - $time = 'openxml_'. time(); + $docid = $this->document->getId(); + $time = 'openxml_'. time() . '-' . $docid; $this->openxml_dir = $temp_dir . '/' . $time; - if (!mkdir($this->openxml_dir)) - { - $this->output = _kt('Could not create folder: ') . $this->openxml_dir; - return false; - } - - $cmd = $this->unzip . ' ' . str_replace( array('{source}','{part}', '{target_dir}'), array($this->sourcefile, '\[Content_Types\].xml',$this->openxml_dir), $this->unzip_params); @@ -282,13 +276,15 @@ class OpenXmlTextExtractor extends ExternalDocumentExtractor if ($result === false) { $this->output = _kt('Could not save content to file: ') . $this->targetfile; - @rmdir($this->openxml_dir); + KTUtil::deleteDirectory($this->openxml_dir); return false; } } - @rmdir($this->openxml_dir); + KTUtil::deleteDirectory($this->openxml_dir); + return true; } + KTUtil::deleteDirectory($this->openxml_dir); return false; diff --git a/search2/indexing/indexerCore.inc.php b/search2/indexing/indexerCore.inc.php index a6435c7..a40b47f 100644 --- a/search2/indexing/indexerCore.inc.php +++ b/search2/indexing/indexerCore.inc.php @@ -795,6 +795,11 @@ abstract class Indexer public function getExtractor($extractorClass) { + if (empty($extractorClass)) + { + return null; + } + $includeFile = SEARCH2_INDEXER_DIR . 'extractors/' . $extractorClass . '.inc.php'; if (!file_exists($includeFile)) {