ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList

Страниц (28): В начало « ... 9 10 11 12 [13] 14 15 16 17 ... » В конец

> Найдено сообщений: 407
Александр Михалицын Отправлено: 18 марта 2010 — 15:48 • Тема: Массовая рассылка с админки • Форум: Решение проблем

Ответов: 47
Просмотров: 0
vipraskrutka,
так моя реализация так и делает. Разница лишь в том, что размер этой самой "пачки" определяется автоматически.)) Улыбка
Александр Михалицын Отправлено: 18 марта 2010 — 15:31 • Тема: Массовая рассылка с админки • Форум: Решение проблем

Ответов: 47
Просмотров: 0
vipraskrutka,
я сделал фикс для FM RC 1, в файле fm.class.php (найти и заменить функцию):
CODE:
/*
_SendMail функция отправки e-mail через sendmail сервера
*/
function _SendMail($list, $user_id_offset=0) {//sys_improve (Добавил аргумент)
$headers = 'From: '.$list[0].' <'.$list[1].">\n";
$headers .= 'Reply-To: '.$list[1]."\n";
$headers .= 'Return-Path: '.$list[1]."\n";
$headers .= "MIME-Version: 1.0\nContent-type: text/plain; charset=windows-1251\nContent-Transfer-Encoding: 8bit\nDate: " . gmdate('D, d M Y H:i:s', time()) . " UT\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\n";

$skip_mails = (file_exists(FM_SKIP_MAILS)) ? file(FM_SKIP_MAILS):array();
if (count($skip_mails) !== 0) {
unset($skip_mails[0]);
$skip_mails = preg_replace("#(\r\n|\|$)#","",trim(implode("|",$skip_mails)));
} else {
$skip_mails = "@";
}

$users = $this->_Read(FM_USERS);
if (is_array($list[2])) {

@set_time_limit(360);

$before_time = time();

foreach ($list[2] as $user_id => $flag) {
$user_id = $user_id_offset + $user_id;
if (isset($users[$user_id]) && !preg_match("#(".$skip_mails.")$#is",$users[$user_id]['m'])) {
mail($users[$user_id]['m'], $list[3], $list[4], $headers);

//Если разница максимального времени выполнения скрипта и времени между началом цикл
//и временем текущей итерации цикла <= 2, то завершаем цикл и сохраняем смещение :-)
if ((360 - (time() - $before_time)) <= 2)
{
$this->_Read2Write($fp, 'data/massmail_tmpdb.php');
$this->_Write($fp, array($list, $uid_offset));
$fm->_Message($fm->LANG['AdminMassMail'],$fm->LANG['MassMailNSended'],'setmembers.php?action=massmail_offset',1);
}
}
}
} else {
if (!preg_match("#(".$skip_mails.")$#is",$list[2])) {
mail($list[2], $list[3], $list[4], $headers);
}
}
}

function _SendMail_with_offset()
{
$tmp_db = $this->_Read('data/massmail_tmpdb.php');
$this->_SendMail($tmp_db[0], $tmp_db[1]);
}


В файле setmembers.php, после:
CODE:
} elseif ($fm->input['action'] == 'massmail') {
if ($fm->_Intval('dosend') === 1) {
if ($fm->input['subject'] == '' || $fm->input['message'] == '') {
$fm->_Message($fm->LANG['AdminMassMail'],$fm->LANG['EmailNotEmpty'],'',1);
}
$allusers = $fm->_Read(FM_USERS,FALSE);
SkipMails();
array_filter($allusers,'MAP_MAIL');
unset($allusers);

$total_mails = sizeof($usersmails);
if ($total_mails > 0) {
$message = sprintf ($fm->LANG['MassMailText'],
$fm->exbb['boardname'],
$fm->exbb['boardurl'],
$fm->input['message']);
$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$usersmails,$fm->input['subject'],$message);
$fm->_WriteLog($fm->LANG['LogMassMail'],1);
$fm->_Message($fm->LANG['AdminMassMail'],sprintf($fm->LANG['MassMailSended'],$total_mails),'setmembers.php?action=massmail',1);
} else {
$fm->_Message($fm->LANG['AdminMassMail'],$fm->LANG['EmailAdminError'],'',1);
}
} else {
include('./admin/all_header.tpl');
include('./admin/nav_bar.tpl');
include('./admin/mass_mail.tpl');
include('./admin/footer.tpl');
}

