function showTabMailAction() { @($group_id = DevblocksPlatform::importGPC($_REQUEST['id'], 'integer', 0)); $tpl = DevblocksPlatform::getTemplateService(); $tpl_path = $this->_TPL_PATH; $tpl->assign('path', $tpl_path); $active_worker = CerberusApplication::getActiveWorker(); if (!$active_worker->isTeamManager($group_id) && !$active_worker->is_superuser) { return; } else { $group = DAO_Group::getTeam($group_id); $tpl->assign('team', $group); } $team_categories = DAO_Bucket::getByTeam($group_id); $tpl->assign('categories', $team_categories); $group_settings = DAO_GroupSettings::getSettings($group_id); $tpl->assign('group_settings', $group_settings); @$tpl->assign('group_spam_threshold', $group_settings[DAO_GroupSettings::SETTING_SPAM_THRESHOLD]); @$tpl->assign('group_spam_action', $group_settings[DAO_GroupSettings::SETTING_SPAM_ACTION]); @$tpl->assign('group_spam_action_param', $group_settings[DAO_GroupSettings::SETTING_SPAM_ACTION_PARAM]); $tpl->display('file:' . $tpl_path . 'groups/manage/index.tpl'); }
public static function getHelpdeskSenders() { $cache = DevblocksPlatform::getCacheService(); if (null === ($froms = $cache->load(self::CACHE_HELPDESK_FROMS))) { $froms = array(); $settings = DevblocksPlatform::getPluginSettingsService(); $group_settings = DAO_GroupSettings::getSettings(); // Global sender $from = strtolower($settings->get('cerberusweb.core', CerberusSettings::DEFAULT_REPLY_FROM)); @($froms[$from] = $from); // Group senders if (is_array($group_settings)) { foreach ($group_settings as $group_id => $gs) { @($from = strtolower($gs[DAO_GroupSettings::SETTING_REPLY_FROM])); if (!empty($from)) { @($froms[$from] = $from); } } } asort($froms); $cache->save($froms, self::CACHE_HELPDESK_FROMS); } return $froms; }
} if (isset($columns['IS_ADMIN'])) { $sql = $datadict->DropColumnSQL('message', 'is_admin'); $datadict->ExecuteSQLArray($sql); } if (!isset($columns['IS_OUTGOING'])) { $sql = $datadict->AddColumnSQL('message', 'is_outgoing I1 DEFAULT 0 NOTNULL'); $datadict->ExecuteSQLArray($sql); // Gather Helpdesk/Group addresses try { $froms = array(); $sql = sprintf("SELECT value FROM setting WHERE setting = %s", $db->qstr(CerberusSettings::DEFAULT_REPLY_FROM)); if (null != ($default_from = $db->GetOne($sql))) { $froms[$default_from] = 1; } if (null != ($group_settings = DAO_GroupSettings::getSettings()) && is_array($group_settings)) { foreach ($group_settings as $group_id => $gs) { if (is_array($gs) && isset($gs[DAO_GroupSettings::SETTING_REPLY_FROM])) { $group_from = $gs[DAO_GroupSettings::SETTING_REPLY_FROM]; if (!empty($group_from)) { $froms[$group_from] = 1; } } } } if (is_array($froms) && !empty($froms)) { $froms = array_keys($froms); $sql = sprintf("SELECT id FROM address WHERE email IN ('%s')", implode("','", $froms)); $rs = $db->Execute($sql); while (!$rs->EOF) { $address_id = intval($rs->fields['id']);
private function _handleTicketClosed($event) { @($ticket_ids = $event->params['ticket_ids']); @($changed_fields = $event->params['changed_fields']); // for anything other than setting is_closed = 1, we don't need to do anything // also don't send if the ticket is being deleted if (!isset($changed_fields[DAO_Ticket::IS_CLOSED]) || 1 != $changed_fields[DAO_Ticket::IS_CLOSED] || isset($changed_fields[DAO_Ticket::IS_DELETED]) && 1 == $changed_fields[DAO_Ticket::IS_DELETED]) { return; } $group_settings = DAO_GroupSettings::getSettings(); if (!empty($ticket_ids)) { $tickets = DAO_Ticket::getTickets($ticket_ids); foreach ($tickets as $ticket) { /* @var $ticket CerberusTicket */ if (!isset($group_settings[$ticket->team_id][DAO_GroupSettings::SETTING_CLOSE_REPLY_ENABLED])) { continue; } if (1 == $ticket->is_deleted) { continue; } if ($group_settings[$ticket->team_id][DAO_GroupSettings::SETTING_CLOSE_REPLY_ENABLED] && !empty($group_settings[$ticket->team_id][DAO_GroupSettings::SETTING_CLOSE_REPLY])) { if (null != ($msg_first = DAO_Ticket::getMessage($ticket->first_message_id))) { // First sender $ticket_sender = ''; $ticket_sender_first = ''; if (null != ($sender_first = DAO_Address::get($msg_first->address_id))) { $ticket_sender = $sender_first->email; $ticket_sender_first = $sender_first->first_name; } // First body $ticket_body = $msg_first->getContent(); } CerberusMail::sendTicketMessage(array('ticket_id' => $ticket->id, 'message_id' => $ticket->first_message_id, 'content' => str_replace(array('#ticket_id#', '#mask#', '#subject#', '#timestamp#', '#sender#', '#sender_first#', '#orig_body#'), array($ticket->id, $ticket->mask, $ticket->subject, date('r'), $ticket_sender, $ticket_sender_first, ltrim($ticket_body)), $group_settings[$ticket->team_id][DAO_GroupSettings::SETTING_CLOSE_REPLY]), 'is_autoreply' => false, 'dont_keep_copy' => true)); } } } }