Article créé par programme: problème de saut de page système
J'ai créé 1000 articles joomla via l'importation de la console (c'était une migration depuis une autre source). Tout fonctionne correctement (balisage, texte d'introduction, champs personnalisés, etc.) mais j'ai un problème avec les sauts de page système.
Le saut de page système et l'introtexte fonctionnent de la même manière: insérer des <hr>
éléments spéciaux dans les textes, comme:
<!-- introtext -->
<hr id="system-readmore" />
<!-- system pagebreak -->
<hr title="2" alt="2" class="system-pagebreak" />
Le "system-readmore" fonctionne très bien mais le "system-pagebreak" ne fonctionne pas correctement. Les "sauts de page système" sont affichés en frontend sous forme d' <hr>
éléments réels . Si je vais au backend, ouvrez l'article et enregistrez-le simplement - après cela, cela fonctionne. Ainsi, après l'importation de l'article dans la console, ils <hr>
sont insérés correctement, mais je dois enregistrer manuellement l'article dans le backend pour les faire fonctionner.
Il doit y avoir un identifiant ou quelque chose qui me manque. Je pensais que c'était comme le "system-readmore" mais ce n'est pas le cas.
Est-ce que quelqu'un sait ce que je manque, j'ai vérifié le débogueur de joomla mais je ne trouve pas d'indice.
Réponses
La solution était assez simple. C'était un problème d'élément HTML à fermeture automatique:
Si vous rencontrez le même problème, vérifiez que vos <hr>
sauts de page système insérés par programmation comportent une barre oblique de fermeture:
<-- CORRECT -->
<hr title="2" alt="2" class="system-pagebreak" />
<-- WILL NOT WORK -->
<hr title="2" alt="2" class="system-pagebreak">
En HTML5, ce n'est généralement pas un problème, mais le plugin de saut de page de base de joomla utilise l'expression régulière suivante pour déterminer s'il s'agit d'un saut de page système ou non:
// plugins/content/pagebreak/pagebreak.php:67
$regex = '#<hr(.*)class="system-pagebreak"(.*)\/>#iU';