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.
74 lines
1.3 KiB
PHP
74 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* ownCloud - Richdocuments App
|
|
*
|
|
* @author Victor Dubiniuk
|
|
* @copyright 2013 Victor Dubiniuk victor.dubiniuk@gmail.com
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later.
|
|
*/
|
|
|
|
namespace OCA\Richdocuments;
|
|
|
|
class Filter {
|
|
protected static $filters = array();
|
|
|
|
public static function add($mimetype, $class){
|
|
self::$filters[$mimetype] = $class;
|
|
}
|
|
|
|
public static function read($content, $mimetype){
|
|
$data = array(
|
|
'mimetype' => $mimetype,
|
|
'content' => $content
|
|
);
|
|
|
|
if (isset(self::$filters[$mimetype])){
|
|
$data = call_user_func(
|
|
array(
|
|
self::$filters[$mimetype],
|
|
'read'
|
|
),
|
|
$data
|
|
);
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
public static function write($content, $mimetype){
|
|
$data = array(
|
|
'mimetype' => $mimetype,
|
|
'content' => $content
|
|
);
|
|
|
|
if (isset(self::$filters[$mimetype])){
|
|
$data = call_user_func(
|
|
array(
|
|
self::$filters[$mimetype],
|
|
'write'
|
|
),
|
|
$data
|
|
);
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
public static function getAll(){
|
|
return array_keys(self::$filters);
|
|
}
|
|
|
|
/**
|
|
* Checks if mimetype is supported by the app
|
|
* @param string $mimetype - checked mimetype
|
|
* @return bool
|
|
*/
|
|
public static function isSupportedMimetype($mimetype){
|
|
return in_array($mimetype, Storage::getSupportedMimetypes());
|
|
}
|
|
}
|
|
|
|
|