You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.9 KiB
PHP
75 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* ownCloud - Documents App
|
|
*
|
|
* @author Victor Dubiniuk
|
|
* @copyright 2014 Victor Dubiniuk victor.dubiniuk@gmail.com
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later.
|
|
*/
|
|
|
|
namespace OCA\Documents;
|
|
|
|
class Config {
|
|
const APP_NAME = 'documents';
|
|
const TEST_DOC_PATH = '/assets/test.doc';
|
|
|
|
public static function testConversion(){
|
|
$targetFilter = 'odt:writer8';
|
|
$targetExtension = 'odt';
|
|
$input = file_get_contents(dirname(__DIR__) . self::TEST_DOC_PATH);
|
|
$infile = \OCP\Files::tmpFile();
|
|
$outdir = \OCP\Files::tmpFolder();
|
|
$outfile = $outdir . '/' . basename($infile) . '.' . $targetExtension;
|
|
$cmd = Helper::findOpenOffice();
|
|
|
|
$params = ' --headless --convert-to ' . escapeshellarg($targetFilter) . ' --outdir '
|
|
. escapeshellarg($outdir)
|
|
. ' --writer '. escapeshellarg($infile)
|
|
. ' -env:UserInstallation=file://' . escapeshellarg(get_temp_dir()) . ' 2>&1'
|
|
;
|
|
file_put_contents($infile, $input);
|
|
|
|
$result = shell_exec($cmd . $params);
|
|
$exists = file_exists($outfile);
|
|
|
|
if (!$exists){
|
|
Helper::warnLog('Conversion test failed. Raw output:' . $result);
|
|
return false;
|
|
} else {
|
|
unlink($outfile);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public static function getL10n(){
|
|
return \OCP\Util::getL10N(self::APP_NAME);
|
|
}
|
|
|
|
public static function getConverter(){
|
|
return self::getAppValue('converter', 'off');
|
|
}
|
|
|
|
public static function setConverter($value){
|
|
return self::setAppValue('converter', $value);
|
|
}
|
|
|
|
public static function getConverterUrl(){
|
|
return self::getAppValue('converter_url', 'http://localhost:16080');
|
|
}
|
|
|
|
public static function setConverterUrl($value){
|
|
return self::setAppValue('converter_url', $value);
|
|
}
|
|
|
|
protected static function getAppValue($key, $default){
|
|
return \OCP\Config::getAppValue(self::APP_NAME, $key, $default);
|
|
}
|
|
|
|
protected static function setAppValue($key, $value){
|
|
return \OCP\Config::setAppValue(self::APP_NAME, $key, $value);
|
|
}
|
|
|
|
} |