Хак Преобразование исходного кода » Techno-Co — Всё для вебмастера, для создание сайтов с нуля. {title}

Данный хак позволяет показать работу исходного кода php, javascript, html прямо на странице размещенной новости.

Установка:

1. В файле engine/classes/parse.class.php найти:

function BB_Parse($source, $use_html = TRUE) {
    global $config, $lang;

Заменить на:

function BB_Parse($source, $use_html = TRUE) {
    global $config, $lang , $member_id, $user_group;

Найти далее:

if ( !$this->allow_code ) {
            $source = preg_replace_callback( "#
(.+?)
#is", array( &$this, 'clear_p_tag'), $source );
        }

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

$source =  ($user_group[$member_id['user_group']]['allow_admin']) ?  preg_replace( "#[usehtml](.+?)[/usehtml]#is", "1", $source ) : preg_replace( "#[usehtml](.+?)[/usehtml]#is", "1", $source );

$source =( $user_group[$member_id['user_group']]['allow_admin']) ?  preg_replace( "#[usephp](.+?)[/usephp]#is", "1", $source ) : preg_replace( "#[usephp](.+?)[/usephp]#is", "1", $source );

Найти далее:

if( $this->filter_mode ) $txt = $this->word_filter( $txt, false );

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

$txt = preg_replace( "#(.+?)#is", '[usehtml]1[/usehtml]', $txt );
$txt = preg_replace( "#(.+?)#is", '[usephp]1[/usephp]', $txt );

2. В файле index.php, что в корне сайта, найти:

echo $tpl->result['main'];

Добавить выше:

$tpl->result['main'] = preg_replace_callback( "#(.+?)#is","show_this_code",$tpl->result['main']);
$tpl->result['main'] = preg_replace_callback( "#(.+?)#is","show_this_code",$tpl->result['main']);

function show_this_code($matches=array()){

$text = (preg_match("#
(.+?)
#is",$matches[2],$match)) ?  html_entity_decode(preg_replace("/
|
/", "",$match[1]), ENT_QUOTES) : '' ; $type = $matches[1]; if($type == 'usehtml'){return $text; }elseif($type == 'usephp'){ ob_start(); ob_implicit_flush(0); eval($text); $con = ob_get_clean(); return $con; } return $matches[0]; }

Готово!Для вставки исходных кодов js или html используйте конструкцию вида:

[usehtml][code]ваш js или html код[/ code][/usehtml]

следует убрать пробел при закрывающем теге Сode при использовании.Для вставки исходных кодов php* используйте конструкцию вида:

[usephp][code]ваш php код[/ code][/usephp]

следует убрать пробел при закрывающем теге Сode при использовании.

*при размещении php кода открывающих тегов php:

использовать не нужно!

Версия DLE: 10.1

Автор: rocksmart