예제 #1
0
 /**
  * Сбор дополнительных данных для личных сообщений
  * 
  * @param array $aReturn массив личных сообщений
  */
 private function _getContentMessagesEx(&$aReturn)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
     // прикрепленные файлы
     messages::getMessagesAttaches($aReturn);
     // прикручиваем юзеров к сообщениям - на нодах есть не все поля
     $aUsers = array();
     foreach ($aReturn as $aOne) {
         $aUsers[$aOne['from_id']] = array();
         $aUsers[$aOne['to_id']] = array();
         if (!empty($aOne['deluser_id'])) {
             $aUsers[$aOne['deluser_id']] = array();
         }
     }
     $aRes = $GLOBALS['DB']->rows('SELECT uid, login, uname, usurname, role, is_pro, is_pro_test, is_team, 
             is_chuck, warn, is_banned, ban_where 
         FROM users WHERE uid IN (?l)', array_unique(array_keys($aUsers)));
     if ($aRes) {
         foreach ($aRes as $aOne) {
             $aUsers[$aOne['uid']] = $aOne;
         }
         foreach ($aReturn as $key => $aOne) {
             $aReturn[$key]['f_user'] = $aUsers[$aOne['from_id']];
             $aReturn[$key]['t_user'] = $aUsers[$aOne['to_id']];
             if (!empty($aOne['deluser_id'])) {
                 $aReturn[$key]['adm_login'] = $aUsers[$aOne['deluser_id']]['login'];
                 $aReturn[$key]['adm_uname'] = $aUsers[$aOne['deluser_id']]['uname'];
                 $aReturn[$key]['adm_usurname'] = $aUsers[$aOne['deluser_id']]['usurname'];
             }
         }
     }
     //---------------------------------------
 }
예제 #2
0
 /**
  * Возвращает список жалоб о спаме, удовлетворяющих условиям выборки
  * 
  * Внутренняя функция
  * 
  * @param  int $count возвращает количество записей удовлтворяющих условиям выборки
  * @param  int $page номер текущей страницы
  * @param  string order тип сортировки
  * @param  int $direction порядок сортировки: 0 - по убыванию, не 0 - по возрастанию
  * @param  bool $unlimited опционально. установить в true если нужно получить все записи (без постраничного вывода)
  * @return array
  */
 function _getSpam(&$count, $page = 1, $order = 'general', $direction = 0, $unlimited = false)
 {
     $DB = new DB();
     // plproxy
     $aFilter = array();
     $this->aSQL = array();
     $offset = $this->items_pp * ($page - 1);
     // строим запрос
     $this->_setSpamOrderBy($order, $direction);
     if (is_array($this->filter) && count($this->filter)) {
         foreach ($this->filter as $sKey => $sVal) {
             $aFilter[] = array($sKey, $sVal);
         }
     }
     $sQuery = 'SELECT * FROM messages_spam_get_list(?a) ' . ' ORDER BY ' . implode(', ', $this->aSQL['order_by']) . (!$unlimited ? ' LIMIT ' . $this->items_pp . ' OFFSET ' . $offset : '');
     $aSpam = $DB->rows($sQuery, $aFilter);
     if ($DB->error || !$aSpam) {
         return array();
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/messages.php';
     // прикрепленные файлы
     messages::getMessagesAttaches($aSpam, 'msg_id');
     $sQuery = 'SELECT messages_spam_get_count(?a)';
     $count = $DB->val($sQuery, $aFilter);
     return $aSpam;
 }
예제 #3
0
 /**
  * Получение списка личных сообщений.
  * Возвращает все сообщения пользователя (входящие и исходящие), которые были добавлены, изменены или помечены удаленными после определенной даты.
  * (!) Массовые рассылки только входящие.
  * 
  * @param  array $aParams массив входящих данных
  * @return array $aResult ответ
  */
 protected function x____messages_list($aParams = array())
 {
     $this->_validDevice($aParams);
     require_once ABS_PATH . '/classes/messages.php';
     $aResult = array('list' => array());
     $nTime = intvalPgSql($aParams['last_update']);
     $aMessages = messages::getMessagesAllSinceDate(get_uid(false), date('Y-m-d H:i:s', $nTime));
     if (is_array($aMessages) && $aMessages) {
         messages::getMessagesAttaches($aMessages);
         foreach ($aMessages as $aOne) {
             if (strtotime($aOne['read_time']) && $aOne['read_time'] != '1970-01-01 00:00:00' && $aOne['read_time'] > $nTime || $aOne['read_time'] == '1970-01-01 00:00:00' && strtotime($aOne['post_time']) > $nTime) {
                 $aResult['list'][] = $this->_getMessageData($aOne);
             }
         }
     }
     return $aResult;
 }