CAB |
Отправлено: 22 мая 2013 — 20:06
|
Super Member
Покинул форум
Сообщений всего: 629
Дата рег-ции: Февр. 2011
Откуда: Москва
Репутация: 30
|
yura3d пишет:Лицензия: Shareware.
Данный мод не лицензируется в соответствии с GNU GPL. Вы можете свободно использовать и распространять его при условии, что исходный код файлов не был изменён. Не разрешено использование частей данного мода или принципов его работы в дистрибутивах, производных от оригинального ExBB FM , но имеющих отличное от оригинала название и/или не содержащих в копирайте на всех страницах форума активную ссылку на сайт проекта ExBB , а также в прочих программах и скриптах, основанных на ядре ExBB. Пишу данное сообщение для тех, кто, как и я, читают и соблюдают лицензии.
Я оплатил Юре "отступные" за смену лицензии для данного мода с Shareware на GNU GPL v2+. Так, что использующие уже этот мод с нарушением требований версии Shareware, могут, что называется, спать спокойно.
Надеюсь, что Юра, всё-таки, найдёт время и сделает по этому поводу "официальное" заявление. |
|
|
yura3d_2 |
Отправлено: 23 мая 2013 — 14:55
|
Junior Member
Покинул форум
Сообщений всего: 64
Дата рег-ции: Апр. 2013
Репутация: 2
|
CAB пишет:yura3d пишет:Лицензия: Shareware.
Данный мод не лицензируется в соответствии с GNU GPL. Вы можете свободно использовать и распространять его при условии, что исходный код файлов не был изменён. Не разрешено использование частей данного мода или принципов его работы в дистрибутивах, производных от оригинального ExBB FM , но имеющих отличное от оригинала название и/или не содержащих в копирайте на всех страницах форума активную ссылку на сайт проекта ExBB , а также в прочих программах и скриптах, основанных на ядре ExBB. Пишу данное сообщение для тех, кто, как и я, читают и соблюдают лицензии.
Я оплатил Юре "отступные" за смену лицензии для данного мода с Shareware на GNU GPL v2+. Так, что использующие уже этот мод с нарушением требований версии Shareware, могут, что называется, спать спокойно.
Надеюсь, что Юра, всё-таки, найдёт время и сделает по этому поводу "официальное" заявление.
Подтверждаю написанное CAB'ом и прошу админов этого форума отредактировать первое сообщение темы, изменив в тексте сообщения (а также в инструкции по установке в прикреплённом файле) тип лицензии мода с Shareware на GNU GPL v2+(Отредактировано автором: 23 мая 2013 — 14:56) |
|
|
yura3d_2 |
Отправлено: 4 июня 2013 — 18:12
|
Junior Member
Покинул форум
Сообщений всего: 64
Дата рег-ции: Апр. 2013
Репутация: 2
|
CAB пишет:yura3d_2, подскажи, пожалуйста. До установки мода, а также при его отключении, E-Mail-адреса, указанные в файле data/skip_mails.php, пропускаются при отправке почты с форума, т.е. по ним почта не отправляется. Очень удобная вещь, как выясняется. Можно ли сделать так, чтобы этот файл срабатывал и при включенном моде?
Такой возможности изначально нет. Но можно сделать, если очень хочется |
|
|
CAB |
Отправлено: 5 июня 2013 — 21:24
|
Super Member
Покинул форум
Сообщений всего: 629
Дата рег-ции: Февр. 2011
Откуда: Москва
Репутация: 30
|
CAB пишет:Что для реализации такой возможности нужно? Юра, подскажи, пожалуйста, насколько правилен, для использования файла data/skip_mails.php с включенным модом, такой вариант содержимого файла modules/mailer/Mailer.class.php?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 = "@";
}
if (is_array($args[2])) {
foreach ($args[2] as $emails_id => $emails_flag) {
if (isset($emails_id) && !preg_match("#(".$skip_mails.")$#is",$emails_flag)) {
$args_temp[$emails_id] = $emails_flag;
}
}
$args[2] = array();
$args[2] = $args_temp;
} else if (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;
}
Я уже точно не помню, что я в нём нахимичил, но вроде ковырял только функцию _toQueue.(Отредактировано автором: 5 июня 2013 — 21:28) |
|
|
yura3d_2 |
Отправлено: 6 июня 2013 — 19:37
|
Junior Member
Покинул форум
Сообщений всего: 64
Дата рег-ции: Апр. 2013
Репутация: 2
|
CAB пишет:yura3d_2 пишет:Вроде бы проблем никаких на первый взгляд не вижу Юра, сейчас гонял мод с дополнением в разных вариантах отправки писем и увидел такую штуку: в некоторых вариантах, в частности при отправки уведомлений об обновлении темы и предупреждения об удалении, переменная $args[2] принимает значение не адреса почты и не массива адресов почты, а массива с цифрами вида [1]=>1 [3]=>1 [2]=>2 и тому подобное. Блокировка адресов в этом случае не срабатывает. Я не могу сообразить, как в этом случае скрипт понимает на какой адрес ему отправлять почту?
Это могут быть id пользователей, для которых предназначены письма. Хранить id вместо самих адресов e-mail выгоднее в плане экономии места и скорости работы, поэтому при массовых рассылках в очереди писем сохраняются только id. У меня, к сожалению, сейчас нету возможности посмотреть сам мод, поэтому конкретно не укажу, скажу лишь только, что копать нужно в сторону скрипта, отправляющего письма. Насколько я помню, он может запускаться в том числе и через Cron, надо посмотреть, какую функцию он запускает, и перенести ранее добавленные строки из _toQueue() в эту функцию |
|
|
CAB |
Отправлено: 6 июня 2013 — 19:38
|
Super Member
Покинул форум
Сообщений всего: 629
Дата рег-ции: Февр. 2011
Откуда: Москва
Репутация: 30
|
Виноват, немного соврал...
Предупреждения об удалении не отправляются модом. При этом переменная имеет вид [1]=>1 [2]=>2 [3]=>3. С отключенным модом отправляется всем выбранным.
Уведомления об обновлении темы отправляются, но переменная имеет вид [1]=>1 [2]=>1 [3]=>1, т.е. значение всегда 1.
(Добавление)
yura3d_2 пишет:копать нужно в сторону скрипта, отправляющего письма Для уведомлений об обновлении темы решение в следующих строкахCODE:
// Mail
$mail = $fm->_Read2Write($fpMail, sprintf(FM_MAILER_MAIL_FORMAT, $id));
$headers = $this->_makeHeaders($mail[0], $mail[1]);
$mail[2] = is_array($mail[2]) ? $mail[2] : array($mail[2]);
if (reset($mail[2]) === 1) {
$users = $fm->_Read(FM_USERS);
$uids = array_keys($mail[2]);
$mail[2] = array();
$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 = "@";
}
foreach ($uids as $offset => $uid) {
if (isset($users[$uid]) && !preg_match("#(".$skip_mails.")$#is",$users[$uid]['m'])) {
$mail[2][] = $users[$uid]['m'];
}
unset($uids[$offset]);
}
unset($users);
}
Предупреждения об удалении модом так и не отправляются. Юра, думаю тут я без твоей помощи не обойдусь... |
|
|
|