* * Copyright (C) 2013, Kolab Systems AG * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ class kolab_storage_cache_configuration extends kolab_storage_cache { protected $extra_cols = array('type'); /** * Helper method to convert the given Kolab object into a dataset to be written to cache * * @override */ protected function _serialize($object) { $sql_data = parent::_serialize($object); $sql_data['type'] = $object['type']; return $sql_data; } /** * Helper method to compose a valid SQL query from pseudo filter triplets */ protected function _sql_where($query) { if (is_array($query)) { foreach ($query as $idx => $param) { // convert category filter if ($param[0] == 'category') { $param[2] = array_map(function($n) { return 'category:' . $n; }, (array) $param[2]); $query[$idx][0] = 'tags'; $query[$idx][2] = count($param[2]) > 1 ? $param[2] : $param[2][0]; } } } return parent::_sql_where($query); } }