Помощь Опять про внешние. 8.0 оnly!

Тема в разделе "DLE", создана пользователем dig555, 30 июл 2009.

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

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

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

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Преамбула:
    В этом разделе я редкий гость, но так уж вышло. Перерыл всю ветку, тем по этой проблеме много, но нормального решения именно под 8.0 не нашёл.

    Почти год назад, купил у какого деятеля большую базу для варезника. Ну купил, поставил и забыл. Ибо думал, что всё равно вылетит из индекса из-за неуникальности :) Неделю назад с удивлением обнаружил, что в индексе не только прочно висят 20К страниц, но и траф есть. Приятно, что этот траф неплохо конвертится на тизерах. Собственно, решил, превратить этот варезник во что-то более приличное, и использовать, как площадку для приёма бэк-трафа с собственных доров, с последующей монетизацией на тизерах и сапах
    Собственно вопросы:

    1). Нужно решение, которое позволит пройтись по базе новостей и заключить все внешки (в том числе и картинки) в noindex и nofollow.
    Разговоров об этом много, но ни одного рабочего решения работающего под 8.0 я не нашёл. Поделитесь, у кого есть. Как я понимаю, достаточно сделать выборку их базы постов, и через str_replace заменить ссылки на обрамлённые нужными тегами?

    2). И собственно нужно решение по правке parse.class.php, которое в будущем будет вновь поступившие статьи заключать в эти теги самостоятельно.

    Важно!
    Интересует только проверенные лично вами решения под 8.0. С фразами - посмотри вот-это - может подойдёт, идёте лесом. С DLE я практически не пересекаюсь, поэтому делайте скидку на это, пожалуйста :)
     
  2. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    Блин неужели никто не знает?
    Конечно, первый нюанс можно решить простейшим образом. Например с помощью Sypex Dumper сделать дамп, а потом его обработать простейшим скриптом на десять строчек:
    PHP:
    <?
    set_time_limit(0);
    $file="realgood.sql";
    $str=file_get_contents($file);
    $str=str_replace'<a ''<noindex><a rel="nofollow" '$str);
    $str=str_replace'/a>''/a></noindex>'$str);
    $fp=fopen("new.sql","a+");
    fwrite($fp,$str);
    fclose($fp);
    ?>
    Вот только может и лишние наверное ссылки "обработать". Неужели единственное решение, это делать выборки из базы и обрабатывать уже их?
     
  3. olorin

    olorin Постоялец

    Регистр.:
    22 апр 2007
    Сообщения:
    117
    Симпатии:
    6
    Ну сделай дамп dle__post этой таблицы, и прогони своим же кодом. Я так понял реч про контент идет
     
  4. Max399

    Max399

    Регистр.:
    7 май 2007
    Сообщения:
    245
    Симпатии:
    26
    Сам написал что надо ещё и картинки убрать в noindex и nofollow и заблыл. Единственное чего понять не могу, так это зачем картинки в них заключать..
     
  5. Demon425

    Demon425

    Регистр.:
    9 июл 2008
    Сообщения:
    439
    Симпатии:
    96
    Есть парсер =>[leech] by nick-on[/B], достаточн...full_story ); $short_story = str_replace ( "", "[/leech]", $short_story );
    $full_story = str_replace ( "[/url]", "[/leech]", $full_story );

    $short_story = $db->safesql ( $parse->BB_Parse( $parse->process( $short_story ), false));
    $full_story = $db->safesql ( $parse->BB_Parse( $parse->process( $full_story ), false));

    $db->query ( "UPDATE " . PREFIX . "_post SET short_story = '{$short_story}', full_story = '{$full_story}' WHERE id = '{$row['id']}'" );


    }

    $db->free();

    ?>[/code]

    Сам конвертер создаёт приличную нагрузку на базу и лучше всего запускать его из ssh (php -f скрипт.php)


    По поводу новых ссылок:
    parse.class.php:

    найти
    Код:
    function BB_Parse($source, $use_html=TRUE) {
    global $config, $lang;
    ниже добавить
    Код:
    $source = str_replace(array('[url', 'url]'), array('[leech', 'leech]'), $source);
    P.S. Бекапы не забывай делать, ато мало ли что ...
     
    dig555 нравится это.
  6. method

    method

    Регистр.:
    8 июл 2007
    Сообщения:
    559
    Симпатии:
    133
  7. dig555

    dig555

    Регистр.:
    22 июн 2007
    Сообщения:
    363
    Симпатии:
    148
    C cуществующими справился, как и предложил olorin. Оказалось всё просто.

    А вот тут объясните, плз, такой момент. Все активные ссылки которые добавлются в новостях - проходят через парсер? Т.е. я могу например заменить второй код на такой?:
    PHP:
    $source str_replace(array('[url='']''[/url]'), array('<noindex><a rel="nofollow" href="''">','</a></noindex>]'), $source);
    Другие теги от этого не пострадают?
    А то, что-то leech меня бесит по определению :-]
     
Статус темы:
Закрыта.