вопрос
кто поможет поправить код уведомления Автора новости о новых комментариях.
предисловие:
- создал колонку email в таблице Post, сюда записываются e-mail авторов новости;
- создал колонку com_subs в таблице Post, в принципе имеет два значения 0 и 1, по умолчанию стоит 1 (тоесть подписан на нов комменты), т.к. пока не знаю как привязать в чекбоксу в addnews.html
Код ниже нашел в инете, хотел поправить под себя, чего-то не фурычит...
предисловие:
- создал колонку email в таблице Post, сюда записываются e-mail авторов новости;
- создал колонку com_subs в таблице Post, в принципе имеет два значения 0 и 1, по умолчанию стоит 1 (тоесть подписан на нов комменты), т.к. пока не знаю как привязать в чекбоксу в addnews.html
Код ниже нашел в инете, хотел поправить под себя, чего-то не фурычит...
$msg_title = "Новый комментарий на сайте";
$msg_text = "Поступил новый комментарий http://" . $_SERVER ['HTTP_HOST'] . "/index.php?newsid=$post_id\n
Автор: $name\n
Комментарий:\n $comments\n\n
Для отмены всех уведомлений о новых комментариях:\n
http://" . $_SERVER ['HTTP_HOST'] . "/unsubscribe_com.php?user_id=$member_id[user_id]";
$msg_text = str_replace ( "<br />", "\n", $msg_text );
$msg_text = strip_tags ( $msg_text );
$row = $db->super_query ( "SELECT com_subs FROM " . PREFIX . "_post WHERE autor='$member_id[autor_id]' LIMIT 0,1" );
$com_subs = $row ['com_subs'];
if ($com_subs == 1) {
$sql_result = $db->query ( "SELECT autor, email FROM " . PREFIX . "_post WHERE post_id = '$post_id'" );
while ( $row = $db->get_row ( $sql_result ) ) {
$autor = $row ['autor'];
$email = $row ['email'];
$mail->send ( $email, $msg_title, $msg_text );
}
}
if ($db->safesql ( $_REQUEST ['p_com_subs'] ) == 1 && $com_subs!=1) {
$db->query ( "UPDATE " . PREFIX . "_post set com_subs='1' where user_id='$member_id[autor_id]'" );
}
Подписки авторов статей на комментарии при добавлении новостей (пока только с сайта*)
Установка:
Найти
if( $user_group[$member_id['user_group']]['allow_fixed'] ) $news_fixed = intval( $_POST['news_fixed'] );
else $news_fixed = 0;
ниже добавить
if( $user_group[$member_id['user_group']]['allow_subscribe'] ) $allow_subscribe = intval( $_POST['allow_subscribe'] );
else $allow_subscribe = 0;
найти
if( !$approve and $config['mail_news'] ) {
include_once ENGINE_DIR . '/classes/mail.class.php';
$mail = new dle_mail( $config );
выше добавить
if ($allow_subscribe == "1" AND $user_group[$member_id['user_group']]['allow_subscribe']) {
if(function_exists('openssl_random_pseudo_bytes')) {
$stronghash = md5(openssl_random_pseudo_bytes(15));
} else $stronghash = md5(uniqid( mt_rand(), TRUE ));
$salt = str_shuffle($stronghash);
$s_hash = "";
for($i = 0; $i < 10; $i ++) {
$s_hash .= $salt{mt_rand( 0, 31 )};
}
$s_hash = md5($s_hash);
$db->query( "INSERT INTO " . PREFIX . "_subscribe (user_id, name, email, news_id, hash) values ('{$member_id['user_id']}', '{$member_id['name']}', '{$member_id['email']}', '{$row['id']}', '{$s_hash}')" );
}
найти
if( $user_group[$member_id['user_group']]['allow_fixed'] ) $admintag .= "<br /><input type=\"checkbox\" name=\"news_fixed\" id=\"news_fixed\" value=\"1\" /><label for=\"news_fixed\"> {$lang['add_al_fix']}</label>";
$tpl->set( '{admintag}', $admintag );
} else
$tpl->set( '{admintag}', "" );
заменить на
if( $user_group[$member_id['user_group']]['allow_subscribe'] ) $admintag .= "<br /><input type=\"checkbox\" name=\"allow_subscribe\" id=\"allow_subscribe\" value=\"1\" /><label for=\"allow_subscribe\"> Подписаться на комментарии</label>";
$tpl->set( '{admintag}', $admintag );
} else
if( $user_group[$member_id['user_group']]['allow_subscribe'] ) $admintag .= "<br /><input type=\"checkbox\" name=\"allow_subscribe\" id=\"allow_subscribe\" value=\"1\" /><label for=\"allow_subscribe\"> Подписаться на комментарии</label>";
$tpl->set( '{admintag}', $admintag );
Готово!