Пример фильтра для оборачивания таблиц в div:
// src/Plugin/Filter/TableWrapperFilter.php
/**
* @Filter(
* id = "table_wrapper_filter",
* title = @Translation("Table wrapper"),
* description = @Translation("Wrap tables to div."),
* type = Drupal\filter\Plugin\FilterInterface::TYPE_TRANSFORM_REVERSIBLE,
* weight = 20
* )
*/
class TableWrapperFilter extends FilterBase {
/**
* {@inheritdoc}
*/
public function process($text, $langcode) {
$result = new FilterProcessResult($text);
if (stristr($text, '<table') !== FALSE) {
$dom = Html::load($text);
$xpath = new \DOMXPath($dom);
foreach ($xpath->query('//table') as $table) {
$table_wrapper = $dom->createElement('div');
$table_wrapper->setAttribute('class', 'table-wrapper');
$table->parentNode->replaceChild($table_wrapper, $table);
$table_wrapper->appendChild($table);
}
$result->setProcessedText(Html::serialize($dom));
}
return $result;
}
}
Написанное актуально для
Drupal 8+
Похожие записи
- Текстовый фильтр добавляющий внешним ссылкам атрибут rel=nofollow
- Показать второй шаг многошаговой формы в модальном окне
- Создание многошаговой формы (multistep form) (8)
- Навесить на элемент managed_file свой ajax callback (Как обновить всю форму при загрузки файла в managed_file)
- Учебные материалы по Drupal 10
Комментарии
Два года не был здесь а ты еще пишешь, красавчик!!! Продолжай, я твой старый фанат.
Добавить комментарий