프로그래밍 방식으로 생성 된 문서 : 시스템 페이지 브레이크 문제

Dec 11 2020

콘솔 가져 오기를 통해 1000 개의 joomla 기사를 만들었습니다 (다른 소스에서 마이그레이션했습니다). 모든 것이 잘 작동하지만 (태그 지정, 소개 텍스트, 사용자 정의 필드 등) 시스템 페이지 나누기에 문제가 있습니다.

시스템 페이지 나누기와 인트로 <hr>텍스트는 다음과 같이 텍스트에 특수 요소를 삽입하는 것과 같은 방식으로 작동합니다 .

<!-- introtext -->
<hr id="system-readmore" />
<!-- system pagebreak -->
<hr title="2" alt="2" class="system-pagebreak" />

"system-readmore"는 훌륭하게 작동하지만 "system-pagebreak"는 제대로 작동하지 않습니다. "system-pagebreak"는 실제 <hr>요소 로 프런트 엔드에 출력됩니다 . 백엔드로 이동하면 기사를 열고 저장하면됩니다. 따라서 기사의 콘솔 가져 오기 후 <hr>올바르게 삽입되지만 백엔드에 기사를 수동으로 저장해야 작동합니다.

식별자 또는 내가 누락 된 것이 있어야합니다. 나는 그것이 "system-readmore"와 같다고 생각했지만 그렇지 않다.

누군가 내가 놓친 것을 알고 있습니까, 나는 joomla의 디버거를 확인했지만 힌트를 찾을 수 없습니다.

답변

3 ThomasBaier Dec 11 2020 at 19:12

해결책은 조용했습니다. 자동 종료 HTML 요소 문제였습니다.

같은 문제가 발생하면 프로그래밍 방식으로 삽입 된 <hr>시스템 페이지 나누기에 닫는 슬래시가 있는지 확인합니다 .

<-- CORRECT -->
<hr title="2" alt="2" class="system-pagebreak" />

<-- WILL NOT WORK -->
<hr title="2" alt="2" class="system-pagebreak">

HTML5에서는 일반적으로 이것은 문제가되지 않지만 joomla 코어 페이지 브레이크 플러그인은 다음 정규식을 사용하여 시스템 페이지 브레이크인지 여부를 결정합니다.

// plugins/content/pagebreak/pagebreak.php:67

$regex = '#<hr(.*)class="system-pagebreak"(.*)\/>#iU';