Як програмно фільтрують текст?


8

Мені потрібно вивести текст і застосувати до нього вибраний фільтр. Текст зберігається за допомогою text_formatполя поля.

Тому я знаю оригінальний текст, знаю обраний тип формату, але не знаю, як насправді фільтрувати текст.

Як я можу програмно фільтрувати текст? Дякую


2
Ви хочете це зробити програмно. Якщо так, то подивіться на це посилання: stackoverflow.com/questions/2959962 / ...
BetaRide

сьогодні це був поганий день. Раніше я користувався цим багато разів, але зараз просто не міг згадати. Чи можете ви додати це як відповідь, щоб я міг його прийняти?
Маріус Іллі

Відповідь коротка. Він перетворився на коментар автоматично :-(. Ви все одно можете підтримати коментар ;-).
BetaRide

@BetaRide, якщо ви додасте посилання check_markup(), а також скопіюєте підсумковий опис, у вас буде цілком прийнятна (навіть гарна ) відповідь :)
Клайв

Відповіді:


8

Цей пост у stackoverflow описує, як це зробити програмно.

Просто зателефонуйте check_markup та введіть текст та ідентифікатор фільтра.

check_markup($text, $format_id = NULL, $langcode = '', $cache = FALSE)

Запустіть усі включені фільтри на фрагменті тексту.


Існує різниця між filter_id та format_id . check_markup()приймає format_id і запустить усі фільтри, застосовані до цього формату.
комленич

4

За допомогою check_markup()функції ви змушені використовувати текстовий формат (текстовий формат = виправлення фільтрів).

Якщо ви хочете використовувати лише ОДИН , точний фільтр без повного формату фільтра (наприклад: Перетворити розриви рядків у HTML ), тоді використовуйте цю власну функцію.

/**
 * Custom function to use only ONE filter wightout full format.
 *
 * @param {string} $string String to filter.
 * @param {string} $filter Filter name to use on $string
 * @return {string}        Filtered string.
 */
function filter($string, $filter) {
  $filters = filter_get_filters();
  $filter_autop = $filters[$filter];

  return $filter_autop['process callback']($string);
}

Ви можете перевірити список доступних фільтрів за допомогою dpm(filter_get_filters()).


1
Це правильна відповідь!
Олексій Скрипник

1
Це може працювати для деяких фільтрів, але лише для простих. Взагалі зворотний виклик процесу api.drupal.org/api/drupal/modules%21filter%21filter.api.php/… приймає більше параметрів, включаючи параметри фільтра. Існує також підготовка зворотного дзвінка.
AdamS
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.