Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
Автоматическая отправка ЛС скриптом
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
- Garret_Dark
- phpBB 2.0.16
- Сообщения: 1096
- Стаж: 15 лет 2 месяца
- Откуда: root/world/russia/
- Благодарил (а): 126 раз
- Поблагодарили: 206 раз
- Контактная информация:
Автоматическая отправка ЛС скриптом
Всем доброго времени!
Возник вопрос по сабжу. На phpbb.com и здесь не нашел нормального решения.
Суть такова, есть мод (допиливаю в данный момент), хочется прикрутить уведомление отправляющееся через ЛС пользователю.
Посмотрел в БД, на то как выглядят новые ЛСки, в принципе ничего сложного, на первый взгляд. В результате добавляем в таблицу phpbb_privmsgs новую строку содержащую уведомление (Все необходимые поля заполняем нужными данными), потом в таблице phpbb_users обновляем кол-во новых и непрочитанных ЛС на +1 (Прибавляем единицу).
Так вот, все вроде работает (ЛС появляется в папке, как и положено, все манипуляции с ним работают), но вот всплывающего окна при получении нового ЛС таким образом, нет.
На локалке было, через раз, но было (Почему через раз, я так и не понял)
На хосте же никогда не появляется окошко, да и кол-во новых сообщений в шапке остается "Новых ЛС: 0".
Так собственно, разве окошко не появляется после того как я добавил 1 к значению столбцов user_new_privmsg и user_unread_privmsg?
Возможно есть где-то мануал по этому поводу (пусть и на англ.) ?
Или есть мод где можно хорошо просмотреть рабочий пример кода?
Заранее спасибо
Возник вопрос по сабжу. На phpbb.com и здесь не нашел нормального решения.
Суть такова, есть мод (допиливаю в данный момент), хочется прикрутить уведомление отправляющееся через ЛС пользователю.
Посмотрел в БД, на то как выглядят новые ЛСки, в принципе ничего сложного, на первый взгляд. В результате добавляем в таблицу phpbb_privmsgs новую строку содержащую уведомление (Все необходимые поля заполняем нужными данными), потом в таблице phpbb_users обновляем кол-во новых и непрочитанных ЛС на +1 (Прибавляем единицу).
Так вот, все вроде работает (ЛС появляется в папке, как и положено, все манипуляции с ним работают), но вот всплывающего окна при получении нового ЛС таким образом, нет.
На локалке было, через раз, но было (Почему через раз, я так и не понял)
На хосте же никогда не появляется окошко, да и кол-во новых сообщений в шапке остается "Новых ЛС: 0".
Так собственно, разве окошко не появляется после того как я добавил 1 к значению столбцов user_new_privmsg и user_unread_privmsg?
Возможно есть где-то мануал по этому поводу (пусть и на англ.) ?
Или есть мод где можно хорошо просмотреть рабочий пример кода?
Заранее спасибо
Мои моды:
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
- HAMMER663
- Former team member
- Сообщения: 2032
- Стаж: 13 лет 11 месяцев
- Откуда: Зеленоград
- Благодарил (а): 77 раз
- Поблагодарили: 249 раз
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
Garret_Dark в моде Палыча реализована отправка ЛС при изменении списка благодарностей за сообщения
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
Garret_Dark
Используй стандартную функцию submit_pm()
Пример
Вместо
Добавлено спустя 14 минут 51 секунду:
А... и к стати.
Используй стандартную функцию submit_pm()
Пример
Код: Выделить всё
include_once($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
include_once($phpbb_root_path . 'includes/message_parser.' . $phpEx);
$message = 'Какой-то там текст :)';
$pm_data = array(
'from_user_id' => $user->data['user_id'],
'from_user_ip' => $user->ip,
'from_username' => $user->data['username'],
'enable_sig' => false,
'enable_bbcode' => true,
'enable_smilies' => true,
'enable_urls' => false,
'icon_id' => 0,
'bbcode_bitfield' => $message_parser->bbcode_bitfield,
'bbcode_uid' => $message_parser->bbcode_uid,
'message' => $message,
'address_list' => array('u' => array($uid => 'to')),
);
submit_pm('post', $user->lang['INVITE_POST'], $pm_data, false);
$user->lang['INVITE_POST']
какой-то свой текст - сабж, то бишь тема ЛС-киДобавлено спустя 14 минут 51 секунду:
А... и к стати.
Там не одна таблица использутся, а несколько, ещеGarret_Dark писал(а):В результате добавляем в таблицу phpbb_privmsgs новую строку содерж
phpbb_privmsgs_folder
phpbb_privmsgs_rules
phpbb_privmsgs_to
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
- Garret_Dark
- phpBB 2.0.16
- Сообщения: 1096
- Стаж: 15 лет 2 месяца
- Откуда: root/world/russia/
- Благодарил (а): 126 раз
- Поблагодарили: 206 раз
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
Sheer, спасибо, только не совсем понял куда и как подставляется ID получателя?
Мои моды:
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
Garret_Dark писал(а):куда и как подставляется ID получателя?
Код: Выделить всё
'address_list' => array('u' => array($uid => 'to'))
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
- Garret_Dark
- phpBB 2.0.16
- Сообщения: 1096
- Стаж: 15 лет 2 месяца
- Откуда: root/world/russia/
- Благодарил (а): 126 раз
- Поблагодарили: 206 раз
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
Sheer, я понял, что туда, но вопрос "как?"... Если не сложно, подскажи. Я пробовал по разному подставлять ID, чтото не получилось, все выдает trigger_error NO_RECEPIENT (Нет получателя)
Мои моды:
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
- Garret_Dark
- phpBB 2.0.16
- Сообщения: 1096
- Стаж: 15 лет 2 месяца
- Откуда: root/world/russia/
- Благодарил (а): 126 раз
- Поблагодарили: 206 раз
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
MIT, спасибо. А то я перемудрил))
Вот немного подправленный и рабочий код, мож кому пригодиться;)
Вот немного подправленный и рабочий код, мож кому пригодиться;)
Код: Выделить всё
include_once($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
include_once($phpbb_root_path . 'includes/message_parser.' . $phpEx);
$message = 'Текст сообщения';
$uid = 'recepient_id';
$pm_data = array(
'from_user_id' => $user->data['user_id'],
'from_user_ip' => $user->ip,
'from_username' => $user->data['username'],
'enable_sig' => false,
'enable_bbcode' => true,
'enable_smilies' => true,
'enable_urls' => false,
'icon_id' => 0,
'bbcode_bitfield' => '',
'bbcode_uid' => '',
'message' => $message,
'address_list' => array('u' => array($uid => 'to')),
);
submit_pm('post', 'Тема сообщения', $pm_data, false);
Мои моды:
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
Полноценный интернет-магазин для phpbb3
Белый список IP для пользователей индивидуально
Парсер сообщений (автозамена)
User FAQ (Пользовательский FAQ)
Google Map MOD 0.4.2 [RUS]
Anti Double IP - Запрет множественных рег с одного IP
PM All in 1 - ЛС "Все включено"
Шкала последней активности пользователя
Поддержка только в указанных темах! В ЛС только по личным вопросам или за WM.
-
- phpBB 1.4.4
- Сообщения: 105
- Стаж: 13 лет 1 месяц
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Автоматическая отправка ЛС скриптом
Никак не пойму как в перменную $uid можно передать сразу список id юзеров, чтобы ушло одно сообщение на определенный список пользователей.
У меня получилось лишь разослать каждому юзеру свое личное сообщение - но для этого приходится в цикле запускать функцию отедльно по каждому юзеру.
И еще отправленное сообщение появляется в личных сообщениях лишь у получателя, а у отправителя оно в Отправленных не отражается, так как в таблицу phpbb_privmsgs_to соответствующая запись по отправителю не вставляется.
Подскажите, пожалуйста, если знаете как можно решить данные моменты.
У меня получилось лишь разослать каждому юзеру свое личное сообщение - но для этого приходится в цикле запускать функцию отедльно по каждому юзеру.
И еще отправленное сообщение появляется в личных сообщениях лишь у получателя, а у отправителя оно в Отправленных не отражается, так как в таблицу phpbb_privmsgs_to соответствующая запись по отправителю не вставляется.
Подскажите, пожалуйста, если знаете как можно решить данные моменты.
-
- phpBB 1.4.4
- Сообщения: 105
- Стаж: 13 лет 1 месяц
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Автоматическая отправка ЛС скриптом
Может кто в курсе как распарсить созданное подобным образом ЛС. Самое главное для меня чтобы ссылка, отправленная подобным образом отображалась в виде ссылки, а не просто в виде текста.
Пробовал указать тут: вместо false true не помогло
Пробовал указать тут:
Код: Выделить всё
'enable_urls' => false,
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
Заменить тутdemon201984 писал(а):И еще отправленное сообщение появляется в личных сообщениях лишь у получателя, а у отправителя оно в Отправленных не отражается,
Код: Выделить всё
submit_pm('post', 'Тема сообщения', $pm_data, false);
Код: Выделить всё
submit_pm('post', 'Тема сообщения', $pm_data, true);
В цикле заполнять массив $uid илиdemon201984 писал(а):как в перменную $uid можно передать сразу список id
Код: Выделить всё
$uid = array(2, 208, 234, 678);
А как ты вставляешь ее в тело сообщения?demon201984 писал(а): чтобы ссылка, отправленная подобным образом отображалась в виде ссылки
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.4.4
- Сообщения: 105
- Стаж: 13 лет 1 месяц
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Автоматическая отправка ЛС скриптом
заменить false на true
Спасибо большущее, а ларчик-то оказывается просто открывался)
Пробовал сразу передавать данные из формы в переменную $message POSTом
Пробовал, но совершенно не понимая, сделать так как это вроде реализовано в стандартных функциях phpbb:
- вставляю в скрипте обработчике код:
- после передаю в скрипт рассылки, как:
При этом в обоих варинтах ссылка отправляется лишь в виде текста, не преобразуясь в ссылку. Посмотрел в базе - при отпрвке ЛС из обычной стандартной формы она в БД выглядет, как
а при отправке скриптом, даже при включенном параметре
передается в базу лишь в виде простого текста.
Код: Выделить всё
submit_pm('post', 'Тема сообщения', $pm_data, true);
Методом POST данные передаются скрипту обработчику. Вставляю просто к примеру так: http://yandex.ruSheer писал(а):А как ты вставляешь ее в тело сообщения?
Пробовал сразу передавать данные из формы в переменную $message POSTом
Код: Выделить всё
'message' => $message,
- вставляю в скрипте обработчике код:
Код: Выделить всё
$message_parser->message = $row['draft_message'];
$message_parser->message = utf8_normalize_nfc(request_var('message', '', true));
Код: Выделить всё
'message' => $message_parser->message,
Код: Выделить всё
<!-- m --><a class="postlink" href="http://yandex.ru">http://yandex.ru</a><!-- m -->
Код: Выделить всё
'enable_urls' => true,
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
Ну потому что функция message_parser() (вернее вызываемая ею
Ссылку надо обрамлять bb-кодом [url]
bbcode_parse_code() )
вырезает html-сущности
Код: Выделить всё
437 $code = htmlspecialchars_decode($code);
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.4.4
- Сообщения: 105
- Стаж: 13 лет 1 месяц
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
Re: Автоматическая отправка ЛС скриптом
Да я бы с удовольствием включил поддержку BBCode, но вот тоже не знаю как это сделать. А так я хотел использовать автозамену ссылок, которую делает phpbb сам, т.е. без обрамления тегами (ввел корректно ссылку и все система сама ее воспринимает как ссылку).
Если обрамить ссылку BBCode, то она у меня передается так как есть:
а должна бы преобразоваться в [url:3738kthh]http://yandex.ru[/url:3738kthh]
и при этом в БД должны еще заполнится поля:
- bbcode_bitfield - у меня заполнилось значением EA== (вроде как это значение постоянно одно и тоже при использовании тега url)
- bbcode_uid - у меня заполнилось значением 3738kthh (значение всегда разное)
Я так понимаю данные должны передаваться этими полями, но что там указывать не совсем понятно.
Если обрамить ссылку BBCode, то она у меня передается так как есть:
Код: Выделить всё
[url]http://yandex.ru[/url]
и при этом в БД должны еще заполнится поля:
- bbcode_bitfield - у меня заполнилось значением EA== (вроде как это значение постоянно одно и тоже при использовании тега url)
- bbcode_uid - у меня заполнилось значением 3738kthh (значение всегда разное)
Я так понимаю данные должны передаваться этими полями, но что там указывать не совсем понятно.
Код: Выделить всё
'bbcode_bitfield' => '',
'bbcode_uid' => '',
Последний раз редактировалось demon201984 09.01.2013 0:04, всего редактировалось 1 раз.
- Sheer
- Former team member
- Сообщения: 12113
- Стаж: 17 лет 1 месяц
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 54 раза
- Поблагодарили: 2752 раза
- Контактная информация:
Re: Автоматическая отправка ЛС скриптом
Текст сообщения нужно предварительно подготовить, примерно так
и
уже не надо.
Код: Выделить всё
$text = 'какой-то[url]http://www.fff.com[/url]';
generate_text_for_storage($text, $uid, 'QA==', false, true, true, true);
Код: Выделить всё
'message' => $message_parser->message,
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.