안녕하세요? KBoard 게시판 사용중 문제가 있어서 문의 드립니다.
게시판에 작성한 글에 대해서 수정을 누르는 경우,
기존에 입력한 빈 줄이 정상적으로 나타나지 않습니다.
이 현상은 데모 게시판에서 바로 확인할 수 있습니다.
아래 글에서 '글 수정'을 누르면 에디터 화면에서 줄바꿈 정보는 사라집니다.
https://www.cosmosfarm.com/demo/?uid=4158&mod=document&pageid=1
[참고]
일반 포스트로 작성한 경우에는 글 수정시에 줄바꿈이 정상적으로 표시됩니다.
Database를 확인해보니 POST로 작성한 경우에는 가 남아있고
Kboard에서 작성한 경우에는 가 사라져 있는 차이가 있었습니다.
* 참고로 functions.php에 아래 filter를 적용한 상태입니다. (단, 줄바꿈 사라지는 문제는 적용여부와 상관은 없습니다.)
remove_filter('kboard_content_paragraph_breaks', 'kboard_content_paragraph_breaks', 10);
add_filter('kboard_content_paragraph_breaks', 'wpautop');
감사합니다.
안녕하세요~^^
줄 바꿈이 적용되지 않는 것은 에러는 아닙니다.
워드프레스 내장 에디터에서 <br> 태그를 사용하지 않기 때문에 플러그인 쪽의 문제는 아닙니다.
워드프레스 내장 에디터에서 엔터를 눌렀을 때 <br> 태그가 삭제되고 가 추가되도록 워드프레스에서 세팅이 되어있습니다.
최종 화면에 내용이 출력될 때 nl2br 혹은 wpautop 함수로 <br> 태그 또는 <p> 태그를 추가하여 표시하고 있습니다.
저희도 좋은 방법이 있을지 연구해보고 개선해서 업데이트하도록 하겠습니다.
고맙습니다.
의미 전달이 잘못된것 같습니다.
KBoard에서 글 수정시에 에디터에 보이는 내용에서 여러번 엔터를 입력한 빈 줄 부분은 모두 없어져 버립니다.
즉, 단순한 태그 문제가 아니라 실제 글의 형태가 변경되는 문제입니다.
간단하게 테스트 하려면 KBoard 데모 페이지에서
첫줄
(빈 줄)
둘째줄
인 내용을 작성한 후 글 수정을 눌러보시면
첫줄
둘째줄
과 같이 중간의 빈 줄은 없어진 상태로 에디터에 나타나는 것을 볼 수 있습니다.
이 상태로 저장을 누르면 글 사이의 빈 줄은 모두 사라진 채로 저장됩니다.
데이터베이스를 보면
첫줄
둘째줄
과 같이 가 없어진 채로 (실제로는 space로 변환 되어) 저장되어있는것으로 보입니다.
저장할 때 를 실제 공백으로 변환하지 않고 DB에 저장되게 할 수 없을까요?
( 가 남아있는 경우에는 에디터 화면에서 정상적으로 보입니다. POST로 작성하는 경우에는 가 남아있네요.)
지금 상태로는 본문에 빈 줄들이 있는 경우에는 글 수정에 어려움이 있기 때문에 문의드립니다.
감사합니다.
안녕하세요.
워드프레스 글(Post)과 KBoard 플러그인 게시글 저장 방식 및 표시방법을 비교해봐야 할 듯합니다.
저희도 테스트해본 후 좋은 방법을 찾게 되면 다시 안내해드리겠습니다.
고맙습니다.
데이터베이스에 문자를 그대로 저장하더라도
워드프레스 내장 에디터에서 <p> </p> 이런 식으로 표시됩니다.
태그 안의 내용이 없다면 에디터에서 지우고 있습니다.
줄 바꿈을 wpautop 함수로 활용하고 <p> </p> 문자열을 <p><br></p>로 치환해서 저장하면 가능할 듯합니다.
실제 코드는
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해서 테스트해보시겠어요?
add_action('kboard_pre_content_execute', 'my_kboard_pre_content_execute', 10, 4);
function my_kboard_pre_content_execute($content, $board){
if(isset($_POST['kboard_content'])){
$content->content = wpautop($_POST['kboard_content']);
$content->content = str_replace('<p> </p>', '<p><br></p>', $content->content);
}
}
기존 추가하신 코드는 지우신 후에 테스트해보시겠어요?
고맙습니다.
오오 잘 동작합니다 ^^
감사합니다!
추가로 몇가지 시험해본 결과 database에 가 사라지는 이유는
kboard_xssfilter (HTMLPurifier?)에서 뭔가를 건드리는것 같습니다. (세부 내용은 모르겠습니다.)
remove_filter('kboard_content_paragraph_breaks', 'kboard_content_paragraph_breaks', 10);
add_filter('kboard_content_paragraph_breaks', 'wpautop');
와 같이 wpautop 모드로 설정하고 XSS공격 차단을 비활성화 하면
에디터 줄바꿈이 정상으로 동작하고 DB에도 로 잘 들어갑니다. ^^;
감사합니다.
저도 같은 현상이 있었는데, XSS공격 차단을 비활성화 하니까 해결되었어요.