1

주제: 플러그인에서 치환자 사용할수 없나요?

개인적으로 사용할 플러그인을 만들고 있는데
스킨에서 사용하는 치환자를 불러올수 없는지 궁금합니다.

[##_body_id_##]를 사용해서 비교문을 만드려고 하거든요

if ( '[##_$bodyid_##]' == "news") {

}


이런식으로 하는데
아무리해도 불러들여와지지가 않네요.
혹시 방법이 있는데 못찾는건지... 벌써 한시간째 해메고 있네요
도움 한마디 부탁합니다.

2

답글: 플러그인에서 치환자 사용할수 없나요?

치환자는 한번만 사용할 수 있는 치환자와 다수 허용 치환자로 나뉘는 것으로 알고 있습니다. (맞나?)
body id는 1회치환자 일겁니다.

텍스트큐브를 이용하시다 불편하신 점 있으시면 아래로 연락주세요.
Needlworks/TNF - LonnieNa
nateon : y12x2 (a.t) nate.com / mail : lonniena (a.t) needlworks.org
http://twitter.com/@textcube

3

답글: 플러그인에서 치환자 사용할수 없나요?

해보니까 1회뿐이 아니고 여러번 호출이 가능하더라구요.
단 skin.html에서 사용할때만 제대로 출력이 되고
플러그인안에서 호출하게 되면 아예 빈 값으로 나오는것 같습니다.

그래서 제가 궁금한게, 과연 스킨에서 사용하는 치환자를 플러그인안에서 호출할 수 있는지.
혹시 없다면, 플러그인안에서 php를 이용해서
현재 문서의 body의 id를 호출할수 있는지 여부입니다.

4

답글: 플러그인에서 치환자 사용할수 없나요?

한 가지 우회적인 방법은 javascript를 사용해서 body id를 읽어 동작을 달리하는 것인데, 만약 반드시 서버측에서 처리해야 하는 일이라면 해결하기 어렵습니다.

스킨에 출력되는 body id는 library/piece/blog/begin.php에서 일정 조건에 따라 바로 스킨에 삽입될 뿐 전역변수로 따로 등록되지 않습니다.

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

5

답글: 플러그인에서 치환자 사용할수 없나요?

자답하게 되네요.
결국 자바스크립트로 해결을 했습니다.
이런 문제를 스크립트로 할 수 있는지 알지 못해서 플러그인을 만들 생각까지 하게 되었네요.

제가 하려던 것은 skin.html에서 body_id에 따라서 다른 내용을 출력하는 것이었구요.
직접 skin.html안에다가

        <script type="text/javascript">
            if ( "[##_body_id_##]" == "songs"){
            document.write("this is songs");
            }
            else {
            document.write("this is not songs");
            }
        </script>

이런 식으로 해서 원하는 결과를 얻었습니다.

6

답글: 플러그인에서 치환자 사용할수 없나요?

anaki 작성:

자답하게 되네요.
결국 자바스크립트로 해결을 했습니다.
이런 문제를 스크립트로 할 수 있는지 알지 못해서 플러그인을 만들 생각까지 하게 되었네요.

제가 하려던 것은 skin.html에서 body_id에 따라서 다른 내용을 출력하는 것이었구요.
직접 skin.html안에다가

        <script type="text/javascript">
            if ( "[##_body_id_##]" == "songs"){
            document.write("this is songs");
            }
            else {
            document.write("this is not songs");
            }
        </script>

이런 식으로 해서 원하는 결과를 얻었습니다.

음, 조금 더 나은 방법은 document.body.getAttribute('id') == "songs" 표현식을 쓰는 것입니다. 어쨌든 해결하셨다니 다행이지만, 앞으로 스킨 규격 변화에 따라 [##_body_id_##]라는 치환자가 사라질 가능성도 있기 때문입니다.

daybreaker (2009-01-22 18:08:25)에 의해 마지막으로 수정

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.

7

답글: 플러그인에서 치환자 사용할수 없나요?

daybreaker 작성:
anaki 작성:

자답하게 되네요.
결국 자바스크립트로 해결을 했습니다.
이런 문제를 스크립트로 할 수 있는지 알지 못해서 플러그인을 만들 생각까지 하게 되었네요.

제가 하려던 것은 skin.html에서 body_id에 따라서 다른 내용을 출력하는 것이었구요.
직접 skin.html안에다가

        <script type="text/javascript">
            if ( "[##_body_id_##]" == "songs"){
            document.write("this is songs");
            }
            else {
            document.write("this is not songs");
            }
        </script>

이런 식으로 해서 원하는 결과를 얻었습니다.

음, 조금 더 나은 방법은 document.body.getAttribute('id') == "songs" 표현식을 쓰는 것입니다. 어쨌든 해결하셨다니 다행이지만, 앞으로 스킨 규격 변화에 따라 [##_body_id_##]라는 치환자가 사라질 가능성도 있기 때문입니다.

아 그런방법이 있었군요 ^^
감사합니다.
적용해서 해결했구요.
저걸 알았으면 썼을텐데, 못찾겠더라구요.
조금씩이라도 자바를 공부해야겠네요 감사합니다^^

8

답글: 플러그인에서 치환자 사용할수 없나요?

anaki 작성:

조금씩이라도 자바를 공부해야겠네요 감사합니다^^

자바스크립트(Javascript)와 자바(Java)는 상당히 다른 프로그래밍언어입니다. 참고하세요~ ^^;;

문제의 답은 우리 안에 있다.
내면에 귀를 기울여 보자.