форум vBSupport.ru > vBSupport.ru > Requests > Кандидатский
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
RouR
Простоузер
Default Подписка на новые темы в конкретном разделе
1

На форуме существует два типа подписки:
  1. Подписка на новые сообщения в конкретной теме
  2. Подписка на новые темы в конкретном разделе

Подписка на раздел, с уведомлением по почте, бывает раз в день и раз в неделю. Мне понадобилось сделать этот вид подписки более частым. И я расскажу как ежедневную и еженедельную рассылку заменить на 10-минутную и еже часовую (vB 4.1.10):
  1. Идём в админку -> Запланированные задачи -> Управление задачами. Находим две задачи - ежедневная и еженедельная рассылка (digestdaily, digestweekly).
  2. Редактируем каждую:
    • Изменим заголовки на "10 мин", "60 мин"
    • Изменим время вызова на *,*,*,(0,10,20,30,40,50) и *,*,*,(10,-,-,-,-,-)
    Также видим что задачи вызывают выполнение двух скриптов:
    • ./includes/cron/digestweekly.php
    • ./includes/cron/digestdaily.php

    Посмотрим что в них:
    PHP Code:
    exec_digest(2); 
    PHP Code:
    exec_digest(3); 
    Сама функция определена в /includes/functions_digest.php
  3. Редактируем /includes/functions_digest.php
    Находим
    PHP Code:
        // type = 2 : daily
        // type = 3 : weekly

        
    $lastdate mktime(00); // midnight today
        
    if ($type == 2)
        { 
    // daily
            // yesterday midnight
            
    $lastdate -= 24 60 60;
        }
        else
        { 
    // weekly
            // last week midnight
            
    $lastdate -= 24 60 60;
        } 
    Заменяем на
    PHP Code:
        //$lastdate = mktime(0, 0); // midnight today
        
    $lastdate time(); //current Unix timestamp
        
    if ($type == 2)
        { 
    // daily
            // yesterday midnight
            //$lastdate -= 24 * 60 * 60;
            
    $lastdate -= 10 60;
        }
        else
        { 
    // weekly
            // last week midnight
            //$lastdate -= 7 * 24 * 60 * 60;
            
    $lastdate -= 60 60;
        } 
  4. Последние штрихи - изменим фразы, отображаемые пользователю.
    Идём в админку -> Языки и фразы -> Управление фразами
    Для типа фраз GLOBAL находим daily_updates_by_email и задаём "(10 мин) Ежедневное обновление по электронной почте", для weekly_ updates_ by_ email = "(60 мин) Ежедневное обновление по электронной почте"
Проверяем рассылку

Last edited by RouR : 02-24-2012 at 07:22 AM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Luvilla
Гость
Default

RouR, допустим...

1. опечатка:
Quote:
Originally Posted by RouR View Post
Подписка на раздел, с уведомлением по почте, бывает раз в день и раз в месяц
Quote:
Originally Posted by RouR View Post
Находим две задачи - ежедневная и еженедельная рассылка
2. в тексты не вникала
но раз уж всё равно лезем в задачи, не логичнее ли было бы просто добавить ещё две свои задачи, оставив штатные как есть?
Вы не допускаете, что юзерам не нужен обвал писем с форума так часто, их устроило бы уведомление раз в сутки?
 
 
RouR
Простоузер
Default
0

Luvilla,
1. Опечатку исправил.
2. А это уже у кого какие задачи стоят. В моём случае - это часть внутрикорпоративного портала, и уведомление раз в неделю(день) работникам это точно поздно и ненужно. А раз ненужно то зачем хранить? Лучше переделать.
3. Желающие могут добавлять свои задачи, или вообще сделать это отдельным модом/хаком. Я показал отправную точку, как оно работает.
 
 
jeffy
Простоузер
Default
0

спасибо, мне понадобилось сделать 4 вида рассылки: каждый час, каждый день, неделю и месяц.
в принципе понятно что и где править, только я не понял как добавить еще два пункта в список для выбора, который пользователю показывается. ну там которые фразы daily_updates_by_email, создать новую фразу понятно, но вот как её в список непонятно
 
 
RouR
Простоузер
Default
1

jeffy, Админка - Стили и шаблоны - поиск в шаблонах: найти daily_updates_by_email. Нужен шаблон subscribe_choosetype, внутри него
Quote:
<option value="2" {vb:raw emailselected.2}>{vb:rawphrase daily_updates_by_email}</option>
<option value="3" {vb:raw emailselected.3}>{vb:rawphrase weekly_updates_by_email}</option>
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 05:45 AM.


Powered by vBulletin® Version vBSupport Edition
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...