Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
die_coolen_jungs
our_own_cloud_project
Commits
28cf63d3
Commit
28cf63d3
authored
Jun 11, 2013
by
Georg Ehrke
Browse files
check if imagick is loaded in office.php, not in libreoffice-cl.php
parent
2ff97917
Changes
2
Hide whitespace changes
Inline
Side-by-side
lib/preview/libreoffice-cl.php
View file @
28cf63d3
...
...
@@ -8,71 +8,66 @@
namespace
OC\Preview
;
//we need imagick to convert
if
(
extension_loaded
(
'imagick'
))
{
class
Office
extends
Provider
{
class
Office
extends
Provider
{
private
$cmd
;
private
$cmd
;
public
function
getMimeType
()
{
return
null
;
}
public
function
getMimeType
()
{
return
null
;
public
function
getThumbnail
(
$path
,
$maxX
,
$maxY
,
$scalingup
,
$fileview
)
{
$this
->
initCmd
();
if
(
is_null
(
$this
->
cmd
))
{
return
false
;
}
public
function
getThumbnail
(
$path
,
$maxX
,
$maxY
,
$scalingup
,
$fileview
)
{
$this
->
initCmd
();
if
(
is_null
(
$this
->
cmd
))
{
return
false
;
}
$abspath
=
$fileview
->
toTmpFile
(
$path
);
$abspath
=
$fileview
->
toTmpFile
(
$path
);
$tmpdir
=
get_temp_dir
(
);
$tmpdir
=
get_temp_dir
();
$exec
=
$this
->
cmd
.
' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir '
.
escapeshellarg
(
$tmpdir
)
.
' '
.
escapeshellarg
(
$abspath
);
$export
=
'export HOME=/'
.
$tmpdir
;
$exec
=
$this
->
cmd
.
' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir '
.
escapeshellarg
(
$tmpdir
)
.
' '
.
escapeshellarg
(
$abspath
);
$export
=
'export HOME=/'
.
$tmpdir
;
shell_exec
(
$export
.
"
\n
"
.
$exec
);
shell_exec
(
$export
.
"
\n
"
.
$exec
);
//create imagick object from pdf
try
{
$pdf
=
new
\
imagick
(
$abspath
.
'.pdf'
.
'[0]'
);
$pdf
->
setImageFormat
(
'jpg'
);
}
catch
(
\
Exception
$e
){
\
OC_Log
::
write
(
'core'
,
$e
->
getmessage
(),
\
OC_Log
::
ERROR
);
return
false
;
}
//create imagick object from pdf
try
{
$pdf
=
new
\
imagick
(
$abspath
.
'.pdf'
.
'[0]'
);
$pdf
->
setImageFormat
(
'jpg'
);
}
catch
(
\
Exception
$e
){
\
OC_Log
::
write
(
'core'
,
$e
->
getmessage
(),
\
OC_Log
::
ERROR
);
return
false
;
}
$image
=
new
\
OC_Image
(
$pdf
);
$image
=
new
\
OC_Image
(
$pdf
);
unlink
(
$abspath
);
unlink
(
$abspath
.
'.pdf'
);
unlink
(
$abspath
)
;
unlink
(
$abspath
.
'.pdf'
);
return
$image
->
valid
()
?
$image
:
false
;
}
if
(
!
$image
->
valid
())
return
false
;
private
function
initCmd
()
{
$cmd
=
''
;
return
$image
;
if
(
is_string
(
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
)))
{
$cmd
=
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
);
}
private
function
initCmd
()
{
$cmd
=
''
;
if
(
is_string
(
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
)))
{
$cmd
=
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
);
}
if
(
$cmd
===
''
&&
shell_exec
(
'libreoffice --headless --version'
))
{
$cmd
=
'libreoffice'
;
}
if
(
$cmd
===
''
&&
shell_exec
(
'openoffice --headless --version'
))
{
$cmd
=
'openoffice'
;
}
if
(
$cmd
===
''
&&
shell_exec
(
'libreoffice --headless --version'
))
{
$cmd
=
'libreoffice'
;
}
if
(
$cmd
===
''
)
{
$cmd
=
null
;
}
if
(
$cmd
===
''
&&
shell_exec
(
'openoffice --headless --version'
)
)
{
$cmd
=
'openoffice'
;
}
$this
->
cmd
=
$cmd
;
if
(
$cmd
===
''
)
{
$cmd
=
null
;
}
$this
->
cmd
=
$cmd
;
}
}
...
...
lib/preview/office.php
View file @
28cf63d3
...
...
@@ -5,11 +5,14 @@
* later.
* See the COPYING-README file.
*/
//let's see if there is libreoffice or openoffice on this machine
if
(
shell_exec
(
'libreoffice --headless --version'
)
||
shell_exec
(
'openoffice --headless --version'
)
||
is_string
(
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
)))
{
require_once
(
'libreoffice-cl.php'
);
}
else
{
//in case there isn't, use our fallback
require_once
(
'msoffice.php'
);
require_once
(
'opendocument.php'
);
//both, libreoffice backend and php fallback, need imagick
if
(
extension_loaded
(
'imagick'
))
{
//let's see if there is libreoffice or openoffice on this machine
if
(
shell_exec
(
'libreoffice --headless --version'
)
||
shell_exec
(
'openoffice --headless --version'
)
||
is_string
(
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
)))
{
require_once
(
'libreoffice-cl.php'
);
}
else
{
//in case there isn't, use our fallback
require_once
(
'msoffice.php'
);
require_once
(
'opendocument.php'
);
}
}
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment