본문을 리스트에서 불러오는데 코드블럭도 불러오고 싶습니다.

본문을 리스트에서 불러오는데 코드블럭도 불러오고 싶습니다.

QA

본문을 리스트에서 불러오는데 코드블럭도 불러오고 싶습니다.

본문

안녕하세요.
게시판 리스트에서 본문 내용을 그대로 불러오려고, 

리스트에서 
<div id="bo_v_con"><?php echo $list[$i]['wr_content'] ?></div>
이렇게 입력했고, 원하는대로 잘 불러와 지고 있습니다. 
 
그런데, 
제가 비타주리님께서 스킨게시판에 올려주신 코드블럭(Syntax Highlight)도 사용중인데, 
https://sir.kr/g5_skin/49311
이것도 리스트에서 같이 불러오고 싶은데, 방법을 모르겠습니다. 

 

이 코드블럭을 본문에서 불러오기 위해서는 view.tail.skin.php 하나만 추가하면 되기에, 
혹시나해서 내용 그대로 복사해서 list.tail.skin.php을 만들어 봤지만 작동하지를 않네요. 

 

그래서 그냥 내용을 list.skin.php 하단에 view.tail.skin.php 내용을 그대로 넣어 보기도 했는데, 역시나 작동하지 않습니다.

 

혹시 방법이 있을까요?
아니면 리스트에서 불러오기는 불가능할까요?

 

아시는 분 계시면 답변 주시면 감사하겠습니다.

 

추가 :

원인을 알았습니다.

list.tail.skin.php 하단에 내용을 넣어도 코드블럭이 안 불러졌는데,

페이지당 목록 수를 1개로 하니 코드블럭이 보여지네요.

페이지당 목록 수를 여러개로 할 경우 <div id="bo_v_con">이 여러개 있어서 그런거 같은데,

이거 방법이 없을까요?

 

아래는 view.tail.skin.php 내용입니다.

 


<?php if (!defined("_GNUBOARD_")) exit; ?>
<!--  syntax highlight 옵션 시작 : wittazzurri -->
<link rel=stylesheet href=//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/styles/a11y-dark.min.css>
<script src=//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js></script>
<style>
pre { position:relative; -ms-overflow-style:none; }
pre::-webkit-scrollbar { display:none; }
.codeButton { position:absolute; cursor:pointer; top:15px; right:15px; }
</style>
<script>
editorName = "<?php echo $board['bo_use_dhtml_editor'] ? $config['cf_editor'] : "none"; ?>";
function codeCopy() {
    copyText.style.display = "block";
    copyText.value = arguments[0].innerText.trim();
    copyText.select();
    document.execCommand("copy");
    copyText.style.display = "none";
    copySound.play();
    alert("COPY CODE!!!");
}
function hlMode() {
    this[arguments[0]].innerHTML = this[arguments[0]].innerHTML.replace(/\[code\]/gi, "<div class=_code_" + arguments[0] + ">").replace(/\[\/code\]/gi, "</div>");
    classN = document.getElementsByClassName("_code_" + arguments[0]);
    for (n = 0; n < classN.length; n++) {
        if (arguments[0] == "bo_v_con") {
            if (editorName == "none") changeCode = classN[n].innerHTML.replace(/\<br\>\<br\>/gi, "*br*").replace(/\<br\>/gi, "").replace(/\*br\*/gi, "<br>") + "<br>";
            else if (editorName == "cheditor5") changeCode = classN[n].innerHTML.replace(/<(\/p|p)([^>]*)>/gi, "") + "<br>";
            else changeCode = (classN[n].innerHTML.replace(/\<p\>/gi, "").replace(/\<\/p\>/gi, "<br>") + "<br>").replace(/\<br\>\<br\>/gi, "<br>");
        }
        else changeCode = classN[n].innerHTML.replace(/\<br\>\<br\>/gi, "*br*").replace(/\<br\>/gi, "").replace(/\*br\*/gi, "<br>") + "<br>"; 
        classN[n].innerHTML = "<pre><code>" + changeCode + "<span class=codeButton><img src=<?php echo "$board_skin_url/file/copy.png"; ?> onclick=codeCopy(parentElement.parentElement)></code></pre></span>";
    }
}
hlGroup = ["bo_v_con"];
for (vtc = 0; vtc < document.getElementsByClassName("cmt_contents").length; vtc++) {
    document.getElementsByClassName("cmt_contents")[vtc].id = "cmt_num_" + (Number(vtc) + 1);
    hlGroup.push(document.getElementsByClassName("cmt_contents")[vtc].id);
}
for (hl in hlGroup) hlMode(hlGroup[hl]);
hljs.initHighlighting();
document.write("<textarea id=copyText style=display:none></textarea>");
document.write("<audio id=copySound src=<?php echo "$board_skin_url/file/copy_sound.mp3"; ?>></audio>");
codeDiv = document.getElementsByTagName("div");
for (ncd = 0; ncd < codeDiv.length; ncd++) if (String(codeDiv[ncd].classList).indexOf("_code_") > -1) codeDiv[ncd].removeAttribute("class");
codeZone = document.getElementsByTagName("code");
for (cz = 0; cz < codeZone.length; cz++) {
    for (cza = 0; cza < codeZone[cz].getElementsByTagName("audio").length; cza++) codeZone[cz].getElementsByTagName("audio")[cza].innerHTML = "<span class=hljs-string>" + codeZone[cz].getElementsByTagName("audio")[cza].src + "</span>";
    for (czv = 0; czv < codeZone[cz].getElementsByTagName("video").length; czv++) codeZone[cz].getElementsByTagName("video")[czv].innerHTML = "<span class=hljs-string>" + codeZone[cz].getElementsByTagName("video")[czv].src + "</span>";
    for (czy = 0; czy < codeZone[cz].getElementsByTagName("iframe").length; czy++) codeZone[cz].getElementsByTagName("iframe")[czy].innerHTML = "<span class=hljs-string>https://youtu.be/" + codeZone[cz].getElementsByTagName("iframe")[czy].src.split("/")[4] + "</span>";
    codeZone[cz].innerHTML = codeZone[cz].innerHTML.replace(/<(\/audio|audio)([^>]*)>/gi, "");
    codeZone[cz].innerHTML = codeZone[cz].innerHTML.replace(/<(\/video|video)([^>]*)>/gi, "");
    codeZone[cz].innerHTML = codeZone[cz].innerHTML.replace(/<(\/iframe|iframe)([^>]*)>/gi, "");
    codeZone[cz].innerHTML = codeZone[cz].innerHTML.replace(/<(\/a|a)([^>]*)>/gi, "");
    codeZone[cz].style.fontSize = "1rem";
    codeZone[cz].style.fontFamily = "times";
    codeZone[cz].style.padding = "20px";
    codeZone[cz].style.borderRadius = "15px";
    codeZone[cz].style.backgroundColor = "#000000";
}
</script>
<!--  /syntax highlight 옵션 종료 : wittazzurri -->

