Класс Оформления
Класс Оформления помогает отформатировать текст.
Инициализация класса
Как и многие другие классы в CodeIgniter, данный класс инициализируется функцией $this->load->library:
$this->load->library('typography');
После этого класс будет доступен по вызову: $this->typography
auto_typography()
Форматирует текст, что бы он был верно оформлен с точки зрения HTML. Получает строку и возвращает ее с следующими изменениями:
- Заключает параграфы в теги <p></p> (два перевода строки считаются границей параграфа).
- Переводы строки конвертируются в <br />, если они не находятся внутри тега <pre>.
- Блочные элементы, типа <div>, не разделяются параграфами, но при необходимости разделяется текст внутри их.
- Кавычки конвертируются в энтити, если они не являются частью тега и его параметром .
- Апострофы конвертируются в html-энтити .
- Двойные тире (напр., -- ) конвертируются в — тире.
- Три последовательных точки заменяются символом многоточия …
- Двойные пробелы после предложений переводятся в неразрывной пробел.
Пример использования :
$string = $this->typography->auto_typography($string);
Параметры
Функция содержит два необязательных параметра:
- Удаление кода JavaScript. Параметр позволяет убрать JS-код из текста по причине безопасности. Использование - логическое TRUE или FALSE.
- Уменьшение пустых строк . Позволяет заменить три и более пустых строк двумя. Использование - логическое TRUE или FALSE.
По умолчанию функция убирает JS и не заменяет пустые строки, то есть выглядит так :
$string = $this->typography->auto_typography($string, TRUE, FALSE);
Примечание: Если форматирование будет применяться достаточно часто, то можно или сохранить отформатированный текс в базе, или использовать функцию кэширования .
convert_characters()
Функция подобна auto_typography , но она работает только с символами:
- Кавычки конвертируются в энтити, если они не являются частью тега и его параметром .
- Апострофы конвертируются в html-энтити .
- Двойные тире (напр, -- ) конвертируются в — тире.
- Три последовательных точки заменяются символом многоточия …
- Двойные пробелы после предложений переводятся в неразрывной пробел.
Пример:
$string = $this->typography->convert_characters($string);
nl2br_except_pre()
Переводы строки конвертируются в <br />, если они не находятся внутри тега <pre>. Функция подобна стандартной функции PHP nl2br(), но стандартная игнорирует тег <pre>.
Пример:
$string = $this->typography->nl2br_except_pre($string);
protect_braced_quotes
При использовании библиотеки Оформления с библиотекой Парсера шаблонов порой надо оставить кавычки между фигурными скобками. Для этого используйте свойство protect_braced_quotes со значением TRUE.
Пример:
$this->load->library('typography');
$this->typography->protect_braced_quotes = TRUE;