Artykuł utworzony programowo: problem z systemem Pagebreak
Stworzyłem 1000 artykułów joomla za pośrednictwem importu konsoli (była to migracja z innego źródła). Wszystko działa dobrze (tagowanie, tekst wprowadzający, pola niestandardowe itd.), Ale mam problem z podziałami stron w systemie.
Systemowy podział strony i introtekst działają w ten sam sposób: wstawiają <hr>
do tekstów specjalne elementy, takie jak:
<!-- introtext -->
<hr id="system-readmore" />
<!-- system pagebreak -->
<hr title="2" alt="2" class="system-pagebreak" />
„System-readmore” działa świetnie, ale „podział strony systemowej” nie działa poprawnie. „Podział strony systemowej” jest wyświetlany w interfejsie użytkownika jako rzeczywiste <hr>
elementy. Jeśli przejdę do zaplecza, otwórz artykuł i po prostu go zapisz - potem działa. Po zaimportowaniu z konsoli artykuły <hr>
są wstawiane poprawnie, ale muszę ręcznie zapisać artykuł w zapleczu, aby uruchomić je.
Musi być identyfikator lub coś, czego mi brakuje. Myślałem, że to jest po prostu jak „system-readmore”, ale tak nie jest.
Czy ktoś wie, czego mi brakuje, sprawdziłem debugera Joomla, ale nie mogę znaleźć podpowiedzi.
Odpowiedzi
Rozwiązanie było ciche i proste. To był problem z samozamykającym się elementem HTML:
Jeśli napotkasz ten sam problem, sprawdź, czy programowo wstawione <hr>
systemowe podziały stron mają zamykający ukośnik:
<-- CORRECT -->
<hr title="2" alt="2" class="system-pagebreak" />
<-- WILL NOT WORK -->
<hr title="2" alt="2" class="system-pagebreak">
W HTML5 generalnie nie stanowi to problemu, ale wtyczka joomla core pagebreak używa następującego wyrażenia regularnego, aby określić, czy jest to systemowa łamanie strony, czy nie:
// plugins/content/pagebreak/pagebreak.php:67
$regex = '#<hr(.*)class="system-pagebreak"(.*)\/>#iU';