Вопрос по "Фотоальбому" и "Массовой рассылке"

InstantCMS 2.X
#1 28 июля 2021 в 11:01

Всем привет. Столкнулся с двумя проблемами.

Первая. При полноэкранном просмотре изображение из компонента «Фотоальбома» определённые группы пользователей и админ видят изображение во весь экран, а все остальные пользователи других групп видят не на весь экран изображение.

Изображение

 

 

Изображение

 

Сравнивал права, выставлял такие же и ничего не поменялось… Куда копать не понятно.

 

Вторая проблема связана с уведомлениями при массовой рассылке в ЛС. Если просто пишешь в ЛС, то уведомления приходят, написал 3 сообщения, то на почту пришло 3 уведомления. А при массовой рассылке вообще не приходит если использовать компонент из коробки хотя раньше все приходило отлично. Если использовать массовую рассылку в компоненте «NeoMessenger», то там все ещё интереснее. Я связался с разработчиком и объяснил проблему, он мне прислал код который нужно заменить в файле ...system\controllers\neomessenger\backend\actions\mass_mailing.php, я заменил, уведомления стали отсылаться, но очень выборочно, на что мне предложили закомментировать 61 и 63 строку. 

  1. <?php
  2.  
  3. class actionNeomessengerMassMailing extends cmsAction {
  4.  
  5. public function run() {
  6.  
  7. $user = cmsUser::getInstance();
  8. $users_model = cmsCore::getModel('users');
  9. $messenger = cmsCore::getController('messages');
  10.  
  11. $form = $this->getForm('mass_mailing');
  12.  
  13. // Форма отправлена?
  14. $is_submitted = $this->request->has('submit');
  15.  
  16. // Парсим форму и получаем поля
  17. $mailing = $form->parse($this->request, $is_submitted);
  18.  
  19. if ($is_submitted) {
  20.  
  21. // Проверям правильность заполнения
  22. $errors = $form->validate($this, $mailing);
  23.  
  24. if (!$errors) {
  25.  
  26. $content_html = cmsEventsManager::hook('html_filter', $mailing['message_text']);
  27.  
  28. if (!$content_html) {
  29. $errors = array('message_text' => LANG_VALIDATE_REQUIRED);
  30. }
  31.  
  32. if (!$errors) {
  33.  
  34. $filters = $this->request->get('filters', array());
  35.  
  36. $users_model->resetFilters()->applyDatasetFilters(array('filters' => $filters));
  37. $users_model->filterNotEqual('id', $user->id);
  38.  
  39. if ($mailing['groups'] && $mailing['groups'][0] > 0) {
  40. $users_model->filterGroups($mailing['groups']);
  41. }
  42.  
  43. $recipients = $users_model->getUsersIds();
  44.  
  45. if ($recipients) {
  46.  
  47. $messenger->addRecipients(array_keys($recipients));
  48. $messenger->setSender($user->id);
  49.  
  50. if ($mailing['send_type'] === 'message') {
  51.  
  52. $messages_ids = $messenger->sendMessage($content_html);
  53. $count = is_array($messages_ids) ? count($messages_ids) : ($messages_ids ? 1 : 0);
  54.  
  55. if ($count) {
  56.  
  57. $messenger->clearRecipients();
  58.  
  59. foreach ($recipients as $user_id) {
  60.  
  61. if ($this->model->getNewMessagesCount($user_id) == 1) {
  62. $messenger->addRecipient($user_id);
  63. }
  64.  
  65. $messenger->sendNoticeEmail('messages_new', array(
  66. 'user_url' => href_to_profile($user, false, true),
  67. 'user_nickname' => $user->nickname,
  68. 'message' => strip_tags($mailing['message_text'])
  69. ));
  70.  
  71. }
  72. }
  73.  
  74. cmsUser::addSessionMessage(LANG_NEOMESSENGER_CP_SENDED .' '. html_spellcount($count, LANG_NEOMESSENGER_CP_MESSAGES_SPELLCOUNT), 'success');
  75.  
  76. }
  77.  
  78. if ($mailing['send_type'] === 'notify') {
  79.  
  80. $notices_ids = $messenger->sendNoticePM(array(
  81. 'content' => $content_html
  82. ));
  83.  
  84. $count = $notices_ids ? count($notices_ids) : 0;
  85.  
  86. cmsUser::addSessionMessage(LANG_NEOMESSENGER_CP_SENDED .' '. html_spellcount($count, LANG_NEOMESSENGER_CP_NOTICES_SPELLCOUNT), 'success');
  87.  
  88. }
  89.  
  90. if ($mailing['send_type'] === 'email') {
  91.  
  92. $success = $messenger->sendNoticeEmail('notice', array(
  93. 'content' => $content_html
  94. ));
  95.  
  96. if ($success) {
  97. cmsUser::addSessionMessage(LANG_NEOMESSENGER_CP_SENDED, 'success');
  98. }
  99.  
  100. }
  101.  
  102. $mailing['message_text'] = '';
  103.  
  104. }
  105.  
  106. if (!$recipients) {
  107.  
  108. cmsUser::addSessionMessage(LANG_NEOMESSENGER_CP_NOT_RECIPIENTS, 'info');
  109.  
  110. }
  111.  
  112. }
  113.  
  114. }
  115.  
  116. if ($errors) {
  117.  
  118. cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error');
  119.  
  120. }
  121.  
  122. }
  123.  
  124. $filterForm = cmsTemplate::getInstance()->render('backend/users_filter', array(
  125. 'fields' => $this->getUserFields()
  126. ));
  127.  
  128. return cmsTemplate::getInstance()->render('backend/mass_mailing', array(
  129. 'mailing' => $mailing,
  130. 'form' => $form,
  131. 'filter' => $filterForm,
  132. 'errors' => isset($errors) ? $errors : false
  133. ));
  134.  
  135. }
  136.  
  137. private function getUserFields() {
  138.  
  139. $fields = cmsCore::getModel('content')->setTablePrefix('')->getContentFields('cms_users');
  140.  
  141. $fields[] = array(
  142. 'title' => LANG_RATING,
  143. 'name' => 'rating',
  144. 'handler' => new fieldNumber('rating')
  145. );
  146.  
  147. $fields[] = array(
  148. 'title' => LANG_KARMA,
  149. 'name' => 'karma',
  150. 'handler' => new fieldNumber('karma')
  151. );
  152.  
  153. return $fields;
  154.  
  155. }
  156.  
  157. }

  

 

  Я сделал и уведомления стали отправляется, но они стали дублироваться причем очень сильно. Пользователи сайта наверное меня прокляли. Потому что пришло около пол сотни уведомлений каждому. 

 

