Artikel yang dibuat secara terprogram: Masalah System-Pagebreak
Saya telah membuat 1000 artikel joomla melalui impor konsol (Itu adalah migrasi dari sumber lain). Semuanya bekerja dengan baik (Tagging, Intro-Text, Custom field, dan sebagainya) tetapi saya memiliki masalah dengan pagebreak sistem.
Pemecah halaman sistem dan introteks bekerja dengan cara yang sama: memasukkan <hr>
elemen khusus ke dalam teks, seperti:
<!-- introtext -->
<hr id="system-readmore" />
<!-- system pagebreak -->
<hr title="2" alt="2" class="system-pagebreak" />
"System-readmore" bekerja dengan baik tetapi "system-pagebreak" tidak bekerja dengan benar. "System-pagebreak" dikeluarkan di frontend sebagai <hr>
elemen nyata . Jika saya pergi ke backend, buka artikel dan simpan saja - setelah itu berfungsi. Jadi setelah impor konsol dari artikel <hr>
tersebut dimasukkan dengan benar tetapi saya harus menyimpan artikel secara manual di backend untuk membuatnya berfungsi.
Harus ada pengenal atau sesuatu yang saya lewatkan. Saya pikir ini seperti "system-readmore" tapi ternyata tidak.
Apakah seseorang tahu apa yang saya lewatkan, saya memeriksa debugger joomla tetapi tidak dapat menemukan petunjuk.
Jawaban
Solusi cukup sederhana. Itu adalah masalah elemen HTML yang menutup sendiri:
Jika Anda menghadapi masalah yang sama, periksa apakah <hr>
pemecah halaman sistem yang dimasukkan secara terprogram memiliki garis miring penutup:
<-- CORRECT -->
<hr title="2" alt="2" class="system-pagebreak" />
<-- WILL NOT WORK -->
<hr title="2" alt="2" class="system-pagebreak">
Dalam HTML5 umumnya hal ini tidak menjadi masalah tetapi plugin pagebreak inti joomla menggunakan regex berikut untuk menentukan apakah itu pagebreak sistem atau bukan:
// plugins/content/pagebreak/pagebreak.php:67
$regex = '#<hr(.*)class="system-pagebreak"(.*)\/>#iU';