Хак - модуль Вопрос-Ответ с картинкой для DLE

Рубрика: Хаки для DLE » Хак DLE 11.2, 11.1, 11.0, 10.6, 10.5, 10.4, 10.3, 10.2, 10.1, 10.0, 9.8, 9.7, 9.6, 9.5, 9.4, 9.3, 9.2, 9.0
Хак - модуль Вопрос-Ответ с картинкой для DLE
Вы знаете, что в последнее время участились спам атаки и некоторые программы могут обходить, даже такой казалось бы не проходимый модуль для DLE Вопрос-Ответы, который обходят благодаря частому использованию на многих ресурсах одних и тех же ответов и вопросов. Представляем на «все для дле» из раздела DLE хаки добавлении вопрос-ответ с картинкой в стандартный функционал движка модуля системы Вопрос-Ответ. Что сильно, усложнит регистрацию ботов и т.д.

Какого особенность и отличие от стандартного варианта? Первое, что стоить ответить простата установки и минимальность правок стандартных файлов dle. Вторая особенность, возможность вставлять картинку через специальный тег, который понимает как локально-добавленные картинки так и картинки по ссылке с других ресурсов.

Установка Хак - модуль Вопрос-Ответ с картинкой для DLE
1. Файл: /engine/modules/functions.php
Найти:
if( ! defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}


Добавить ниже:

function question_img($i) {
    $img = ( substr($i[1], 0, 4)=="http" ) ? $i[1] : "/uploads/question/{$i[1]}";
    return "<br><img src=\"{$img}\" />";
}


2. Файл: /engine/modules/register.php
Найти:
$tpl->set( '{question}', htmlspecialchars( stripslashes( $question['question'] ), ENT_QUOTES ) );


или:
$tpl->set( '{question}', htmlspecialchars( stripslashes( $question['question'] ), ENT_QUOTES, $config['charset'] ) );


Заменить на:

            $question['question'] = preg_replace_callback( "#\[img=(.+?)\]#is", "question_img", $question['question'] );
            $tpl->set( '{question}', stripslashes( $question['question'] ) );


3. Файл: /engine/modules/show.full.php
Найти:
$tpl->set( '{question}', "<span id=\"dle-question\">".htmlspecialchars( stripslashes( $question['question'] ), ENT_QUOTES )."</span>" );


или:
$tpl->set( '{question}', "<span id=\"dle-question\">".htmlspecialchars( stripslashes( $question['question'] ), ENT_QUOTES, $config['charset'] )."</span>" );


Заменить на:

            $question['question'] = preg_replace_callback( "#\[img=(.+?)\]#is", "question_img", $question['question'] );
            $tpl->set( '{question}', "<span id=\"dle-question\">".stripslashes( $question['question'] )."</span>" );

4. Создать каталог: /uploads/question
Поместить в него картинки, например: 1.jpg
Пример вопроса:
Что изображено на картинке? [img=1.jpg]

В engine/modules/register.php
$tpl->set( '{question}', htmlspecialchars( stripslashes( $question['question'] ), ENT_QUOTES ) );


Заменить на:
$tpl->set( '{question}', stripslashes( $question['question'] ) );


и в engine/inc/question.php 2 раза заменить
$question = $db->safesql( strip_tags($_POST['question']) );


на

$question = $db->safesql( strip_tags($_POST['question'], '<img>') );


В дополнительном вопросе теперь можно использовать тег
<img />
...
Что на картинке, и.т.п.

ЗЫ!
Когда уже в комментах кнопка кода появится!

Автор: MSW 0-web ru
Версия DLE: 9.4 и выше

Ознакомится с DLE хак - модуль Вопрос-Ответ с картинкой установка в текстовом файле
  • 80
Рубрика: DLE хаки » Хак для DLE
Ранее » DLE Допустимые символов буквенного каталога новостей« Далее Хак Карта MAPS России для DLE
Добавление комментарияОставить комментарий
  • № :2
  • 15 июля 2013 15:32
Цитата: roosei
где прописывать дополнительный вопрос? в админпенели где есть доп.вопрос от спама?

да
и куда ставить тег img?

в вопрос в админ панели движка модуля доп. вопроса
и еще, после установки хака я пробовал зарегистрироваться для проверки и у меня вышло следующее: PHP Mail Error. что не так в хаке?

проблема может быть связана с версий движка, на какую ставите
  • № :1
  • 15 июля 2013 14:56
где прописывать дополнительный вопрос? в админпенели где есть доп.вопрос от спама? и куда ставить тег img? и еще, после установки хака я пробовал зарегистрироваться для проверки и у меня вышло следующее: PHP Mail Error. что не так в хаке?