. * * You can contact KnowledgeTree Inc., PO Box 7775 #87847, San Francisco, * California 94120-7775, or email info@knowledgetree.com. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU General Public License version 3. * * In accordance with Section 7(b) of the GNU General Public License version 3, * these Appropriate Legal Notices must retain the display of the "Powered by * KnowledgeTree" logo and retain the original copyright notice. If the display of the * logo is not reasonably feasible for technical reasons, the Appropriate Legal Notices * must display the words "Powered by KnowledgeTree" and retain the original * copyright notice. * Contributor( s): ______________________________________ * */ require_once(KT_DIR . '/plugins/ktstandard/contents/BaseIndexer.php'); class KTWordIndexerTrigger extends KTBaseIndexerTrigger { var $mimetypes = array( 'application/msword' => true, ); var $command = 'catdoc'; // could be any application. var $commandconfig = 'indexer/catdoc'; // could be any application. var $args = array("-w", "-d", "UTF-8"); var $use_pipes = true; function extract_contents($sFilename, $sTempFilename) { if (OS_WINDOWS) { $this->command = 'c:\antiword\antiword.exe'; $this->commandconfig = 'indexer/antiword'; $this->args = array(); } putenv('LANG=en_US.UTF-8'); $sCommand = KTUtil::findCommand($this->commandconfig, $this->command); if (empty($sCommand)) { return false; } if (OS_WINDOWS) { $sDir = dirname(dirname($sCommand)); putenv('HOME=' . $sDir); } return parent::extract_contents($sFilename, $sTempFilename); } function findLocalCommand() { if (OS_WINDOWS) { $this->command = 'c:\antiword\antiword.exe'; $this->commandconfig = 'indexer/antiword'; $this->args = array(); } $sCommand = KTUtil::findCommand($this->commandconfig, $this->command); return $sCommand; } function getDiagnostic() { $sCommand = $this->findLocalCommand(); // can't find the local command. if (empty($sCommand)) { return sprintf(_kt('Unable to find required command for indexing. Please ensure that %s is installed and in the %s Path. For more information on indexers and helper applications, please visit the %s site.'), $this->command, APP_NAME, $this->support_url, APP_NAME); } return null; } } ?>