Artykuł utworzony programowo: problem z systemem Pagebreak

Dec 11 2020

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

3 ThomasBaier Dec 11 2020 at 19:12

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';