Просмотр поста

.
ValekS
Ей 25

Хотя не, в 7-рке еще пару отличий будет. Вот код для 7(вставлять в /system/johncms/Tools.php, строка 104):

* (+/-)
/**
* Обработка текстов перед выводом на экран
*
* @param string $str
* @param int $br   Параметр обработки переносов строк
*                  0 - не обрабатывать (по умолчанию)
*                  1 - обрабатывать
*                  2 - вместо переносов строки вставляются пробелы
* @param int $tags Параметр обработки тэгов
*                  0 - не обрабатывать (по умолчанию)
*                  1 - обрабатывать
*                  2 - вырезать тэги
*
* @return string
*/
public function checkout($str, $br = 0, $tags = 0)
{	
    $str = htmlentities(trim($str), ENT_QUOTES, 'UTF-8');
    if ($br == 1) {
        $str = nl2br($str);
    } elseif ($br == 2) {
        $str = str_replace("\r\n", ' ', $str);
    }
    if ($tags == 1) {
        $str = $this->container->get('bbcode')->tags($str);
    } elseif ($tags == 2) {
        $str = $this->container->get('bbcode')->notags($str);
    }
    return self::linkUser(trim($str));
}

/**
* Ссылка на профиль по символу @
* 
* @param string $str
* 
* @return string
*/
public function linkUser($str) {
    $arr = preg_replace_callback(
        '~(@(.*))~iu',
        function ($a) {
            $us = $this->db->query("
            SELECT `id` FROM `users` 
            WHERE `name` = '". mysql_real_escape_string($a[2]) ."'
            ")->fetch();

            if (!empty($us['id'])) {
                return '<a href="'. $this->config['homeurl'] .'/users/profile.php?user='. $us['id'] .'">'. $a[1] .'</a>';
            } else {
                return $a[0];
            }
        },
        explode(' ', $str)
    );
    return join(' ', $arr);
}