// Routing
$this->create('core_ajax_routes', '/core/routes.json')
->action('OC_Router', 'JSRoutes');
+OC::$CLASSPATH['OC\PreviewManager'] = 'lib/preview.php';
$this->create('core_ajax_preview', '/core/preview.png')
- ->action('OC\Preview', 'previewRouter');
+ ->action('OC\PreviewManager', 'previewRouter');
$this->create('core_ajax_trashbin_preview', '/core/trashbinpreview.png')
- ->action('OC\Preview', 'trashbinPreviewRouter');
+ ->action('OC\PreviewManager', 'trashbinPreviewRouter');
$this->create('core_ajax_public_preview', '/core/publicpreview.png')
- ->action('OC\Preview', 'publicPreviewRouter');
+ ->action('OC\PreviewManager', 'publicPreviewRouter');
OC::$CLASSPATH['OC_Core_LostPassword_Controller'] = 'core/lostpassword/controller.php';
$this->create('core_lostpassword_index', '/lostpassword/')
->get()
//preview images object
private $preview;
- //preview providers
- static private $providers = array();
- static private $registeredProviders = array();
-
/**
* @brief check if thumbnail or bigger version of thumbnail of file is cached
* @param string $user userid - if no user is given, OC_User::getUser will be used
$this->preview = null;
//check if there are preview backends
- if(empty(self::$providers)) {
- self::initProviders();
+ $providers = PreviewManager::getProviders();
+ if(empty($providers)) {
+ PreviewManager::initProviders();
}
- if(empty(self::$providers)) {
+ $providers = PreviewManager::getProviders();
+ if(empty($providers)) {
\OC_Log::write('core', 'No preview providers exist', \OC_Log::ERROR);
throw new \Exception('No preview providers');
}
$mimetype = $this->fileview->getMimeType($file);
$preview = null;
- foreach(self::$providers as $supportedmimetype => $provider) {
+ $providers = PreviewManager::getProviders();
+ foreach($providers as $supportedmimetype => $provider) {
if(!preg_match($supportedmimetype, $mimetype)) {
continue;
}
return;
}
}
+}
+
+class PreviewManager {
+ //preview providers
+ static private $providers = array();
+ static private $registeredProviders = array();
+
+ public static function getProviders() {
+ return self::$providers;
+ }
/**
* @brief register a new preview provider to be used
* @brief create instances of all the registered preview providers
* @return void
*/
- private static function initProviders() {
+ public static function initProviders() {
if(count(self::$providers)>0) {
return;
}
$preview->deleteAllPreviews();
}
- private static function showErrorPreview() {
+ public static function showErrorPreview() {
$path = \OC::$SERVERROOT . '/core/img/actions/delete.png';
$preview = new \OC_Image($path);
$preview->preciseResize(44, 44);
}
}
-\OC\Preview::registerProvider('OC\Preview\Image');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\Image');
\ No newline at end of file
}
-\OC\Preview::registerProvider('OC\Preview\MSOfficeDoc');
+\OC\PreviewManager::registerProvider('OC\Preview\MSOfficeDoc');
//.docm, .dotm, .xls(m), .xlt(m), .xla(m), .ppt(m), .pot(m), .pps(m), .ppa(m)
class MSOffice2003 extends Office {
}
-\OC\Preview::registerProvider('OC\Preview\MSOffice2003');
+\OC\PreviewManager::registerProvider('OC\Preview\MSOffice2003');
//.docx, .dotx, .xlsx, .xltx, .pptx, .potx, .ppsx
class MSOffice2007 extends Office {
}
-\OC\Preview::registerProvider('OC\Preview\MSOffice2007');
+\OC\PreviewManager::registerProvider('OC\Preview\MSOffice2007');
//.odt, .ott, .oth, .odm, .odg, .otg, .odp, .otp, .ods, .ots, .odc, .odf, .odb, .odi, .oxt
class OpenDocument extends Office {
}
-\OC\Preview::registerProvider('OC\Preview\OpenDocument');
+\OC\PreviewManager::registerProvider('OC\Preview\OpenDocument');
//.sxw, .stw, .sxc, .stc, .sxd, .std, .sxi, .sti, .sxg, .sxm
class StarOffice extends Office {
}
-\OC\Preview::registerProvider('OC\Preview\StarOffice');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\StarOffice');
\ No newline at end of file
}
}
- \OC\Preview::registerProvider('OC\Preview\Movie');
+ \OC\PreviewManager::registerProvider('OC\Preview\Movie');
}
\ No newline at end of file
}
-\OC\Preview::registerProvider('OC\Preview\MP3');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\MP3');
\ No newline at end of file
}
-\OC\Preview::registerProvider('OC\Preview\DOC');
+\OC\PreviewManager::registerProvider('OC\Preview\DOC');
*/
class DOCX extends Provider {
}
-\OC\Preview::registerProvider('OC\Preview\DOCX');
+\OC\PreviewManager::registerProvider('OC\Preview\DOCX');
class MSOfficeExcel extends Provider {
}
-\OC\Preview::registerProvider('OC\Preview\XLS');
+\OC\PreviewManager::registerProvider('OC\Preview\XLS');
class XLSX extends MSOfficeExcel {
}
-\OC\Preview::registerProvider('OC\Preview\XLSX');
+\OC\PreviewManager::registerProvider('OC\Preview\XLSX');
/* //There is no (good) php-only solution for converting powerpoint documents to pdfs / pngs ...
class MSOfficePowerPoint extends Provider {
}
-\OC\Preview::registerProvider('OC\Preview\PPT');
+\OC\PreviewManager::registerProvider('OC\Preview\PPT');
class PPTX extends MSOfficePowerPoint {
}
-\OC\Preview::registerProvider('OC\Preview\PPTX');
+\OC\PreviewManager::registerProvider('OC\Preview\PPTX');
*/
\ No newline at end of file
}
}
- \OC\Preview::registerProvider('OC\Preview\PDF');
+ \OC\PreviewManager::registerProvider('OC\Preview\PDF');
}
}
}
- \OC\Preview::registerProvider('OC\Preview\SVG');
+ \OC\PreviewManager::registerProvider('OC\Preview\SVG');
}
\ No newline at end of file
}
}
-\OC\Preview::registerProvider('OC\Preview\TXT');
+\OC\PreviewManager::registerProvider('OC\Preview\TXT');
class PHP extends TXT {
}
-\OC\Preview::registerProvider('OC\Preview\PHP');
+\OC\PreviewManager::registerProvider('OC\Preview\PHP');
class JavaScript extends TXT {
}
-\OC\Preview::registerProvider('OC\Preview\JavaScript');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\JavaScript');
\ No newline at end of file
}
}
-\OC\Preview::registerProvider('OC\Preview\Unknown');
\ No newline at end of file
+\OC\PreviewManager::registerProvider('OC\Preview\Unknown');
\ No newline at end of file