<?php if(!defined("MCR")){ exit("Hacking Attempt!"); } class bb{ private $core, $lng; public function __construct($core){ $this->core = $core; $this->lng = $core->lng; } public function bb_panel($for=''){ $data['PANEL_ID'] = $for; $data['SMILES'] = $this->get_smiles_bb(); ob_start(); echo $this->core->sp(MCR_THEME_PATH.'default_sp/bb-panel.html', $data); return ob_get_clean(); } /** * BBquote(@param) - Recursive function for bb codes * * @param - String * * @return callback function * */ private function BBquote($text){ $reg = '#\[quote]((?:[^[]|\[(?!/?quote])|(?R)?)+)\[/quote]#isu'; if (is_array($text)){$text = '<blockquote>'.$text[1].'</blockquote>';} return preg_replace_callback($reg, 'self::BBquote', $text); } public function get_smiles_bb(){ include(MCR_TOOL_PATH.'libs/smiles.php'); ob_start(); foreach($smiles as $key => $img){ $data = array( "NAME" => $key, "IMG" => $img ); echo $this->core->sp(MCR_THEME_PATH.'default_sp/smile-id.html', $data); } return ob_get_clean(); } private function smile_decode($text){ include(MCR_TOOL_PATH.'libs/smiles.php'); foreach($smiles as $key => $value){ $smiles[$key] = '<img src="'.BASE_URL.'uploads/smiles/'.$value.'" alt="'.$key.'">'; } $search = array_keys($smiles); $replace = array_values($smiles); return str_replace($search, $replace, $text); } /** * bb_decode(@param) - Change BB-code to HTML * * @param - String * * @return String * */ public function decode($text){ $text = nl2br($text); $patern = array( '/\[b\](.*?)\[\/b\]/Usi', '/\[i\](.*?)\[\/i\]/Usi', '/\[s\](.*?)\[\/s\]/Usi', '/\[u\](.*?)\[\/u\]/Usi', '/\[left\](.*?)\[\/left\]/Usi', '/\[center\](.*?)\[\/center\]/Usi', '/\[right\](.*?)\[\/right\]/Usi', '/\[code\](.*?)\[\/code\]/Usi', ); $replace = array( '<b>$1</b>', '<i>$1</i>', '<s>$1</s>', '<u>$1</u>', '<p align="left">$1</p>', '<p align="center">$1</p>', '<p align="right">$1</p>', '<code>$1</code>', ); $text = preg_replace($patern, $replace, $text); $text = preg_replace("/\[url=(?:'|"|\'|\")((((ht|f)tps?|mailto):(?:\/\/)?)(?:[^<\s\'\"]+))(?:'|"|\'|\")\](.*?)\[\/url\]/Usi", "<a href=\"$1\">$5</a>", $text); $text = preg_replace("/\[img\](((ht|f)tps?:(?:\/\/)?)(?:[^<\s\'\"]+))\[\/img\]/Usi", "<img src=\"$1\">", $text); $text = preg_replace("/\[color=(?:'|"|\'|\")((\#[a-z0-9]{6})|([a-z]{1,30}))(?:'|"|\'|\")\](.*?)\[\/color\]/Usi", "<font color=\"$1\">$4</font>", $text); $text = preg_replace("/\[size=(?:'|"|\'|\")([1-6]{1})(?:'|"|\'|\")\](.*?)\[\/size\]/Usi", "<font size=\"$1\">$2</font>", $text); $text = $this->smile_decode($text); $text = $this->BBquote($text); return $text; } } ?>