| 
				
					| 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:Я уже точно не помню, что я в нём нахимичил, но вроде ковырял только функцию _toQueue.	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;
 }
 
 
 (Отредактировано автором: 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);
 }
 
 Предупреждения об удалении модом так и не отправляются. Юра, думаю тут я без твоей помощи не обойдусь...
  |  
					|  |  |  |