[Web Master ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Data Life Engine » Хаки » Автоматическое добавление тегов из заголовка новости
Автоматическое добавление тегов из заголовка новости
Alex28jДата: Суббота, 27.02.2010, 21:27 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 286
Награды: 11
Репутация: 108
Статус:
Небольшой хак, который автоматически берет теги из заголовка новости, и добавляет их в новость.
Версия DLE: 8.2 и ниже.
Тестировал на: 8.3. Работает стабильно.

Установка:
Открываем engine/modules/addnews.php
Находим и удаляем:

Code
if( ! $config['allow_add_tags'] ) $_POST['tags'] = "";
         elseif( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['tags'] ) ) $_POST['tags'] = "";
         else $_POST['tags'] = $db->safesql( htmlspecialchars( strip_tags( stripslashes( trim( $_POST['tags'] ) ) ), ENT_QUOTES ) );

Находим :

Code
if( $found ) {
                  
                 $db->query( "UPDATE " . PREFIX . "_post set title='$title', short_story='$short_story', full_story='$full_story', xfields='$filecontents', category='$category_list', alt_name='$alt_name', allow_comm='$allow_comm', approve='$approve', allow_main='$allow_main', allow_rate='$allow_rating', fixed='$news_fixed', allow_br='$allow_br', flag='1', tags='" . $_POST['tags'] . "' WHERE id='$id'" );
                  
                 // Облако тегов
                 if( $_POST['tags'] != $row['tags'] or $approve ) {
                     $db->query( "DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$row['id']}'" );
                      
                     if( $_POST['tags'] != "" and $approve ) {
                          
                         $tags = array ();
                          
                         $_POST['tags'] = explode( ",", $_POST['tags'] );
                          
                         foreach ( $_POST['tags'] as $value ) {
                    
                             $tags[] = "('" . $row['id'] . "', '" . trim( $value ) . "')";
                         }
                          
                         $tags = implode( ", ", $tags );
                         $db->query( "INSERT INTO " . PREFIX . "_tags (news_id, tag) VALUES " . $tags );
                      
                     }
                 }
              
             } else {

Заменяем на:

Code
//Авто Теги
             if( ! $config['allow_add_tags'] ) $tags = "";
             else $tags = str_word_count ( strip_tags( stripslashes( $title ) ), 1 );
             $tag = implode ( ",", $tags );
//Авто Теги
             if( $found ) {

                 $db->query( "UPDATE " . PREFIX . "_post set title='$title', short_story='$short_story', full_story='$full_story', xfields='$filecontents', category='$category_list', alt_name='$alt_name', allow_comm='$allow_comm', approve='$approve', allow_main='$allow_main', allow_rate='$allow_rating', fixed='$news_fixed', allow_br='$allow_br', flag='1', tags='$tag' WHERE id='$id'" );
                  
                 // Облако тегов
                 if( $tag != $row['tags'] or $approve ) {
                     $db->query( "DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$row['id']}'" );
                      
                     if( $tag != "" and $approve ) {
                         $tag = "";
                         foreach ( $tags as $value ) {
                    
                             $tag[] = "('" . $row['id'] . "', '" . trim( $value ) . "')";
                         }
                          
                         $tag = implode( ", ", $tag );
                         $db->query( "INSERT INTO " . PREFIX . "_tags (news_id, tag) VALUES " . $tag );
                      
                     }
                 }
              
             } else {

Находим :

Code
$db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, flag, tags) values ('$thistime', '$member_id[name]', '$short_story', '$full_story', '$filecontents', '$title', '', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_rating', '$allow_br', '1', '" . $_POST['tags'] . "')" );

Заменяем на:

Code
$db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, flag, tags) values ('$thistime', '$member_id[name]', '$short_story', '$full_story', '$filecontents', '$title', '', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_rating', '$allow_br', '1', '$tag')" );

Находим:

Code
if( $_POST['tags'] != "" and $approve ) {
                      
                     $tags = array ();
                      
                     $_POST['tags'] = explode( ",", $_POST['tags'] );
                      
                     foreach ( $_POST['tags'] as $value ) {
                          
                         $tags[] = "('" . $row['id'] . "', '" . trim( $value ) . "')";
                     }
                      
                     $tags = implode( ", ", $tags );
                     $db->query( "INSERT INTO " . PREFIX . "_tags (news_id, tag) VALUES " . $tags );
                  
                 }

Заменяем на:

Code
if( $tag != $row['tags'] or $approve ) {
                     $db->query( "DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$row['id']}'" );
                      
                     if( $tag != "" and $approve ) {
                         $tag = "";
                         foreach ( $tags as $value ) {
                    
                             $tag[] = "('" . $row['id'] . "', '" . trim( $value ) . "')";
                         }
                          
                         $tag = implode( ", ", $tag );
                         $db->query( "INSERT INTO " . PREFIX . "_tags (news_id, tag) VALUES " . $tag );
                      
                     }
                 }

Открываем engine/inc/addnews.php

Находим и удаляем :

Code
if( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\+]/", $_POST['tags'] ) ) $_POST['tags'] = "";
     else $_POST['tags'] = $db->safesql( htmlspecialchars( strip_tags( stripslashes( trim( $_POST['tags'] ) ) ), ENT_QUOTES ) );

Находим:

Code
$db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, descr, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, votes, access, symbol, flag, tags, metatitle) values ('$thistime', '{$member_id['name']}', '$short_story', '$full_story', '$filecontents', '$title', '{$metatags['description']}', '{$metatags['keywords']}', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_rating', '$allow_br', '$add_vote', '$group_regel', '$catalog_url', '1', '{$_POST['tags']}', '{$metatags['title']}')" );

Заменяем на:

Code
//Авто Теги
     if( ! $config['allow_add_tags'] ) $tags = "";
     else $tags = str_word_count ( strip_tags( stripslashes( $title ) ), 1 );
     $tag = implode ( ",", $tags );
//Авто Теги
     $db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, descr, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_rate, allow_br, votes, access, symbol, flag, tags, metatitle) values ('$thistime', '{$member_id['name']}', '$short_story', '$full_story', '$filecontents', '$title', '{$metatags['description']}', '{$metatags['keywords']}', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_rating', '$allow_br', '$add_vote', '$group_regel', '$catalog_url', '1', '$tag', '{$metatags['title']}')" );
Находим (556 строка):
if( $_POST['tags'] != "" and $approve ) {
          
         $tags = array ();
          
         $_POST['tags'] = explode( ",", $_POST['tags'] );
          
         foreach ( $_POST['tags'] as $value ) {
              
             $tags[] = "('" . $row . "', '" . trim( $value ) . "')";
         }
          
         $tags = implode( ", ", $tags );
         $db->query( "INSERT INTO " . PREFIX . "_tags (news_id, tag) VALUES " . $tags );
      
     }

Находим:

Code
if( $_POST['tags'] != "" and $approve ) {
                      
                     $tags = array ();
                      
                     $_POST['tags'] = explode( ",", $_POST['tags'] );
                      
                     foreach ( $_POST['tags'] as $value ) {
                          
                         $tags[] = "('" . $row['id'] . "', '" . trim( $value ) . "')";
                     }
                      
                     $tags = implode( ", ", $tags );
                     $db->query( "INSERT INTO " . PREFIX . "_tags (news_id, tag) VALUES " . $tags );
                  
                 }

Заменяем на:

Code
if( $tag != $row['tags'] or $approve ) {
                     $db->query( "DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$row['id']}'" );
                      
                     if( $tag != "" and $approve ) {
                         $tag = "";
                         foreach ( $tags as $value ) {
                    
                             $tag[] = "('" . $row['id'] . "', '" . trim( $value ) . "')";
                         }
                          
                         $tag = implode( ", ", $tag );
                         $db->query( "INSERT INTO " . PREFIX . "_tags (news_id, tag) VALUES " . $tag );
                      
                     }
                 }
 
Форум » Data Life Engine » Хаки » Автоматическое добавление тегов из заголовка новости
  • Страница 1 из 1
  • 1
Поиск: