* (+/-)
/**
* Обработка текстов перед выводом на экран
*
* @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);
}