Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
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
3ec42ad5
Commit
3ec42ad5
authored
Nov 28, 2014
by
Joas Schilling
Browse files
Split office providers into one class per file
parent
9cb54e38
Changes
8
Hide whitespace changes
Inline
Side-by-side
lib/private/preview.php
View file @
3ec42ad5
...
...
@@ -16,7 +16,6 @@ namespace OC;
use
OC\Preview\Provider
;
use
OCP\Files\NotFoundException
;
require_once
'preview/office-cl.php'
;
require_once
'preview/bitmap.php'
;
class
Preview
{
...
...
lib/private/preview/msoffice2003.php
0 → 100644
View file @
3ec42ad5
<?php
/**
* Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace
OC\Preview
;
//.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m)
class
MSOffice2003
extends
Office
{
/**
* {@inheritDoc}
*/
public
function
getMimeType
()
{
return
'/application\/vnd.ms-.*/'
;
}
}
lib/private/preview/msoffice2007.php
0 → 100644
View file @
3ec42ad5
<?php
/**
* Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace
OC\Preview
;
//.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
class
MSOffice2007
extends
Office
{
/**
* {@inheritDoc}
*/
public
function
getMimeType
()
{
return
'/application\/vnd.openxmlformats-officedocument.*/'
;
}
}
lib/private/preview/msofficedoc.php
0 → 100644
View file @
3ec42ad5
<?php
/**
* Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace
OC\Preview
;
//.doc, .dot
class
MSOfficeDoc
extends
Office
{
/**
* {@inheritDoc}
*/
public
function
getMimeType
()
{
return
'/application\/msword/'
;
}
}
lib/private/preview/office-cl.php
deleted
100644 → 0
View file @
9cb54e38
<?php
/**
* Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace
OC\Preview
;
//we need imagick to convert
class
Office
extends
Provider
{
private
$cmd
;
public
function
getMimeType
()
{
return
null
;
}
public
function
getThumbnail
(
$path
,
$maxX
,
$maxY
,
$scalingup
,
$fileview
)
{
$this
->
initCmd
();
if
(
is_null
(
$this
->
cmd
))
{
return
false
;
}
$absPath
=
$fileview
->
toTmpFile
(
$path
);
$tmpDir
=
get_temp_dir
();
$defaultParameters
=
' -env:UserInstallation=file://'
.
escapeshellarg
(
$tmpDir
.
'/owncloud-'
.
\
OC_Util
::
getInstanceId
()
.
'/'
)
.
' --headless --nologo --nofirststartwizard --invisible --norestore --convert-to pdf --outdir '
;
$clParameters
=
\
OCP\Config
::
getSystemValue
(
'preview_office_cl_parameters'
,
$defaultParameters
);
$exec
=
$this
->
cmd
.
$clParameters
.
escapeshellarg
(
$tmpDir
)
.
' '
.
escapeshellarg
(
$absPath
);
shell_exec
(
$exec
);
//create imagick object from pdf
try
{
$pdf
=
new
\
imagick
(
$absPath
.
'.pdf'
.
'[0]'
);
$pdf
->
setImageFormat
(
'jpg'
);
}
catch
(
\
Exception
$e
)
{
unlink
(
$absPath
);
unlink
(
$absPath
.
'.pdf'
);
\
OC_Log
::
write
(
'core'
,
$e
->
getmessage
(),
\
OC_Log
::
ERROR
);
return
false
;
}
$image
=
new
\
OC_Image
();
$image
->
loadFromData
(
$pdf
);
unlink
(
$absPath
);
unlink
(
$absPath
.
'.pdf'
);
return
$image
->
valid
()
?
$image
:
false
;
}
private
function
initCmd
()
{
$cmd
=
''
;
if
(
is_string
(
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
)))
{
$cmd
=
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
);
}
$whichLibreOffice
=
shell_exec
(
'command -v libreoffice'
);
if
(
$cmd
===
''
&&
!
empty
(
$whichLibreOffice
))
{
$cmd
=
'libreoffice'
;
}
$whichOpenOffice
=
shell_exec
(
'command -v openoffice'
);
if
(
$cmd
===
''
&&
!
empty
(
$whichOpenOffice
))
{
$cmd
=
'openoffice'
;
}
if
(
$cmd
===
''
)
{
$cmd
=
null
;
}
$this
->
cmd
=
$cmd
;
}
}
//.doc, .dot
class
MSOfficeDoc
extends
Office
{
public
function
getMimeType
()
{
return
'/application\/msword/'
;
}
}
//.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m)
class
MSOffice2003
extends
Office
{
public
function
getMimeType
()
{
return
'/application\/vnd.ms-.*/'
;
}
}
//.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
class
MSOffice2007
extends
Office
{
public
function
getMimeType
()
{
return
'/application\/vnd.openxmlformats-officedocument.*/'
;
}
}
//.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt
class
OpenDocument
extends
Office
{
public
function
getMimeType
()
{
return
'/application\/vnd.oasis.opendocument.*/'
;
}
}
//.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
class
StarOffice
extends
Office
{
public
function
getMimeType
()
{
return
'/application\/vnd.sun.xml.*/'
;
}
}
lib/private/preview/office.php
0 → 100644
View file @
3ec42ad5
<?php
/**
* Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace
OC\Preview
;
abstract
class
Office
extends
Provider
{
private
$cmd
;
/**
* {@inheritDoc}
*/
public
function
getThumbnail
(
$path
,
$maxX
,
$maxY
,
$scalingup
,
$fileview
)
{
$this
->
initCmd
();
if
(
is_null
(
$this
->
cmd
))
{
return
false
;
}
$absPath
=
$fileview
->
toTmpFile
(
$path
);
$tmpDir
=
get_temp_dir
();
$defaultParameters
=
' -env:UserInstallation=file://'
.
escapeshellarg
(
$tmpDir
.
'/owncloud-'
.
\
OC_Util
::
getInstanceId
()
.
'/'
)
.
' --headless --nologo --nofirststartwizard --invisible --norestore --convert-to pdf --outdir '
;
$clParameters
=
\
OCP\Config
::
getSystemValue
(
'preview_office_cl_parameters'
,
$defaultParameters
);
$exec
=
$this
->
cmd
.
$clParameters
.
escapeshellarg
(
$tmpDir
)
.
' '
.
escapeshellarg
(
$absPath
);
shell_exec
(
$exec
);
//create imagick object from pdf
try
{
$pdf
=
new
\
imagick
(
$absPath
.
'.pdf'
.
'[0]'
);
$pdf
->
setImageFormat
(
'jpg'
);
}
catch
(
\
Exception
$e
)
{
unlink
(
$absPath
);
unlink
(
$absPath
.
'.pdf'
);
\
OC_Log
::
write
(
'core'
,
$e
->
getmessage
(),
\
OC_Log
::
ERROR
);
return
false
;
}
$image
=
new
\
OC_Image
();
$image
->
loadFromData
(
$pdf
);
unlink
(
$absPath
);
unlink
(
$absPath
.
'.pdf'
);
return
$image
->
valid
()
?
$image
:
false
;
}
private
function
initCmd
()
{
$cmd
=
''
;
if
(
is_string
(
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
)))
{
$cmd
=
\
OC_Config
::
getValue
(
'preview_libreoffice_path'
,
null
);
}
$whichLibreOffice
=
shell_exec
(
'command -v libreoffice'
);
if
(
$cmd
===
''
&&
!
empty
(
$whichLibreOffice
))
{
$cmd
=
'libreoffice'
;
}
$whichOpenOffice
=
shell_exec
(
'command -v openoffice'
);
if
(
$cmd
===
''
&&
!
empty
(
$whichOpenOffice
))
{
$cmd
=
'openoffice'
;
}
if
(
$cmd
===
''
)
{
$cmd
=
null
;
}
$this
->
cmd
=
$cmd
;
}
}
lib/private/preview/opendocument.php
0 → 100644
View file @
3ec42ad5
<?php
/**
* Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace
OC\Preview
;
//.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt
class
OpenDocument
extends
Office
{
/**
* {@inheritDoc}
*/
public
function
getMimeType
()
{
return
'/application\/vnd.oasis.opendocument.*/'
;
}
}
lib/private/preview/staroffice.php
0 → 100644
View file @
3ec42ad5
<?php
/**
* Copyright (c) 2013 Georg Ehrke georg@ownCloud.com
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace
OC\Preview
;
//.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
class
StarOffice
extends
Office
{
/**
* {@inheritDoc}
*/
public
function
getMimeType
()
{
return
'/application\/vnd.sun.xml.*/'
;
}
}
Write
Preview
Markdown
is supported
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