Programmatisch erstellter Artikel: System-Pagebreak-Problem
Ich habe 1000 Joomla-Artikel über den Konsolenimport erstellt (es war eine Migration von einer anderen Quelle). Alles funktioniert gut (Tagging, Intro-Text, Benutzerdefinierte Felder usw.), aber ich habe ein Problem mit System-Seitenbrüchen.
Der Seitenumbruch des Systems und der Introtext funktionieren auf die gleiche Weise: Einfügen spezieller <hr>
Elemente in die Texte, wie z.
<!-- introtext -->
<hr id="system-readmore" />
<!-- system pagebreak -->
<hr title="2" alt="2" class="system-pagebreak" />
Das "System-Readmore" funktioniert hervorragend, aber der "System-Seitenumbruch" funktioniert nicht richtig. Die "System-Seitenumbrüche" werden im Frontend als echte <hr>
Elemente ausgegeben . Wenn ich zum Backend gehe, öffne den Artikel und speichere ihn einfach - danach funktioniert es. Nach dem Konsolenimport des Artikels <hr>
werden die Artikel korrekt eingefügt, aber ich muss den Artikel manuell im Backend speichern, damit sie funktionieren.
Es muss eine Kennung oder etwas geben, das mir fehlt. Ich dachte, es ist genau wie beim "System-Readmore", aber es ist nicht so.
Weiß jemand, was ich vermisse, ich habe den Debugger von Joomla überprüft, kann aber keinen Hinweis finden.
Antworten
Die Lösung war recht einfach. Es war ein selbstschließendes Problem mit HTML-Elementen:
Wenn Sie auf dasselbe Problem <hr>
stoßen , überprüfen Sie, ob Ihre programmgesteuert eingefügten System-Seitenumbrüche einen abschließenden Schrägstrich aufweisen:
<-- CORRECT -->
<hr title="2" alt="2" class="system-pagebreak" />
<-- WILL NOT WORK -->
<hr title="2" alt="2" class="system-pagebreak">
In HTML5 ist dies im Allgemeinen kein Problem, aber das Joomla Core-Seitenumbruch-Plugin verwendet den folgenden regulären Ausdruck, um festzustellen, ob es sich um einen System-Seitenumbruch handelt oder nicht:
// plugins/content/pagebreak/pagebreak.php:67
$regex = '#<hr(.*)class="system-pagebreak"(.*)\/>#iU';