Хак Автоматическое добавление тегов

Тема в разделе "DLE", создана пользователем FlashBlack, 13 дек 2009.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. FlashBlack

    FlashBlack Постоялец

    Регистр.:
    19 сен 2006
    Сообщения:
    77
    Симпатии:
    45
    [​IMG]
    Оригинальный автор: kand2004
    Автор переделки: FlashBlack
    Что изменил: Теги берутся из краткой новости, можно устанавливать получаемое кол-во тегов с помощи переменной $nNumTags, теги не будут повторяться с схожих новостей.

    Возможности хака:
    Из заголовка новости берутся слова (исключены цифры и спецсимволы), длина которых больше 3 символов и формируется строка тэгов.
    Тестировался на версии DLE 8.3
    Очень часто Журналисты сайта забывают или не хотят проставлять теги для новости. Сначала я не обращал внимания, но поняв, в чем смысл и назначение тегов (для поисковиков в первую очередь), я сам начал руками редактировать посты и добавлять теги.
    Теги - по сути своей - это краткое описание новости словами или словосочетаниями. В тегах не должно быть конкретики, но в то же время, они должны наиболее близко описывать предмет новости.
    Идеальными словами-тегами для новости есть синонимы названия или само название. Следует исключать в тегах слова, которые можно отнести к любой новости (местоимения, предлоги и т.д.).
    Так же не желательно в теги включать номер версии софта, размер файла инсталляции и другие конкретизирующие моменты.
    Хотя, опять же, тут все зависит от вебмастера, от цели создания тегов и метода раскрутки новости.
    Долго не думая, я копировал слова (исключая цифры) и ставил между ними запятую. Через некоторое время это стало надоедать...
    Так появился этот простой хак. Большинству может показаться совершенно бесполезным, но мне помогает. Может кому-то тоже пригодится.
    Установка:
    Скрипт (ниже по тексту буду называть "script"), который вставляем в нижеуказанные файлы:
    Код:
                
                $nNumTags = 10;
                $szContent = $short_story;
                $arr_tags = explode(' ', $szContent);
                shuffle($arr_tags);
                $nNumOfTags = 0;
                $str_tag = '';
                foreach ( $arr_tags as $tvalue ) {
                    $tvalue = trim($tvalue);
                    preg_match('/[a-zA-Zа-яА-Я]{4,}/', $tvalue, $t_v);
                    if ($t_v[0]) {
                        $str_tag .= $t_v[0].', ';
                        $nNumOfTags ++;
                    }
                    if ($nNumOfTags > $nNumTags)
                        break;
                };
                $_POST['tags'] = substr($str_tag, 0, strlen($str_tag)-2);
                
    1. Открываем /engine/modules/addnews.php
    Находим первое вхождение:
    Код:
    if( $found )
    ВЫШЕ вставляем script
    2. Открываем файл /engine/inc/addnews.php
    Находим:
    Код:
    if( trim( $_POST['vote_title']
    ВЫШЕ вставляем script

    Готово.
     

    Вложения:

    • tag-cloud.png
      tag-cloud.png
      Размер файла:
      20,5 КБ
      Просмотров:
      120
    Braniack нравится это.
  2. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    731
    Симпатии:
    421
    Облако тэгов конечно вещь хорошая, но в меру. Вы сделали накопительную систему в которой есть ограничения (большинство использовано в тему), но не задавались ли вы вопросами:
    1) если вы зашиваете получаемое количество тэгов ("можно устанавливать получаемое кол-во тегов с помощи переменной $nNumTags, теги не будут повторяться с схожих новостей"), то как вы избавитесь от ***но-слов попавших в этот массив (я имею ввиду слова, которые прошли вашу мусорку, но не важны как тэг)?
    2) вопрос следует из первого... ("Теги берутся из краткой новости") - новости, новостям рознь... но представляете как у вас будет расти облако тэгов (тут даже арифметической прогрессией не пахнет) и просто напросто нужные синонимы будут выпадать или забиваться, так как облако в несколько сот или тысяч слов вряд ли кто будет держать на сайте.

    P.S. Автоматизация этого процесса конечно хорошо, но тут больше должен играть признак качества, а не количества, ИМХО. Может хак дополнить базой ***но-слов (сделать какую-то накопиловку при которой слово будет туда попадать или что-то такое). Мне кажется, что сыроват чтобы на крупных и средних порталах его юзать. Либо приводить его к полу-автомату (заполнять и указывать журналистам редактировать облако).
     
  3. FlashBlack

    FlashBlack Постоялец

    Регистр.:
    19 сен 2006
    Сообщения:
    77
    Симпатии:
    45
    t0wer, так это не для СДЛ.
    Мусор - мусором.
    Тут основной факт это гармотные гс=)
    но как вариант можно брать ключ- слова с любого другого места(категория, ключевые слова и т.п.), что бы избавиться от множств тегов-мусора.
     
  4. efr07

    efr07 Постоялец

    Регистр.:
    14 авг 2010
    Сообщения:
    68
    Симпатии:
    2
    а можно сделать чтобы теги брались только из заголовка новости ?
     
  5. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.024
    Симпатии:
    694
    попробуй заменить $szContent = $short_story; на $szContent = $title;
    возможно и заработает так...
     
Статус темы:
Закрыта.