Всем привет. Столкнулся с двумя проблемами.
Первая. При полноэкранном просмотре изображение из компонента «Фотоальбома» определённые группы пользователей и админ видят изображение во весь экран, а все остальные пользователи других групп видят не на весь экран изображение.
Сравнивал права, выставлял такие же и ничего не поменялось… Куда копать не понятно.
Вторая проблема связана с уведомлениями при массовой рассылке в ЛС. Если просто пишешь в ЛС, то уведомления приходят, написал 3 сообщения, то на почту пришло 3 уведомления. А при массовой рассылке вообще не приходит если использовать компонент из коробки хотя раньше все приходило отлично. Если использовать массовую рассылку в компоненте «NeoMessenger», то там все ещё интереснее. Я связался с разработчиком и объяснил проблему, он мне прислал код который нужно заменить в файле ...system\controllers\neomessenger\backend\actions\mass_mailing.php, я заменил, уведомления стали отсылаться, но очень выборочно, на что мне предложили закомментировать 61 и 63 строку.
<?php class actionNeomessengerMassMailing extends cmsAction { public function run() { $user = cmsUser::getInstance(); $users_model = cmsCore::getModel('users'); $messenger = cmsCore::getController('messages'); $form = $this->getForm('mass_mailing'); // Форма отправлена? $is_submitted = $this->request->has('submit'); // Парсим форму и получаем поля $mailing = $form->parse($this->request, $is_submitted); if ($is_submitted) { // Проверям правильность заполнения $errors = $form->validate($this, $mailing); if (!$errors) { $content_html = cmsEventsManager::hook('html_filter', $mailing['message_text']); if (!$content_html) { } if (!$errors) { $users_model->filterNotEqual('id', $user->id); if ($mailing['groups'] && $mailing['groups'][0] > 0) { $users_model->filterGroups($mailing['groups']); } $recipients = $users_model->getUsersIds(); if ($recipients) { $messenger->setSender($user->id); if ($mailing['send_type'] === 'message') { $messages_ids = $messenger->sendMessage($content_html); if ($count) { $messenger->clearRecipients(); foreach ($recipients as $user_id) { if ($this->model->getNewMessagesCount($user_id) == 1) { $messenger->addRecipient($user_id); } 'user_url' => href_to_profile($user, false, true), 'user_nickname' => $user->nickname, )); } } cmsUser::addSessionMessage(LANG_NEOMESSENGER_CP_SENDED .' '. html_spellcount($count, LANG_NEOMESSENGER_CP_MESSAGES_SPELLCOUNT), 'success'); } if ($mailing['send_type'] === 'notify') { 'content' => $content_html )); cmsUser::addSessionMessage(LANG_NEOMESSENGER_CP_SENDED .' '. html_spellcount($count, LANG_NEOMESSENGER_CP_NOTICES_SPELLCOUNT), 'success'); } if ($mailing['send_type'] === 'email') { 'content' => $content_html )); if ($success) { cmsUser::addSessionMessage(LANG_NEOMESSENGER_CP_SENDED, 'success'); } } $mailing['message_text'] = ''; } if (!$recipients) { cmsUser::addSessionMessage(LANG_NEOMESSENGER_CP_NOT_RECIPIENTS, 'info'); } } } if ($errors) { cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error'); } } 'fields' => $this->getUserFields() )); 'mailing' => $mailing, 'form' => $form, 'filter' => $filterForm, )); } private function getUserFields() { $fields = cmsCore::getModel('content')->setTablePrefix('')->getContentFields('cms_users'); 'title' => LANG_RATING, 'name' => 'rating', 'handler' => new fieldNumber('rating') ); 'title' => LANG_KARMA, 'name' => 'karma', 'handler' => new fieldNumber('karma') ); return $fields; } }
Я сделал и уведомления стали отправляется, но они стали дублироваться причем очень сильно. Пользователи сайта наверное меня прокляли. Потому что пришло около пол сотни уведомлений каждому.
Я убрал комментирование с 61, 63 строки и заметил что при прочитке всех сообщений на 4 тестовых учетках и отправки сообщений в массовой рассылке отправляются 4 уведомления, но все 4 уходят на одну и ту же почту. Подскажите куда копать… В консоли ошибок нет.