Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

Уведомление о комментариях

Супер пользователь
Сообщений: 88
Здравствуйте! Скажите, пожалуйста, можно ли настроить в получение на email уведомлений о новых комментариях на своём сайте? Сейчас, я так понимаю, такая возможность отсутствует. Во всяком случае, мне на почту ничего не пришло после появления комментариев на сайте.

-- Изменено "Антонъ": 04.10.2014 03:45 --
// Мартин: давайте темам осмысленные имена и помещайте их в подходящий раздел

-- Изменено "Мартин": 04.10.2014 18:12 --
Разработчик
Сообщений: 605
Можно. Просто в метод SavePost класса Posts (файл \base\inc\posts.class.php) сделайте вызов функции SendMail по своему вкусу. Другое дело будет ли удобно получать вам по письму на каждый комментарий и как будут относиться почтовые службы к этому (это естественно актуально только если комментариев на сайте оставляется много).

Вообще, в админке есть раздел комментариев. Он отображает комментарии из модулей, которые изъявили желание зарегистрировать свою таблицу комментариев в таблице comments.
Супер пользователь
Сообщений: 88
Мартин:
Просто в метод SavePost класса Posts (файл \base\inc\posts.class.php) сделайте вызов функции SendMail по своему вкусу

Подскажите, пожалуйста, а как этот вызов прописать в коде метода? Код я нашел, а вот что и где вставлять, даже и не знаю.
Вот код изначальный метода:
Скрытый текст

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

-- Изменено "Антонъ": 05.10.2014 01:13 --
Супер пользователь
Сообщений: 408
Мартин:
сделайте вызов функции SendMail по своему вкусу

Можно придерживаться этой статьи??
Разработчик
Сообщений: 605
Логично делать вызов функции для отправки письма с уведомлением после успешного опубликования комментария, а именно вставки в базу. Это делается через вызов

System::database()->Insert


Он там кстати единственный во всем классе. Далее идет функция отправки письма SendMail из ядра (/base/inc/system/email.php):
/**
* Отправляет E-mail
* @param $ToName
* @param $ToEmail
* @param $Subject
* @param $Text
* @param bool $Html
* @param string $From
* @param string $FromEmail
*/
function SendMail( $ToName, $ToEmail, $Subject, $Text, $Html=false, $From='', $FromEmail='' ){


Ничего сложного в написании вызова нет (не поленитесь почитать соответствующий раздел документации языка: http://php.net/manual/ru/functions.arguments.php). Передаете ей имя получателя, адрес почты получателя, тему, текст письма, по желанию еще можно указать, что письмо отправляется в HTML виде, имя и адрес отправителя (если не укажите, то функция их возьмет из настроек сайта).

Amney:
Можно придерживаться этой статьи??

То есть?

-- Изменено "Мартин": 05.10.2014 13:47 --
Супер пользователь
Сообщений: 408
Разработчик
Сообщений: 605
Можно, но не стоит. У линкора есть свой класс для работы с почтой, который довольно умный. Так же умеет слать аттачи, как и тот из репозитория PEAR, который предлагается в статье. И в то же время он интегрирован в систему. Может слать как через функцию mail, так и через SMTP (и выбирает это сам). Функция SendMail из ядра его и использует, при этом тоже делает отправку почтой удобной. Не вижу смысла отказываться от стандартных средств, если на то нет причин. Да и статья написана 11 лет назад, технологии развиваются, тогда вообще царил PHP4.
Супер пользователь
Сообщений: 408
Мартин:
Не вижу смысла отказываться от стандартных средств, если на то нет причин.

Тоже так считаю.Спасибо.
Супер пользователь
Сообщений: 88
Мартин:
Ничего сложного в написании вызова нет (не поленитесь почитать соответствующий раздел документации языка: http://php.net/manual/ru/functions.arguments.php)

Прочел всю статью и ничего не понял Ладно, буду проверять в админ-панели, и так сойдет.
Разработчик
Сообщений: 605
SendMail('Администратору', 'your@email.ru', 'Новый комментарий', 'На вашем сайте был добавлен новый комментарий.');


-- Изменено "Мартин": 07.10.2014 00:00 --
Супер пользователь
Сообщений: 88
Мартин
Отлично, спасибо вам большое!
Вставил ваш код сюда:
Скрытый текст

Скажите, пожалуйста, можно ли улучшить эту функцию, чтобы на почту приходил текст комментария? Я попробовал вставить 'post_message' вместо 'На вашем сайте был добавлен новый комментарий.', не получилось.
Разработчик
Сообщений: 605
Почитайте про переменные и строки в php, они проще аргументов. Если уж вставлять, то переменную, а они начинаются со знака $.
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: