[Ищу] Подписка на новости

Тема в разделе "DataLife Engine", создана пользователем dark_forces, 21 ноя 2012.

  1. dark_forces

    dark_forces

    Регистрация:
    13 ноя 2012
    Сообщения:
    8
    Симпатии:
    0
    Нужен хук - гость мог бы подписаться на новости введя свой маил и проверочный код
     
  2. Radu

    Radu

    Регистрация:
    29 окт 2012
    Сообщения:
    69
    Симпатии:
    8
    на данный момент не знаю о таком хаке или модуле, на многих форумах встречал подобные вопросы но никто так и не выложил решение. Думаю что самый актуальный выход это использовать feedburner.
     
  3. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.350
    Симпатии:
    1.380
    я видел только под заказ такие делали.
     
  4. dark_forces

    dark_forces

    Регистрация:
    13 ноя 2012
    Сообщения:
    8
    Симпатии:
    0
  5. mtrolik

    mtrolik

    Регистрация:
    7 дек 2012
    Сообщения:
    195
    Симпатии:
    39
    Попробуй feedburner
     
  6. AlexV

    AlexV

    Регистрация:
    21 мар 2013
    Сообщения:
    78
    Симпатии:
    32
    Я тоже искал и не нашел именно для гостей. Есть массовая рассылка, но хочется не вручную, а автоматом что бы все делалось. Гость ввел мэйл и получал новости. Как найдете решение, хоть и платное, дайте знать пожалуста.
     
  7. Pepsi

    Pepsi

    Регистрация:
    26 окт 2012
    Сообщения:
    7
    Симпатии:
    2
    AlexV нравится это.
  8. mtrolik

    mtrolik

    Регистрация:
    7 дек 2012
    Сообщения:
    195
    Симпатии:
    39
  9. Wooka

    Wooka

    Регистрация:
    7 май 2013
    Сообщения:
    10
    Симпатии:
    3
    Обращайся - напишу модуль :Smile:
     
  10. Wooka

    Wooka

    Регистрация:
    7 май 2013
    Сообщения:
    10
    Симпатии:
    3
    Ладно,т.к делать нечего - напишу простенький модуль.
    В модули написан основной функционал,поэтому доработка под ваши нужды платная :smile:

    1.Делаем sql запрос
    PHP:
    CREATE TABLE
    `dle_subscribe_news` (
    `
    idINT(11NOT NULL AUTO_INCREMENT,
    `
    emailCHAR(30NOT NULL,
    `
    subscribeTINYINT(6NOT NULL,
    PRIMARY KEY(`id`)
    )
    2.Правим engine/engine.php
    находим
    PHP:
    case "addnews" :
    include 
    ENGINE_DIR '/modules/addnews.php';
    break;
    внизу добавляем
    PHP:
    case "subscribe" :
    include 
    ENGINE_DIR '/modules/subscribe.php';
    break;
    находим
    PHP:
    elseif ($do == 'addnews'$nam_e $lang['title_addnews'];
    внизу добавляем

    PHP:
    elseif ($do == 'subscribe'$nam_e "Подписатся на новости";
    3.Создаем файл subscribe.php в дериктории engine/modules/

    PHP:
    <?php
    /*
    =====================================================
    Автор: Wooka
    -----------------------------------------------------
    Назначение: подписка на новости
    =====================================================
    */
     
    if( ! defined'DATALIFEENGINE' ) ) {
    die( 
    "Hacking attempt!" );
    }
     
    if( isset( 
    $_POST['send'] ) ) {
    include_once 
    ENGINE_DIR '/classes/mail.class.php';
    $mail = new dle_mail$config );
     
    $email=trim(htmlspecialchars($_POST["email"]));
    if(!
    preg_match("/[0-9a-z_]+@[0-9a-z_^.-]+.[a-z]{2,3}/i",$email))
    {
    $error.="Вы ввели неверный <b>E-Mail</b><br>";
    }
     
    $sql_result $db->query"SELECT * FROM " USERPREFIX "_subscribe_news where email = '{$email}', subscribe = 1 " );
    $row $db->get_row$sql_result );
     
    if(!empty(
    $row['id']))
    {
    $error.="Вы уже подписаны на новости<br>";
    }
     
    $sql_result $db->query"SELECT * FROM " USERPREFIX "_subscribe_news where email = '{$email}'" );
    $input $db->get_row$sql_result );
    if (empty(
    $input['id']))
    {
    $db->query"INSERT INTO " USERPREFIX "_subscribe_news (email,subscribe) values ('{$email}','1')" );
    }
     
    if(@
    $error){
    msgbox("Внимание, обнаружена ошибка"$error);
    }else
    {
    msgbox("Спасибо""Вы подписались на новость");
    }
     
    $tpl->copy_template "<form method=\"post\" action=\"\">\n<input name=\"email\" type=\"text\" /><center><input name=\"send\" type=\"submit\" value=\"Отправить\" /></center></form>";
    $tpl->compile'content' );
    $tpl->clear();$tpl->compile'content' );
    $tpl->clear();
     
    ?>
    4.Правим файл engine/modules/addnews.php
    Ищем
    PHP:
    $db->query"INSERT INTO " PREFIX "_post (date, autor, short_story, full_story, xfields, title, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_br, symbol, tags) values ('$thistime', '{$member_id['name']}', '$short_story', '$full_story', '$filecontents', '$title', '', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_br', '$catalog_url', '" $_POST['tags'] . "')" );
    Внизу добавляем
    PHP:
    include_once ENGINE_DIR '/classes/mail.class.php';
     
    $mail = new dle_mail$config );
     
    $tema "Новая новость";
    $test = <<<HTML
    Здравствуйте!
    Была доабвлена новая новость.
    HTML;
     
    $subscribe $db->query"SELECT * FROM " USERPREFIX "_subscribe_news where subscribe = 1 " );
     
    while (
    $subscribe1 $db->get_row$subscribe ))
    {
    $mail->send$subscribe['email'], $tema$test);
    }
    Работоспособность модуля не проверял , т.к было влом :smile:
    Если полезут ошибки - пишите,буду проверять и править.

    Ссылка на вашу подписку http://адрес сайта/index.php?do=subscribe