Форумы 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();
 
Результат test.
и т.д.
Ознакомиться с 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 "Вы должны зайти на сайт под своим логином чтобы увидеть данный текст.";
       }
    }
}
 
Ну и тд. при включенной фантазии можно сделать много чего даже имея такой простенький пример использования ресурсов CI в XBB.  
 

6 комментариев

24.05.2011 16:01:53 #
Mozilla Firefox dima
Полезная статья. Даже захотелось изучить CodeIgniter Well
28.05.2011 16:13:42 #
Opera Nutty
Well dima, он во многих функциях проще тока чтобы им грамотно пользоваться все равно нужны знания ООП и MVC так как фреамворк не рассчитывался с системой шаблонизирования да она присутствует в нём но она на стока сырая что даже сами разработчики не рекомендуют её использовать да при желании можно прикрутить легко любой шаблонизатор на типо смарти и чтобы использовать ресурсы CI на типо кешеирования и тагдале придётся попотеть в передачики HTML из смарти в CI а если в общих чертах то очень небольшой фреамворк как и по весу так и по нагрузке на сервер по дефу грузится тока необходимое для работы порадовала система загрузки/выгрузки дополнительных компонентов, интерфейс работы с базой, да и так в общем прошелся по всему фреймворку и понел что лишнего в нём нету, а то думаю ты знаешь что во многие фреймворки понатыкают лишнего а потом мучайся разберайся.
 
Для тех кому сложен Zend самое то CodeIgniter)
Надо будет статейку обновить добавить в класс включение отключение автолинков возможности отключения тегов и тд.
29.05.2011 02:37:38 #
Mozilla Firefox dima
Надо будет статейку обновить добавить в класс включение отключение автолинков возможности отключения тегов и тд.

Было бы не плохо Well
11.12.2012 20:50:22 #
Mozilla Firefox Гость ukina
А как ваш редактор подключить? Не получается
11.12.2012 21:58:53 #
Mozilla Firefox Гость ukina
Подкл редактор, кинув папку с bbcode в корневую категорию. По другому не отображается видимо что то не то в самом codeigniter нельзя в application путь назначать. Грустно теперь 2 папки с bbcodom 1 в libraries а вторая в корневой. Может кто подскажет как проблему поизящней решить?
12.12.2012 09:35:05 #
Mozilla Firefox dima
Выкиньте из libraries/bbcode все, не относящееся к редактору (парсер, обработчики тегов и т.п.).
 
А из папки application/bbcode выкиньте все, не относящееся к парсеру (редактор, иконки и т.п.).
 
Если при этом возникнут проблемы, напишите, - подумаем как решить.

Ответить:

Представиться как     Антибот:
   

Просьба не постить мусор. Пользуйтесь кнопкой предварительного просмотра на панели инструментов редактора.

Введите логин: и пароль: (

© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.