Автоматическое отправление личного сообщения пользователю в День рождения, а также сообщения на e-email, если пользователь подписан на уведомление.
Используется встроенный cron, и должен быть настроен запуск файла cron.php в заданиях cron сервера. Эту тему лучше перетирать с хостером.
Наша задача, дать задание для встроенного cron-а, чтобы он запускал пхп-файл.
Итак, по порядку. Сам файл забираем здесь. Скачали? Теперь нужно подредактировать под себя. А именно, находим строку 49 и вписываем значение переменной $host. Это доменное имя Вашего сайта с префиксами. В скачанном файле вписан домен моего сайта. По аналогии, его заменяете своим. Если не нравится текст поздравления, редактируете значение переменной $message в строке 30. Вроде бы и всё. Хотя, при желании можете подредактировать от кого будет отправляться сообщение (строка 34, переменная $from_id). По умолчанию $from_id=1, это id администратора.
Дальше заливаем отредактированный файл в корень Вашего сайта(ЭТО ВАЖНО!!!).
После чего идем в админку Настройки-> Задачи CRON, нажавь на кнопочку с плюсиком слева вверху, создаем новую задачу. Периодичность выставляем 24ч, а в строке PHP-файл вставляем просто имя файла happybirthday.php. Описание заполняем на Ваше усмотрение. Активируем задачу. Остальные поля трогать не надо.
Вот и всё. Задачу крон на сервере я настроил с запуском каждый день в 00ч 01м. Главное раз в день чтобы запускалось и во встроенном кроне стояла периодичность 24ч.
Поскольку, по умолчанию при регистрации стоит 01.01.80., и многие пользователи не указывают свой день рождения, 1 января сообщения не будут отправляться. Да простят меня те, кто родился в этот день.
Тестировался на хостинге sweb. И важен один момент!!! cron.php должен запускаться напрямую, то есть по пути от корня сервера. Если запускается по get, работать не будет. Нужно менять пути к файлам.
При тестировании не проверялись события 1 января, и в день несколько именинников. В остальном работает нормально.
p.s.Прошу опытных гуру проинспектировть код. Замечаниям буду рад прислушаться. php со словарем.
p.s.s. Спасибо разработчикам за красивый и интуитивно понятный код ядра Инстанта. Самое то, учиться пхп, разбирая Ваш код. Низкий поклон.
на:
В остальном вроде бы работает :=)
Используется встроенный cron, и должен быть настроен запуск файла cron.php в заданиях cron сервера. Эту тему лучше перетирать с хостером.
Наша задача, дать задание для встроенного cron-а, чтобы он запускал пхп-файл.
Итак, по порядку. Сам файл забираем здесь. Скачали? Теперь нужно подредактировать под себя. А именно, находим строку 49 и вписываем значение переменной $host. Это доменное имя Вашего сайта с префиксами. В скачанном файле вписан домен моего сайта. По аналогии, его заменяете своим. Если не нравится текст поздравления, редактируете значение переменной $message в строке 30. Вроде бы и всё. Хотя, при желании можете подредактировать от кого будет отправляться сообщение (строка 34, переменная $from_id). По умолчанию $from_id=1, это id администратора.
Дальше заливаем отредактированный файл в корень Вашего сайта(ЭТО ВАЖНО!!!).
После чего идем в админку Настройки-> Задачи CRON, нажавь на кнопочку с плюсиком слева вверху, создаем новую задачу. Периодичность выставляем 24ч, а в строке PHP-файл вставляем просто имя файла happybirthday.php. Описание заполняем на Ваше усмотрение. Активируем задачу. Остальные поля трогать не надо.
Вот и всё. Задачу крон на сервере я настроил с запуском каждый день в 00ч 01м. Главное раз в день чтобы запускалось и во встроенном кроне стояла периодичность 24ч.
Поскольку, по умолчанию при регистрации стоит 01.01.80., и многие пользователи не указывают свой день рождения, 1 января сообщения не будут отправляться. Да простят меня те, кто родился в этот день.
Тестировался на хостинге sweb. И важен один момент!!! cron.php должен запускаться напрямую, то есть по пути от корня сервера. Если запускается по get, работать не будет. Нужно менять пути к файлам.
При тестировании не проверялись события 1 января, и в день несколько именинников. В остальном работает нормально.
p.s.Прошу опытных гуру проинспектировть код. Замечаниям буду рад прислушаться. php со словарем.
p.s.s. Спасибо разработчикам за красивый и интуитивно понятный код ядра Инстанта. Самое то, учиться пхп, разбирая Ваш код. Низкий поклон.
UPDATE 06.03.2014
В версии ICMS 1.10.3 поменялись пути к файлам шаблонов почтовых сообщений. Поэтому не отравляются сообщения на e-mail. Для исправления замените строку 52:
$letter_path = PATH.'/includes/letters/newmessage.txt';
$letter_path = PATH.'/languages/ru/letters/newmessage.txt';
Реклама #
vitalson9 13 лет назад #
+
Настёна 13 лет назад #
MonAmur 13 лет назад #
Марат 13 лет назад #
MonAmur 13 лет назад #
Марат 13 лет назад #
MonAmur 13 лет назад #
Бергал 13 лет назад #
Марат 13 лет назад #
Марат 13 лет назад #
но до конца июля однозначно не смогу заняться этим. лето... реал...
AlekS 13 лет назад #
Марат 13 лет назад #
lezginka.ru 11 лет назад #
где-то на сайте видел такое, то ли хак, то ли плагин
Марат 11 лет назад #
Mel 13 лет назад #
nikitka 13 лет назад #
Марат 13 лет назад #
nikitka 13 лет назад #
nikitka 13 лет назад #
Марат 13 лет назад #
WALTERZ 12 лет назад #
Марат 12 лет назад #
В дни, когда нет именинников, не выполнялись другие задачи CRON из-за того, что в строке 24 прописано
Александр 12 лет назад #
alpik 11 лет назад #
Майкл 11 лет назад #
Просто перекодировать в utf-8 и будет работать. Проверено!
alpik 11 лет назад #
Майкл 11 лет назад #
EVV 11 лет назад #
Вот как выглядит:
Марат 11 лет назад #
EVV 11 лет назад #
Марат 11 лет назад #
Как преобразовали файл? Если в Notepad++, то там в меню Кодировки есть два пункта:
1. Кодировать в UTF-8(без BOM)
2. Преобразовать в UTF-8 без BOM
Первый пункт меняет кодировку, но не сохраняет в файле. Второй пункт меняет и сохраняет. Нужно воспользоваться вторым пунктом.
lezginka.ru 11 лет назад #
Майкл 11 лет назад #
Просто в какой то момент заметил, что письма на эл. почту о поздравлении с Днём рождения не приходили.
После небольших правок письма стали приходить.
Не забываем Спасибо говорит Марату.
Майкл 11 лет назад #
В файле happybirthday.php не забываем поменять имя домена sait.ru на свой
Актуально для версии 1.10 и выше.
Марат 10 лет назад #
Max 10 лет назад #
А возможно ли ограничить количество отправок поздравлений в день с помощью самого скрипта?
При установленном InstantVideo рекомендуется запускать cron раз в 10 минут... В этом случае радости от поздравлений именинник точно не получит
Марат 10 лет назад #
Max 10 лет назад #