이 질문에 댓글 쓰기 :

답변 3

예전코드는 오류가 좀 있어서...

며칠내로 오류 수정하여 올릴게요.

비타주리님께서 직접 답변 주셨네요.
답변 감사합니다.
그동안 잘 사용하고 있었으니 예전코드의 오류는 아니고,
제가 이걸 리스트에서 사용하려고 하니 잘 안되서 질문 드렸습니다.
수정해서 올려주신다니 정말 감사합니다...^^

https://sir.kr/g5_skin/49311 << 이것 >>>http://www.mediaplayer.kr/main/utility/11

그대로 리스트에 다 넣으면 될것 같은데요 안되던가요? 

정확히 리스트에 어떤부분을 호출할려구 하는지요 ? ;;난 감이 안오네요;;

답변 감사합니다.
지금 게시판을 블로그형식으로 변경하려고 합니다.
그래서 본문 내용이 리스트에서 보여지는 화면과 똑같이 그대로 보여지기게 하려고 합니다.(워드프레스처럼...)

예전에 만들었던 블로그 게시판은 단지 이미지와 내용만 보여지기에 문제가 없었는데,
이번에 수정하면서 코드블럭도 불러오려고 하니 잘 안되네요.

제가 본문 중간에 어젯밤 추가한 내용에 자세히 적은게 있습니다.

처음에는 리스트 하단에 내용 다 넣어도 작동이 안되는줄 알았습니다.

그런데...
페이지당 목록 수를 1개로 하면 코드블럭이 보여지더라고요.
하지만... 페이지당 목록 수가 여러개가 되면 또 제대로 안보여지고요.

list.skin.php 가장 하단부에

view.tail.skin.php 에 작성된 내용 넣어보세요

안녕하세요.
본문에도 내용 썼듯이, list.skin.php 하단에 view.tail.skin.php의 내용을 넣었습니다.
그런데 리스트 페이지당 목록 수가 1개면 정상적으로 나오는데,
페이지당 목록 수가 여러개면 나오지 않더라고요.

무식한 방법이긴 하지만
<div id="bo_v_con"><div id="bo_v_con<?php  echo $list[$i]['num'];?>"><?php echo $list[$i]['wr_content'] ?></div></div>
...
if (arguments[0] == "bo_v_con<?php  echo $list[$i]['num'];?>")
이런식으로 처리해서 해결하였습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 1

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT