Хак - модуль Вопрос-Ответ с картинкой для 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 хак - модуль Вопрос-Ответ с картинкой установка в текстовом файле

DLE-9.4-9.7-Question-Img-v1.0.rar [53,08 Kb] (cкачиваний: 96)
00

Комментарии (0)

Оставить комментарий

Кликните на изображение чтобы обновить код, если он неразборчив