스킨에서 {$oDocument->getContent(false)}
본문을 불러와 보여주는데요. 가끔 회원분들중 과도한 엔터가 문서 하단에 들어간걸 그냥 보통 지우지 않으시는 경우가 있는데요.
스킨에서 본문을 불러오면서 내용의 끝부분에 위치한 반복되는 <p> </p> 를 제거해 버릴 수 있을까요 ??
스킨에서 {$oDocument->getContent(false)}
본문을 불러와 보여주는데요. 가끔 회원분들중 과도한 엔터가 문서 하단에 들어간걸 그냥 보통 지우지 않으시는 경우가 있는데요.
스킨에서 본문을 불러오면서 내용의 끝부분에 위치한 반복되는 <p> </p> 를 제거해 버릴 수 있을까요 ??
아, 맨 뒤에 <!--AfterDocument(123,456)--> 주석이 자동으로 붙어서 정규식이 "끝"을 인식하지 못하는군요.
{preg_replace('@(<p> </p>\s*)+(</div>\s*<!--AfterDocument\(\d+,\d+\)-->\s*)$@', '$2', $oDocument->getContent(false))}
이렇게 해보세요.
헐... 저도 궁금증이 발동하네요. 혹시 아래 코드를 사용하시는 애드온에 추가하시고 테스트 해보실 수있나요?
if($called_position == 'after_module_proc' && $this->act == 'dispBoardContent') { $oContext = Context::getInstance(); $oDocument = Context::get('oDocument'); if($oDocument->variables['document_srl']) { $oDocument->variables['content'] = preg_replace('/(<\s*p\s*>[\s| ]*<\s*\/p\s*>\s*)+<\s*\/div\s*>/i', '</div>', $oDocument->variables['content']); } }
누군가 글을 읽은건지 생성된 이후 제가 글을 읽으면 생성이 안되네요. 지우고 다시 글을 읽어봐도 안생깁니다.
생성되는 파일이 무작위라 제가 분석하기 너무 어렵네요.
if문 안에
$logged_info = Context::get('logged_info');
if($logged_info->is_admin == 'Y')
@file_put_contents('./files/content.txt', $oDocument->variables['content']);
관리자 일때만 생성하게 해보세요.
잘 되는 문서를 수정모드에서 보면 공백이..
<p>신나는 하루였어요 ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ</p>
<p> </p>
<p> </p>
<p> </p>
안되는 문서 수정해서 보면 공백이...
<p>요때도~~ #너구리 였답니다~~^^</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
제눈으로는 차이가 없습니다 ㅡㅡ;
@prologos
페이지가 넘어가서 다시 여기에 정리합니다.
해시태그애드온과 관련성은 있어보입니다.
뭔가 안되던게 다시 잘 되었던 건 "최고관리자 권한"의 계정으로 수정해서 되는 것으로 확인 되었습니다.
잘 안되는 파일은 먼저 댓글에 첨부해 드렸습니다.
해시태그온 애드온 사용시 일반계정으로 글 등록시 줄바꿈이
<p> </p> 로 바뀌어 등록되는 듯 합니다.
최고관리자 계정으로 다시 수정하면 원래 줄바꿈으로 되는거 같구요.
꼭 해시태그온 영향이 아니더라도 <p> </p>로 변해버리거나 작성된 줄바꿈이 처리되지 않는거니 이것 까지 처리되면 문제가 없어 보입니다.
{preg_replace('@(<p> </p>\s*)+$@', '', $oDocument->getContent(false))}
이렇게 해보세요. 불러올 때마다 변환하는 것보다는 처음에 저장할 때 지우는 것이 더 효율적이긴 합니다만...