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 ); } }
|
|
| |