Daybreakin Things

Posted
Filed under 컴퓨터
태터 툴즈를 보면 more/less 기능이 있는데,

그 기능은 이런 것이다.


그런데 이게 div 태그에 display:block 이란 스타일을 사용하기 때문에 [#I_이것|(닫기)| inline description_I#]은 지원되지 않는다. (즉, 줄 중간에 넣을 수 없고 반드시 독립된 문단으로만 보여진다)

그래서 결국 태터툴즈를 직접 수정하여 위가 가능하게끔 만들었다.
(도움 : 토끼군)

방법 : (0.93, 0.94, 0.95에서 가능)
1. 자기 계정의 태터 툴즈 디렉토리에 접근하여 inc_function.php를 열고 아래와 같은 내용을 찾는다.

[CODE]function set_moreless($str, $pno){ unset($n1, $n2, $cval); while ($n1 = strpos($str, "[##M_")) { // 여기의 #을 한 개로 고쳐서 쓰세요. $n2 = strpos($str, "_M#]"); if (!$n2 || $n1 > $n2) break; $cval = substr($str, $n1+4, $n2-$n1-4); $more = substr($cval, 0, strpos($cval,"|")); $cval = substr($cval, strpos($cval,"|")+1); $less = substr($cval, 0, strpos($cval,"|")); $cval = substr($cval, strpos($cval,"|")+1); $count++; $more_id = "div".$pno.$count."a"; $less_id = "div".$pno.$count."b"; $str = substr($str, 0, $n1)."<div id=$more_id style=display:block><a href=# onclick="layer_toggle(document.getElementById('$more_id')); layer_toggle(document.getElementById('$less_id')); return false; ">$more</a></div><div id=$less_id style=display:none ><a href=# onclick="layer_toggle(document.getElementById('$more_id')); layer_toggle(document.getElementById('$less_id'));return false;">$less</a>$cval</div>".substr($str, $n2+4); } [/CODE]

2. 바로 아래에 다음과 같은 내용을 추가한다.

[CODE] unset($n1, $n2, $cval); while ($n1 = strpos($str, "[##I_")) { // 여기도 #을 한개로.. $n2 = strpos($str, "_I#]"); if (!$n2 || $n1 > $n2) break; $cval = substr($str, $n1+4, $n2-$n1-4); $more = substr($cval, 0, strpos($cval,"|")); $cval = substr($cval, strpos($cval,"|")+1); $less = substr($cval, 0, strpos($cval,"|")); $cval = substr($cval, strpos($cval,"|")+1); $count++; $more_id = "span".$pno.$count."a"; $less_id = "span".$pno.$count."b"; $str = substr($str, 0, $n1)."<span id=$more_id style=display:inline><a href=# onclick="ilayer_toggle(document.getElementById('$more_id')); ilayer_toggle(document.getElementById('$less_id')); return false; ">$more</a></span><span id=$less_id style=display:none ><a href=# onclick="ilayer_toggle(document.getElementById('$more_id')); ilayer_toggle(document.getElementById('$less_id'));return false;">$less</a>$cval</span>".substr($str, $n2+4); } [/CODE]

3. 태터툴즈 메인 디렉토리에서 lib.js를 열고 다음을 추가한다.

[CODE]function ilayer_toggle(obj) { if (obj.style.display == 'none') obj.style.display = 'inline'; else if (obj.style.display == 'inline') obj.style.display = 'none'; } [/CODE]

그렇게 하면 [ #M_ more.. | less.. | _M# ] 태그를 추가한 후 M을 I로 고쳐서 inline description을 사용할 수 있다. (여기서 "I"는 대문자 i이다)

(여기에 덧붙여, admin 폴더 내의 article_edit.php를 수정하여 편집툴에 바로 이것을 넣도록 수정할 수도 있다.)