스마트에디터 view페이지 연동 문의 채택완료
스마트에디터의 view 부분 페이지에 wr_1을 노출하고자 합니다.
$html = 0 으로 설정시 html 태그도 나오며, 1 또는 2로 설정시 html태그는 purify 되어 나옵니다.
즉 wr_1에 "<p>wr1</p><p>wr1</p>" 가 저장되어 있을 시
$html = 0 일 경우 "<p>wr1</p><p>wr1</p>" 나옴
$html = 1 일 경우 "wr1wr1" 나옴
html이 적용된 결과값이 "wr1 줄바꿈 wr1" 형태로 어떻게 하면 나오게 될까요?
view.php
view.skin.php
답변 2개
먼저
/bbs/view.php 에서
conv_content를 어떻게 사용했는지를 보시면
$view['content'] = conv_content($view['wr_content'], $html, $board['as_purifier'] ? false : true);
로 되어있습니다.
commonl.lib.php 파일에 있는 conv_content에 주석을 좀 달아보겠습니다.
// 내용을 변환하는 함수
// $content : 변환할 원본 내용
// $html : HTML을 허용할지 여부 (0=텍스트, 1=HTML, 2=HTML + 자동 줄바꿈)
// $filter : HTML Purifier 필터 적용 여부 (기본 true)
function conv_content($content, $html, $filter=true)
{
// 환경설정($config)과 게시판 정보($board)를 전역에서 가져옴
// conv_content는 게시판 출력 시 자주 사용되기 때문에 글로벌 변수를 공유함
global $config, $board;
// ---------------------------------------------------------------------
// ? 1) HTML 모드일 때 (HTML 태그를 그대로 출력)
// ---------------------------------------------------------------------
if ($html)
{
$source = array(); // 치환할 패턴 목록
$target = array(); // 치환 후 결과 목록
// "//"를 제거하는 이유:
// 일부 글에서 "//"가 있는 경우 주석처럼 취급되거나 깨질 수 있어 제거함
$source[] = "//";
$target[] = "";
// html == 2 → 자동 줄바꿈 기능
// 사용자가 엔터(\n)를 치면
태그로 바꿔 화면에서 줄바꿈이 보이도록 처리
if ($html == 2) {
$source[] = "/\n/";
$target[] = "
";
}
// ---------------------------------------------------------------------
// ? 1-1) 태그 보정
// HTML 작성 시 은 있는데 을 안 닫는 실수가 자주 발생
// 브라우저가 테이블을 제대로 표시하지 못하기 때문에
// 개수와 개수를 비교해서 부족한 만큼 를 자동으로 추가해줌
// ---------------------------------------------------------------------
$table_begin_count = substr_count(strtolower($content), "
같은 패턴으로
wr_1도 적용하고 싶으시면
$view['content'] = conv_content($view['wr_content'], $html, $board['as_purifier'] ? false : true);
$view['wr_1'] = conv_content($view['wr_1'], $html, $board['as_purifier'] ? false : true);
로 해보세요
참고로 view.php 파일에 있는 내용입니다.
다른 파일에 적용할때는 그에 맞는 커스텀이 필요할겁니다.
댓글을 작성하려면 로그인이 필요합니다.
css 문제였네요. 해당 영역에 display: flex 적용하면 줄바꿈 처리가 안되었습니다. ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인