/**
* List discussions, filtered by various criteria
* @params array $filters The array of filters allowed keys
* 'state' => array('Y', 'D', 'R')
*
* Allowed states
* Y => OK,
* D => Declined
* R => awaiting approval
* defaults to 'R' - passing an empty array means 'all'
* 'category' => The category id to filter for
* 'user' => A user's numeric id to filter for
*/
public function listDiscussions(array $filters = array())
{
$filters = array_merge(array('state' => array('Y'), 'limit' => array()), $filters);
$dm = $this->_mappers->create('Dolcore_Rdo_DiscussionMapper');
$query = new Horde_Rdo_Query($dm);
if ($filters['category']) {
$query->addTest('kategorie_id', '=', $filters['category']);
}
if ($filters['user']) {
$query->addTest('benutzer_id', '=', $filters['user']);
}
if (count($filters['state'])) {
$query->addTest('checked', 'IN', $filters['state']);
}
$query->sortBy('erstelldatum DESC');
return $dm->find($query);
}