Форумы xBB | |||||||
Форумы xBB > BBCode и прочие языки упрощенной разметки Простейший способ подружить XBB и Codeigniter 2Автор: Nutty. Последнее редактирование: 2011-05-24 15:37:39 Берём наш XBB и кладём в директорию Codeigniterа [путь до папки]/application/libraries/ В папку bbcode у вас получится что то на типо этого [путь до папки]/application/libraries/bbcode/ далее идём в папку application/libraries и создаём файл bbcode_lib.php в кодировке utf-8 или cp1251 в зависимости от того какую кодировку использует ваш сайт содержимое файла.PHP <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); require_once('bbcode/bbcode.lib.php');//Загружаем наш Xbb class Bbcode_lib extends bbcode{ //Конструируем function Bbcode_lib(){ //наследуем все методы parent::bbcode(); //Сообщаем в лог дебага что загрузился Xbb log_message('debug', 'Bbcode Class Initialized'); } } Далее сохраняем и бежим в любой контролер и можем свободно загрузить наш парсер вот такой небольшой строчкой. PHP $this->load->library("bbcode_lib"); Как его использовать а использовать его также легко весь его API будет доступен в следующем варианте. PHP $this->bbcode_lib->Метод парсера Для наглядности вот. PHP $this->bbcode_lib->parse('[s]test[/s]'); echo $this->bbcode_lib->get_html(); и т.д. Ознакомиться с API XBB можно здесь Ой забыл про некоторую формальность чтобы использовать ресурсы CI в ббкодах например создать тег HIDE от гостей рассмотрим следующий пример. К примеру у нас сайт генерирует создаёт автоматически в сессиях CI переменную IS_LOGIN и нам её надо вытащить в ббкод чтобы в нём сделать проверку пользователь это или нет делается также просто что и в верху создаём класс с нашим бб кодом. PHP class bb_hide extends bbcode { public $behaviour = 'div'; function get_html($tree = null) { return parent::get_html(); } } PHP class bb_hide extends bbcode { public $behaviour = 'div'; public $CI; //Переменная с линком на CI function get_html($tree = null) { $this->CI = &get_instance(); //Линкуем наш CI if($CI->session->userdata('IS_LOGIN')){ //Если пользователь то IS_LOGIN будет чему то равна в моём случае это всегда true а вот если не зашел то в сессиях IS_LOGIN не будет а CI вернёт автоматически false. return parent::get_html(); //если зашел то отображаем содержимое тега }else{ //если не зашел на сайт. return "Вы должны зайти на сайт под своим логином чтобы увидеть данный текст."; } } } 3 комментария
|
| 29.05.2011 02:37:38 | # |
Надо будет статейку обновить добавить в класс включение отключение автолинков возможности отключения тегов и тд.
© 2007-2012, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.