Программно созданная статья: проблема с разломом страницы

Dec 11 2020

Я создал 1000 статей joomla через консольный импорт (это была миграция из другого источника). Все работает нормально (теги, вводный текст, настраиваемые поля и т. Д.), Но у меня проблема с разрывами страниц в системе.

Точно так же работает системный разрыв страницы и интротекст: вставка специальных <hr>элементов в тексты, например:

<!-- introtext -->
<hr id="system-readmore" />
<!-- system pagebreak -->
<hr title="2" alt="2" class="system-pagebreak" />

"System-readmore" работает отлично, но "system-pagebreak" работает некорректно. «Разрыв страницы системы» выводится во внешнем интерфейсе как реальные <hr>элементы. Если я перейду на бэкэнд, открою статью и просто сохраню - после этого все заработает. Таким образом, после консольного импорта статьи <hr>они вставлены правильно, но мне нужно вручную сохранить статью в бэкэнде, чтобы заставить их работать.

Должен быть идентификатор или что-то, что мне не хватает. Я думал, что это похоже на «системное чтение», но это не так.

Кто-нибудь знает, что мне не хватает, я проверил отладчик joomla, но не нашел подсказки.

Ответы

3 ThomasBaier Dec 11 2020 at 19:12

Решение было довольно простым. Это была проблема с самозакрывающимся элементом HTML:

Если вы столкнулись с той же проблемой, убедитесь, что ваши программно вставленные <hr>разрывы страниц системы имеют закрывающую косую черту:

<-- CORRECT -->
<hr title="2" alt="2" class="system-pagebreak" />

<-- WILL NOT WORK -->
<hr title="2" alt="2" class="system-pagebreak">

В HTML5, как правило, это не проблема, но плагин разбиения страницы ядра joomla использует следующее регулярное выражение, чтобы определить, является ли это разрывом страницы системы или нет:

// plugins/content/pagebreak/pagebreak.php:67

$regex = '#<hr(.*)class="system-pagebreak"(.*)\/>#iU';