protected function _getStoryIdsByChannel($channel_id) { $sql = 'SELECT story_id as id FROM jonah_stories ' . 'WHERE channel_id = ?'; try { return $this->_db->selectValues($sql, array($channel_id)); } catch (Horde_Db_Exception $e) { throw new Jonah_Exception($e); } }
/** * Returns all ticket listeners. * * @param integer $ticket A ticket ID. * @param boolean $withowners Include ticket owners? * @param boolean $withrequester Include ticket creators? * @param boolean $withresponsible Include users responsible for the ticket * queue? * * @return array A list of all ticket listeners. * @throws Whups_Exception */ public function getListeners($ticket, $withowners = true, $withrequester = true, $withresponsible = false) { try { $listeners = $this->_db->selectValues('SELECT DISTINCT l.user_uid FROM whups_ticket_listeners l, ' . 'whups_tickets t WHERE (l.ticket_id = ?)', array((int) $ticket)); } catch (Horde_Db_Exception $e) { throw new Whups_Exception($e); } $users = array(); foreach ($listeners as $user) { $users[$user] = 'listener'; } $tinfo = $this->getTicketDetails($ticket); if ($withresponsible) { foreach ($this->getQueueUsers($tinfo['queue']) as $user) { $users[$user] = 'queue'; } } // Tricky - handle case where owner = requester. $requester = $tinfo['user_id_requester']; $owner_is_requester = false; if (isset($tinfo['owners'])) { foreach ($tinfo['owners'] as $owner) { $owner = str_replace('user:'******'', $owner); if ($owner == $requester) { $owner_is_requester = true; } if ($withowners) { $users[$owner] = 'owner'; } else { if (isset($users[$owner])) { unset($users[$owner]); } } } } if (!$withrequester) { if (isset($users[$requester]) && (!$withowners || $owner_is_requester)) { unset($users[$requester]); } } elseif (!empty($requester) && !isset($users[$requester])) { $users[$requester] = 'requester'; } return $users; }