Изображение

 

 

 

Я убрал комментирование с 61, 63 строки и заметил что при прочитке всех сообщений на 4 тестовых учетках и отправки сообщений в массовой рассылке отправляются 4 уведомления, но все 4 уходят на одну и ту же почту. Подскажите куда копать… В консоли ошибок нет.

 

ИзображениеИзображение

 

 
ИзображениеИзображение

 

 

#2 28 июля 2021 в 12:27

Надо было разные темы создать лучше.

#3 28 июля 2021 в 14:06

Первая.

CEH9I

Гляньте на вкладке «Доступ» компонента -> cкачивание пресетов. Возможно, не всем доступны соответствующие

#4 28 июля 2021 в 15:34

Первая.

CEH9I

Гляньте на вкладке «Доступ» компонента -> cкачивание пресетов. Возможно, не всем доступны соответствующие

Олег Васильевич я

Благодарю, никогда бы не догадался что дело в этом, тем более что у меня возможность скачивания вообще была отключена, а запреты стояли, видимо поставил давно по ошибке и забыл… в общем первая проблема решена. А вот вторая остаётся актуальной..

#5 29 июля 2021 в 11:02

Первая.

CEH9I

Гляньте на вкладке «Доступ» компонента -> cкачивание пресетов. Возможно, не всем доступны соответствующие

Олег Васильевич я

Благодарю, никогда бы не догадался что дело в этом, тем более что у меня возможность скачивания вообще была отключена, а запреты стояли, видимо поставил давно по ошибке и забыл… в общем первая проблема решена. А вот вторая остаётся актуальной..

CEH9I

Удалось решить вторую проблему?

#6 29 июля 2021 в 11:05

 bizzon111, пока нет.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.