본문을 리스트에서 불러오는데 코드블럭도 불러오고 싶습니다. 채택완료
안녕하세요.
게시판 리스트에서 본문 내용을 그대로 불러오려고,
리스트에서
<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 내용입니다.
</p>
<p><?php if (!defined("_GNUBOARD_")) exit; ?></p>
<p><!-- 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, "
") + "
";
else if (editorName == "cheditor5") changeCode = classN[n].innerHTML.replace(/<(\/p|p)([^>]*)>/gi, "") + "
";
else changeCode = (classN[n].innerHTML.replace(/\<p\>/gi, "").replace(/\<\/p\>/gi, "
") + "
").replace(/\<br\>\<br\>/gi, "
");
}
else changeCode = classN[n].innerHTML.replace(/\<br\>\<br\>/gi, "*br*").replace(/\<br\>/gi, "").replace(/\*br\*/gi, "
") + "
";
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><a href="https://youtu.be/"" target="_blank" rel="noopener noreferrer">https://youtu.be/"</a> + 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 --></p>
<p>
답변 3개
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 2개
본문에도 내용 썼듯이, 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'];?>")
이런식으로 처리해서 해결하였습니다.
댓글을 작성하려면 로그인이 필요합니다.
https://sir.kr/g5_skin/49311" rel="nofollow noreferrer noopener" target="_blank">https://sir.kr/g5_skin/49311 << 이것 >>>http://www.mediaplayer.kr/main/utility/11
그대로 리스트에 다 넣으면 될것 같은데요 안되던가요?
정확히 리스트에 어떤부분을 호출할려구 하는지요 ? ;;난 감이 안오네요;;
답변에 대한 댓글 1개
지금 게시판을 블로그형식으로 변경하려고 합니다.
그래서 본문 내용이 리스트에서 보여지는 화면과 똑같이 그대로 보여지기게 하려고 합니다.(워드프레스처럼...)
예전에 만들었던 블로그 게시판은 단지 이미지와 내용만 보여지기에 문제가 없었는데,
이번에 수정하면서 코드블럭도 불러오려고 하니 잘 안되네요.
제가 본문 중간에 어젯밤 추가한 내용에 자세히 적은게 있습니다.
처음에는 리스트 하단에 내용 다 넣어도 작동이 안되는줄 알았습니다.
그런데...
페이지당 목록 수를 1개로 하면 코드블럭이 보여지더라고요.
하지만... 페이지당 목록 수가 여러개가 되면 또 제대로 안보여지고요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
답변 감사합니다.
그동안 잘 사용하고 있었으니 예전코드의 오류는 아니고,
제가 이걸 리스트에서 사용하려고 하니 잘 안되서 질문 드렸습니다.
수정해서 올려주신다니 정말 감사합니다...^^