IMHOblog.ORG » Веб, сайты, движки » DataLife Engine DLE ДЛЕ модули хаки простой треп » Ник получателя в рассылке
МЫСЛИ
cms,

php

,
блог
,

веб

,

движки

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

сайтостроение

, сео,
скрипты
, сплетни, феменизм, халява,
юмор
, Яндекс
ВАШЕ МНЕНИИЕ
Почему Вы здесь?

Блог у тебя класный smile
Пришел почитать умные мысли bully
Фиг знает no
Я? Где я? tongue
ПАНЕЛЬ УПРАВЛЕНИЯ
Логин:
Пароль:
 
Новые комментарии
» Есть вопросы? (4)
» Принимаю "заявки" ... (1)
» Просмотры ... (1)
» Кирилические url (2)
» Летнее время ... (5)
Найти на сайте


Точное вхождение
Подписаться на новости сайта
Введите Ваш e-mail:

Вы не робот?
Включите эту картинку для отображения кода безопасности

Отказаться о подписки

  Популярные записи в блоге

Летнее время (перевод часов, ... Сегодня ночью, множество стран мира в очередной раз перевили часы на летнее время, т.е. на один час ...

Есть вопросы? Тут посмотрел статистику посещаемости и подумалось что люди ищут ответы на различные вопросы, чаще ...

Кирилические url Вот как-то так сделал, как видете на блоге появились url в нестандартном зато кириличсеком ...

Просмотры страницы (делаем ... При просмотре новости скрипт DLE считает просмотры (если конечно включено в настройках, вот только ...

Принимаю "заявки" :) Если вам нужно сделать модуль или хак для ДЛЕ, но Вы не знаете как, то вам сюда :) жмем подробнее...

Ник получателя в рассылке

Удобная штука, не пойму почему не сделанно стандартно в дле.
Нужно было мне сделать как то рассылку зарегестриованным посетителям сайта, но стандартно рассылка получается обезличностная, нельзя обратиться к каждому получателю по нику, как мне показалось это не правильно. Вот правкой этого мы и займеся.
Что на нужно, нужно заменить тег, например {user}, на имя получателя, это и начнем делать .
Файл рассылающий письма лежит по адресу engine/ajax/newsletter.php
Открываем его, смотрим, видим многокода (хотя не так уж и много), пугаемся :), упокаивамся, вспоменаем о хорошей функции str_replace*, вот её и применим.
В начале нам нужно узнать ник получателя, для этого немного изменим запрос к БД
Найти
SELECT user_id FROM

Заменить на
SELECT user_id, name FROM

Найти
SELECT email FROM

Заменить на
SELECT email, name FROM


Теперь мы знаем ник получателя, осталось заменить тег на это имя.
найти
    $db->query("INSERT INTO " . USERPREFIX . "_pm (subj, text, user, user_from, date, pm_read, folder) values ('$title', '$message', '$row[user_id]', '$member_id[name]', '$time', 'no', 'inbox')");

заменить на
    $message_name = str_replace ( '{user}', stripslashes ( $row['name']), $message);
    
    $db->query("INSERT INTO " . USERPREFIX . "_pm (subj, text, user, user_from, date, pm_read, folder) values ('$title', '$message_name', '$row[user_id]', '$member_id[name]', '$time', 'no', 'inbox')");

найти дальше
        foreach ($h_mail as $key => $email) {
            $mail->bcc = $bcc[$key];
            $mail->send ($email, $title, $message);
        }

заменить на
        foreach ($h_mail as $key => $email) {
            $message_name = str_replace ( '{user}', stripslashes ( $row['name']), $message);
            $mail->bcc = $bcc[$key];
            $mail->send ($email, $title, $message_name);
        }

найти
           $mail->send ($row['email'], $title, $message);

заменить на
             $message_name = str_replace ( '{user}', stripslashes ( $row['name']), $message);
           $mail->send ($row['email'], $title, $message_name);


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

Не забудьте в начале протестировать хак, для этого можете создать группу (например tested) в ней несколько "demo-пользователей", этой группе и поведите рассылку, разумеется e-mai у этих demo-пользователе должен быть тот к которому вы имеете доступ (дабы проверить получение письма).

Только не забудтье отключить в настройках дле "Использовать поле BCC для рассылки", установить в "нет", иначе может быть полный "хаос" в получателях

* str_replace - возвращает строку в которой все вхождения нужного нам тега заменены на нужное нам значение, синтаксис такой:
str_replace ($search , $replace , $subject)
т.е. все вождения $search будут заменены на $replace, замена будет выполнена в теле $subject которое уже с необходимыми заменами и будет возвращенно функцией.

Читайте также: Кирилические url, Просмотры страницы (делаем только уникальные), Отправка сообщений об mysql ошибках, Делаем красивывми leech ссылки, Не показывать форму голосования тем кто проголосовал

Ключевые теги: веб, php, движки
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Рейтинг:
  • 51
| 1 | 2 | 3 | 4 | 5 |  (голосов: 24)
Комментарии (0)  Распечатать
html-cсылка на публикацию:
BB-cсылка на публикацию:
Прямая ссылка на публикацию:  

Закладки:
Добавить на News2.ru Google slashdot YahooMyWeb Digg Technorati Delicious Забобрить эту страницу! Добавить на Newsland.ru Добавить на СМИ2 Добавить на RUmarkz Добавить на Ваау! Добавить на rucity.com Добавить в закладки МоёМесто.ru Добавить на Habr Добавить на Moi Novosti Добавить страницу к Mister Wong Добавить на Moikrug Добавить на Myscoop Добавить на 100zakladok Добавить на NewsGrad
Информация
 
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.

 
 
© 2009 ИМХО блог
Программирование: Alex
При использваонии материалов указание источника IMHOblog.ORG и гипертекстовая ссылка на http://www.imhoblog.org/ обязательны
Время генерации страницы: 0.02285 секунд
Время компиляции шаблона: 0.0011 секунд
MySQL запросов: 4 (0.00551 секунд)