CAB пишет:
Мне кажется я нашёл решение.Предупреждения об удалении модом так и не отправляются.
1. Код выложенный мной в этих сообщениях http://exbb.info/community/topic...67451#1370467451 и http://exbb.info/community/topic...47514#1370547514 не использовать! Если уже его использовали - верните всё как было до этого.
2. В файле modules/mailer/Mailer.class.php функцию _toQueue заменяем на следующий код
CODE:
function _toQueue($args, $priority) {
global $fm;
$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 = $fm->_Read(FM_USERS);
if (is_array($args[2])) {
foreach ($args[2] as $user_id => $flag) {
if (isset($users[$user_id]['m']) && !preg_match("#(".$skip_mails.")$#is",$users[$user_id]['m'])) {
$args_temp[$user_id] = $users[$user_id]['m'];
}
}
$args[2] = array();
$args[2] = $args_temp;
} else if (!isset($args[2]) || preg_match("#(".$skip_mails.")$#is",$args[2])) {
return;
}
// Config start
$config = $this->getConfig();
$id = $config['id'] = isset($config['id']) ? $config['id'] : 1;
// List start
$list = $fm->_Read2Write($fpList, FM_MAILER_LIST_FILE);
$list[$id] = array($priority, true);
if (is_array($args[2])) {
$list[$id][2] = count($args[2]);
}
// Mail
$fm->_Read2Write($fpMail, sprintf(FM_MAILER_MAIL_FORMAT, $id));
$fm->_Write($fpMail, array($args[0], $args[1], $args[2], $args[3], $args[4]));
// List end
ksort($list);
uasort($list, create_function('$a, $b', 'if ($a[0] == $b[0]) return 0; return $a[0] < $b[0] ? -1 : 1;'));
$fm->_Write($fpList, $list);
// Config end
$config['id']++;
$this->saveConfig($config);
return true;
}
global $fm;
$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 = $fm->_Read(FM_USERS);
if (is_array($args[2])) {
foreach ($args[2] as $user_id => $flag) {
if (isset($users[$user_id]['m']) && !preg_match("#(".$skip_mails.")$#is",$users[$user_id]['m'])) {
$args_temp[$user_id] = $users[$user_id]['m'];
}
}
$args[2] = array();
$args[2] = $args_temp;
} else if (!isset($args[2]) || preg_match("#(".$skip_mails.")$#is",$args[2])) {
return;
}
// Config start
$config = $this->getConfig();
$id = $config['id'] = isset($config['id']) ? $config['id'] : 1;
// List start
$list = $fm->_Read2Write($fpList, FM_MAILER_LIST_FILE);
$list[$id] = array($priority, true);
if (is_array($args[2])) {
$list[$id][2] = count($args[2]);
}
$fm->_Read2Write($fpMail, sprintf(FM_MAILER_MAIL_FORMAT, $id));
$fm->_Write($fpMail, array($args[0], $args[1], $args[2], $args[3], $args[4]));
// List end
ksort($list);
uasort($list, create_function('$a, $b', 'if ($a[0] == $b[0]) return 0; return $a[0] < $b[0] ? -1 : 1;'));
$fm->_Write($fpList, $list);
// Config end
$config['id']++;
$this->saveConfig($config);
return true;
}
Как обычно прошу Юру проверить правильность написания и всех протестировать на своих форумах.