File size: 1.9Kb
<?php
/**
* Работа с текстовыми файлами с BBCODE внутри.
* Отдельно обрабатывается тег title
*/
class bb {
var $title = false;
var $err = false;
protected $_content = '';
protected $_pattern_title = "#\[title\](.*?)\[\/title\]#ui";
function __construct($path) {
$path = $this->getPath($path);
if (!$this->_content = @file_get_contents($path)) {
$this->err = 'Не удалось загрузить файл';
}
$this->_content = text::input_text($this->_content);
$this->title = $this->_getTitle($this->_content);
}
protected function _getTitle(&$content) {
if (preg_match($this->_pattern_title, $content, $matches)) {
$content = preg_replace($this->_pattern_title, '', $content);
return $matches[1];
}
}
/**
* Возвращает содержимое без заголовка
* @return string
*/
public function getText() {
return $this->_content;
}
/**
* Возвращает содержимое с форматированием без заголовка
* @return string
*/
public function fetch() {
return output_text(trim($this->_content));
}
/**
* Отправляет отформатирование содержимое в браузер
*/
public function display() {
echo $this->fetch();
}
protected function getPath($path) {
if (false === strpos($path, '{lang}')) {
return $path;
}
global $user;
$languages = languages::getList();
$user_lang = $languages[$user->language];
$path_user_lang = str_replace('{lang}', $user_lang['xml_lang'], $path);
if (file_exists($path_user_lang)) {
return $path_user_lang;
}
}
}
?>