Artigo criado programaticamente: problema de quebra de página do sistema

Dec 11 2020

Eu criei 1000 artigos joomla via importação de console (foi uma migração de outra fonte). Tudo está funcionando bem (Tagging, Intro-Text, campos personalizados e assim por diante), mas eu tenho um problema com quebra de página do sistema.

A quebra de página do sistema e o introtexto funcionam da mesma forma: inserindo <hr>elementos especiais nos textos, como:

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

O "system-readmore" está funcionando bem, mas o "system-pagebreak" não está funcionando corretamente. O "sistema de quebra de página" é gerado no frontend como <hr>elementos reais . Se eu for para o backend, abra o artigo e salve-o - depois disso, ele funciona. Assim, após a importação do console do artigo, eles <hr>são inseridos corretamente, mas tenho que salvar manualmente o artigo no backend para fazê-los funcionar.

Deve haver um identificador ou algo que estou faltando. Achei que fosse exatamente como o "readmore do sistema", mas não é.

Alguém sabe o que estou perdendo, eu verifiquei o depurador do joomla, mas não consigo encontrar uma dica.

Respostas

3 ThomasBaier Dec 11 2020 at 19:12

A solução foi bastante simples. Era um problema de fechamento automático do elemento HTML:

Se você enfrentar o mesmo problema, verifique se as <hr>quebras de página do sistema inseridas programaticamente têm uma barra de fechamento:

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

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

Em HTML5 geralmente isso não é problema, mas o plugin joomla core pagebreak usa o seguinte regex para determinar se é uma quebra de página do sistema ou não:

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

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