добавить:
CODE:
} elseif ($fm->input['action'] == 'massmail_offset') {
$fm->_SendMail_with_offset();


lang_admin_setmembers.php
CODE:
$this->LANG['MassMailNSended'] = 'Сообщение разослано на ряд адресов, но рассылка еще не окончена, сейчас произойдет переадресация и рассылка продолжится.';

Я не тестировал (поскольку столь крупной базы у меня нет), если кто-то может -- буду рад если вы протестируете на локалке с Денвером скрипт рассылки.

В отличие от скрипта WR, моя реализация разбивает рассылку не по заданному количеству писем, а динамически, упираясь на время выполнения скрипта.
Александр Михалицын Отправлено: 18 марта 2010 — 14:48 • Тема: Массовая рассылка с админки • Форум: Решение проблем

Ответов: 47
Просмотров: 0
vipraskrutka,
ой! Как сложно. Киньте мне этот скрипт прикручу к форуму лучше. Улыбка
Александр Михалицын Отправлено: 17 марта 2010 — 17:01 • Тема: Массовая рассылка с админки • Форум: Решение проблем

Ответов: 47
Просмотров: 0
Defenderyk,
да работает вроде, сколько юзеров на форуме у тебя зарегистрировано? Улыбка

Надо метод $fm->_SendMail фиксить, чтобы не разом все отправлял, а кусочками...
Сегодня-завтра накатаю фикс. Подмигивание
(Добавление)
Кстати, Defenderyk, попробуй-ка в fm.class.php
заменить строку @set_time_limit(360); на set_time_limit(3600); (убрал оператор @, чтобы вылетел ворнинг если запрещен сеттаймлимит, ну и время поменял. Улыбка
Александр Михалицын Отправлено: 17 марта 2010 — 16:37 • Тема: ExBB FM 1.0 RC1 • Форум: Релизы

Ответов: 203
Просмотров: 0
alexx,
если стоит php 5 -- то можно уже сейчас (там и так объекты по ссылке передаются),
а у кого php 4, лучше оставить амперсанд.
Александр Михалицын Отправлено: 15 марта 2010 — 14:36 • Тема: Обновлённый редактор сообщений • Форум: Обсуждение

Ответов: 30
Просмотров: 0
Дмитрий Полюхов,
дизайн может и да, но http://exbb.info/community/javas...ript/formcode.js Не понял
Александр Михалицын Отправлено: 11 марта 2010 — 13:00 • Тема: Архив версий форума • Форум: Обсуждаем

Ответов: 45
Просмотров: 0
Леголегс,
да я так и понял. Подмигивание
(Добавление)
Леголегс,
готово. Радость
Александр Михалицын Отправлено: 11 марта 2010 — 08:27 • Тема: Архив версий форума • Форум: Обсуждаем

Ответов: 45
Просмотров: 0
Леголегс,
и что написать? Подмигивание
Типа вы уверены что стоит качать? Подмигивание
Александр Михалицын Отправлено: 11 марта 2010 — 02:42 • Тема: Для создания инсталлятора нужна ваша помощь • Форум: Обсуждение

Ответов: 9
Просмотров: 0
Леголегс,
вот видите, я же говорил, что на ГХ функции задисаблены, а не ГХ стоит дорого... Улыбка Так что ваше решение скорее всего будет кстати для владельцев VPS... Подмигивание

Випраскрутка,
а у вас же свой сервак? Исправьте php.ini! Подмигивание
Александр Михалицын Отправлено: 10 марта 2010 — 16:15 • Тема: Архив версий форума • Форум: Обсуждаем

Ответов: 45
Просмотров: 0
Леголегс,
Дима Полюхов отыскал мне. Подмигивание
(Добавление)
Гы-гы. Теперь при скачке любой старой версии выводится алерт (скрипт небольшой написал).
Александр Михалицын Отправлено: 10 марта 2010 — 15:35 • Тема: Архив версий форума • Форум: Обсуждаем

Ответов: 45
Просмотров: 0
Добавил версию "ExBB All Mods 1.9.3". Это кстати был первый ExBB, который я поставил... А потом узнал про твойвеб, пришел туда, и Маркус мне сказал обновится до FM 1.0 Beta... Улыбка

З.Ы. Кто мне даст дистрибутив FM 1.0 Beta? Радость
Александр Михалицын Отправлено: 10 марта 2010 — 09:42 • Тема: Архив версий форума • Форум: Обсуждаем

Ответов: 45
Просмотров: 0
electron,
даа.... вообще! Подмигивание
Александр Михалицын Отправлено: 10 марта 2010 — 04:23 • Тема: Архив версий форума • Форум: Обсуждаем

Ответов: 45
Просмотров: 0
У кого-нибудь есть FM 1.0 Beta? Улыбка
Александр Михалицын Отправлено: 9 марта 2010 — 16:40 • Тема: Мод: Переход по внешним ссылкам через редирект • Форум: Модификации и дополнения

Ответов: 257
Просмотров: 0
Rutir123,
а по понятнее вопрос задать? Подмигивание
Александр Михалицын Отправлено: 9 марта 2010 — 16:09 • Тема: Каким образом изменить формат вывода ссылок в шапке? • Форум: Решение проблем

Ответов: 6
Просмотров: 0
Rutir123,
какую? Улыбка

Страниц (28): В начало « ... 9 10 11 12 [13] 14 15 16 17 ... » В конец

Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.029]     [ ]