Багфикс url для e-mail сообщения о новом комментарии в новости DLE
В DLE существует удобная подписка на комментарии к новости по e-mail, кроме того она необходима Администрациям сайтов, но в этой функции есть неприятный момент, это само содержание приходящего сообщения, а вернее его функциональные возможности, чтобы их улучшить мы заменим неудобный и непонятный url приходящий в сообщении в виде сайт/index.php?newsid=106, на более понятный и несущий в себе информацию url согласно типу ЧПУ выбранному в настройках скрипта, например: сайт/106-ringationmod-v201.html, причём сделаем переход непосредственно к комментариям. Это сделает сообщение не только более правильным, но и удобным, раз в нём не предусмотрена информация о названии новости, в которую добавлен комментарий.
Исправляем:
1. Открываем engine/ajax/addcomments.php и ищем (примерно строка 51):
$user_group = get_vars( "usergroup" );
Выше вставляем:
$cat_info = get_vars ( "category" );
if ( ! is_array ( $cat_info ) ){
$cat_info = array ();
$db->query ( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" );
while ( $row = $db->get_row () ) {
$cat_info[$row['id']] = array ();
foreach ( $row as $key => $value ) {
$cat_info[$row['id']][$key] = stripslashes ( $value );
}
}
set_vars ( "category", $cat_info );
$db->free ();
}
if ( ! is_array ( $cat_info ) ){
$cat_info = array ();
$db->query ( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" );
while ( $row = $db->get_row () ) {
$cat_info[$row['id']] = array ();
foreach ( $row as $key => $value ) {
$cat_info[$row['id']][$key] = stripslashes ( $value );
}
}
set_vars ( "category", $cat_info );
$db->free ();
}
2. Открываем engine/modules/addcomments.php и ищем (примерно строка 295):
$row['template'] = str_replace( "{%link%}", $config['http_home_url'] . "index.php?newsid=" . $post_id, $row['template'] );
Заменяем на:
if ( $config['allow_alt_url'] == 'yes' )
{
$row1 = $db->super_query( "SELECT id, alt_name, flag, category, date FROM " . PREFIX . "_post WHERE id='$post_id' LIMIT 0,1" );
if ( $row1['flag'] and $config['seo_type'] )
{
if ( $row1['category'] and $config['seo_type'] == 2 ) $link = $config['http_home_url'] . get_url( intval( $row1['category'] ) ) . '/' . $row1['id'] . '-' . $row1['alt_name'] . '.html#comment';
else $link = $config['http_home_url'] . $row1['id'] . '-' . $row1['alt_name'] . '.html#comment';
} else $link = $config['http_home_url'] . date( 'Y/m/d/', $row1['date'] ) . $row1['alt_name'] . '.html#comment';
} else $link = $config['http_home_url'] . 'index.php?newsid=' . $post_id . '#comment';
$row['template'] = str_replace( "{%link%}", $link, $row['template'] );
{
$row1 = $db->super_query( "SELECT id, alt_name, flag, category, date FROM " . PREFIX . "_post WHERE id='$post_id' LIMIT 0,1" );
if ( $row1['flag'] and $config['seo_type'] )
{
if ( $row1['category'] and $config['seo_type'] == 2 ) $link = $config['http_home_url'] . get_url( intval( $row1['category'] ) ) . '/' . $row1['id'] . '-' . $row1['alt_name'] . '.html#comment';
else $link = $config['http_home_url'] . $row1['id'] . '-' . $row1['alt_name'] . '.html#comment';
} else $link = $config['http_home_url'] . date( 'Y/m/d/', $row1['date'] ) . $row1['alt_name'] . '.html#comment';
} else $link = $config['http_home_url'] . 'index.php?newsid=' . $post_id . '#comment';
$row['template'] = str_replace( "{%link%}", $link, $row['template'] );
Теперь в приходящем сообщении о новом комментарии всё удобно и функционально, кликнув на ссылку в тексте сообщения мы переходим непосредственно в комментарии той новости куда был добавлен новый.
Авторы: