output_text()

Функция обрабатывает текстовые строки перед выводом в браузер настоятельно не рекомендуется тут что-либо менять.

Хуки из функции: ds_pre_output_text, ds_output_text

Использование

echo output_text($post['msg']); 

Код функции


function output_text($str, $br = 1, $html = 1, $smiles = 1, $links = 1, $bbcode = 1)
{
    global $theme_ini;
    
    $array = get_text_array($str); 
    $data = $array['data']; 
    $str = $array['content']; 
    
    if ($br && isset($theme_ini['text_width']))
        $str = wordwrap($str, $theme_ini['text_width'], ' ', 1);
    
    // преобразуем все к нормальному перевариванию браузером
    if ($html) $str = htmlentities($str, ENT_QUOTES, 'UTF-8'); 
    
    $str = use_filters('ds_pre_output_text', $str); 

    preg_match_all('/\[code\](.+)\[\/code\]/isU', $str, $replace_code);
    if (!empty($replace_code[0])) {
        $str = preg_replace('/\[code\](.+)\[\/code\]/isU', '#!%code%;', $str);
    }
    
    // обработка ссылок
    if ($links)
        $str = links($str); 
    
    // вставка смайлов
    if ($smiles)
        $str = smiles($str); 
    
    // обработка bbcode
    if ($bbcode) {
        $str = bbcode($str); 
    }

    // переносы строк
    if ($br) {
        $str = br($str); 
    }

    if (!empty($replace_code[1])) {
        foreach($replace_code[1] AS $key => $value) {
            $str = str_replace_once('#!%code%;', '<pre><code>' . trim($replace_code[1][$key]) . '</code></pre>', $str);
        }
    }

    $str = use_filters('ds_output_text', $str); 

    if (!empty($array['data']['attachments'])) {
        $attachments = get_output_media($array['data']['attachments']); 

        if ($attachments) {
            $str = $str . '<div class="ds-messages-attachments">' . $attachments . '</div>'; 
        }
    }
    
    return stripslashes($str);
}