30.05.13, 10:07
0 комментарий
  DLE Хаки

Правим url в уведомлении по e-mail о комментарии в новости

В DLE существует удобная функция подписки на комментарии к новости по e-mail. Но в этой функции есть неприятный момент - это само содержание приходящего сообщения, а вернее его функциональные возможности. Чтобы их улучшить мы заменим неудобный и непонятный url приходящий в сообщении в виде site.ru/index.php?newsid=1, на более понятный и несущий в себе информацию url согласно типу ЧПУ выбранному в настройках скрипта, например: site.ru/1-dle.html, причём сделаем переход непосредственно к комментариям. Это сделает сообщение не только более правильным, но и удобным, раз в нём не предусмотрена информация о названии новости, в которую добавлен комментарий.













до исправления (смотрим на url новости в сообщении)

Правим url в уведомлении по e-mail о комментарии в новости


после исправления (смотрим на url новости в сообщении)

Правим url в уведомлении по e-mail о комментарии в новости


Установка:
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 ();
      }



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'] );


Теперь, в приходящем сообщении о новом комментарии всё удобно и функционально. Кликнув на ссылку в тексте сообщения мы переходим непосредственно в комментарии той новости куда был добавлен новый.

Версия DLE: 9.хшаблоны для dle 11.2

Напишите своё мнение