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.
richdocuments/lib/filter.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());
}
}