Главная » 2011 » Май » 31 » Хак \"Расширенный модуль ПОИСК и ЗАМЕНА\".
03:18
Хак \"Расширенный модуль ПОИСК и ЗАМЕНА\".

В админке DataLife Engine есть хорошая и полезная функция: Поиск и замена. Существует она для поиска и замена текста или кода в базе данных сайта. Но по умолчанию этот модуль ищет текст только в определенных частях базы данных: новостях, комментариях, облаке тегов, статических страницах и в персональных сообщениях.
Т.е., если Вы установите модуль форума, блога, фотоальбомов или какой-либо другой модуль, то Вы не сможете заменять текст в его базе данных. Если вдруг Вам понадобиться глобальное изменение текста или кода в вашем модуле, то лучше воспользоваться следующим хаком.

Надо модифицировать всего два файла движка. Речь идет о версии двига 8.3. На более ранних версиях не проверял. Но думаю, получится и там. Буду показывать на примере интеграции DLE Forum версии 2.4. По аналогии, поняв суть кода, можно подвести и под другие модули. Ничего сложного в этом нет, справятся даже новички, такие как я ))
Открываем текстовым редактором файл engine/inc/search.php и вставляем после 63-66 строк, содержащих этот код:

    if (in_array("tags", $_POST['table'])) {
        $db->query("UPDATE `" . PREFIX . "_tags` SET `tag`=REPLACE(`tag`,'$find','$replace')");
        $db->query("UPDATE `" . PREFIX . "_post` SET `tags`=REPLACE(`tags`,'$find','$replace')");
     }

Вот этот код (если у Вас установлен DLE Forum):

    if (in_array("forum", $_POST['table'])) {
        $db->query("UPDATE `" . PREFIX . "_forum_topics` SET `title`=REPLACE(`title`,'$find','$replace')");
        $db->query("UPDATE `" . PREFIX . "_forum_topics` SET `topic_descr`=REPLACE(`topic_descr`,'$find','$replace')");
        $db->query("UPDATE `" . PREFIX . "_forum_topics` SET `poll_title`=REPLACE(`poll_title`,'$find','$replace')");
        $db->query("UPDATE `" . PREFIX . "_forum_topics` SET `frage`=REPLACE(`frage`,'$find','$replace')");
        $db->query("UPDATE `" . PREFIX . "_forum_topics` SET `poll_body`=REPLACE(`poll_body`,'$find','$replace')");
        $db->query("UPDATE `" . PREFIX . "_forum_posts` SET `post_text`=REPLACE(`post_text`,'$find','$replace')");
     }

Для новичков объясню, что это код, куда прописываются поля и таблицы базы данных, в которых будет вестись поиск и замена. Т.е., если Вы будете устанавливать хак для другого модуля, то Вам в обязательном порядке нужно внести в вышеуказанный код другие данные, посмотреть которые можно в phpmyadmin.
Чуть ниже, в тот же файле в 113 строке находим код:



И вставляем сразу после него, в эту же строку, без переноса на новую строчку, следующий код:



Для удобства, если хотите, чтобы окошко было без "лифта" и более протянутым, то в этом же файле в 112 строке измените значение height на нужное вам, например на 100:
Категория: Хаки | Просмотров: 678 | Добавил: ALL-DLE | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: