1

주제: 플러그인 제작 관련하여..

지금 여러 플러그인이 본문이 나오는 부분에 필요한 내용을 출력하는 경우가 있습니다.
머 제가 만든 Zero 카테고리 같은 것이요.
또는 잿빛미소님이 만든 스킨에 있던 기능이던가?
지금은 어쩔 수 없이 테터툴즈의 소스를 수정하고..
아이프레임을 사용중인데요..
특정 플러그인이 실행되었을 경우에..
그 플러그인에서 테터툴즈의 소스 수정 없이도 본문에 내용이 출력될 수 있으면 좋겠습니다.
무슨 말이냐면..

A 라는 플러그인이 실행이 되면..
A 라는 플러그인이 상황을 파악해서..
내가 작동해야 하는 상황이 아니면 그냥 넘기고..
내가 작동해야 하는 상황이면..
지금 본문의 내용이 나오는 부분의 모든 글 목록을 지우고..
자기 자신이 출력해야 할 값을 target로 보내버리는 것입니다.

테터툴즈에서 지원해 준다면 많은 괜찮은 플러그인들이 나올 듯 합니다.

아래에서 이야기한
'태터툴즈 리더기를 밖으로..'
같은 것도 쉽게 만들 수 있을것이고요..
또한 블로그에 자기자신만의 내용을 출력 할 수 있을 것입니다.
(예로 다중 사용자 같은 경우 여러사람들의 블로그들을 소개하는 간단한 페이지를 삽입 가능 할 것입니다.)
지금은 보통 사이드 메뉴같은거 다 포기하고..
완전히 새로운 페이지가 나오도록 하고 있습니다.

말이 어려웠나??

헤헤...~~~

--

아 이 기능을 넣는다면 특정 플러그인을 불러오는 특정한 상황이 필요할 것입니다.
그러니깐 예로..
http://blog.lovebe.net/tt/plugin/zero
라고 하면 위에서 설명한 플러그인을 사용중인데 그 코드값이 zero 이다..
http://blog.lovebe.net/tt/plugin/A
이것도 같은 상황인데 플러그인의 코드값이 A이다.
그래서 그 코드값을 이용하여 다른 플러그인과의 충돌을 피하면서 사용할 수 있으면 좋을듯..
물론..
http://blog.lovebe.net/tt/plugin/A/aassddff
라고 해서..
코드값이 A이면서 A라는 플러그인이 필요로 하는 값들로 aassddff가 있다고 넘겨준다면..
플러그인의 활용은 더욱 더 좋을 것입니다.

예제로..
http://blog.lovebe.net/plugin/plugin
http://blog.lovebe.net/plugin/ideakiss
가 있습니다..^^;;;;

모두 테터툴즈 본문에 게시판내용을 표시하도록 하는 것이고...
위에것은 제 플러그인 관련 게시판이며..
밑에것은 ideakiss님과 몇가지 정보를 주고 받기 위해서 사용중인 게시판입니다.
물론 추가했을 경우에는 뒤에 값만 바꿔주면 자동으로 인식하도록 되어있습니다..^^;;
(물론 지금은 게시판 같은거 안만들어놨기 때문에 없는 게시판이라고 뜰것입니다만..^^;;)

Juno (2006-05-28 17:15:25)에 의해 마지막으로 수정

Good Bye, 세상이여...
Bye Bye, 나의 인연이여..
그리고 마지막으로...
Thank you 모든이여...

2

답글: 플러그인 제작 관련하여..

예제 사이트는 지금 플러그인으로도 충분히 제작 가능한 것처럼 보이는데요? 어떤 기능을 원하시는 건가요?

좀 더 구체적으로 상황을 서술해 주시면 더 이해하기가 쉬울 것 같습니다.

graphittie (2006-05-28 17:25:39)에 의해 마지막으로 수정

3

답글: 플러그인 제작 관련하여..

그러니깐 지금은 본문 내용을 넣기 위해서 테터툴즈의 소스를 수정 하고 있지만..
실제 소스의 수정없이도..
사용가능하도록 하는 것을 말하는 것입니다.
관련 이벤트을 넣어달라는 것이죠..^^;;;;
또한 관련 이벤트를 넣었을 때 플러그인들의 충돌을 방지할 수 있도록 코드값이 필요하다는 말이구요.
마지막으로 코드값을 넘겨주면서 필요한 정보도 같이 넘겨 줄 수 있도록 해주면 좋겠다는 말입니다.
나머지는 플러그인 제작자들이 할 일이지만...
저 부분은 소스를 수정해서 사용해야 하잖아요...

Juno (2006-05-28 17:25:05)에 의해 마지막으로 수정

Good Bye, 세상이여...
Bye Bye, 나의 인연이여..
그리고 마지막으로...
Thank you 모든이여...

4

답글: 플러그인 제작 관련하여..

플러그인 충돌방지 문제는 TnF 분들과 방식을 두고 좀 더 협의를 해봐야 할 것 같구요,:/

이벤트 추가 문제는 정확히 무엇을 원하시는지 이해가 잘 되지 않습니다. 언어 능력이 좀 딸려서... 좀 더 상황 설명을 부탁드립니다.

5

답글: 플러그인 제작 관련하여..

몇가지의 플러그인을 예로 설명해 드리겠습니다.
J. Parker님이 제작 배포중인 Thumbnail List라는 플러그인이 있습니다.
카테고리를 열 경우를 체크해서 설정되어 있는 카테고리이면 본인이 필요한 데이터를 출력하고..
아니면 원문을 출력하도록 되어 있습니다.
그런데 이것을 쓰기 위해서는 /blog/category/index.php 파일을 수정해야 합니다.
또한 설정되어 있지 않은 경우에도 원문을 표시하도록 하는 내용이 플러그인에 추가가 되어 있습니다.

제가 만들어서 배포했었던 Zero Category란 것이 있습니다.
테터툴즈와 제로보드를 연동해서 쓸 수 있도록 한 것입니다.
이것을 제작할 때 여러가지를 적용할려고 했으나.
J. Parker님의 Thumbnail List 방식이 가장 편하여 그 방법을 적용했습니다.
작동방법은 http://blog.lovebe.net/tt/category/Zeroaaa
처럼 주소가 오면..
체크하여 Zero로 시작하는 카테고리이면 먹어버리고 아니면 원문을 표시하는 것입니다.
자기가 먹은 것은 다시 aaa라는 뒤에 붙어 있는 값으로 게시판 종류를 알아와서..
관련된 게시판을 아이프레임으로 출력해줍니다.

2개의 플러그인 모두 배포할 때 어쩔 수 없이 index.php파일을 같이 배포했습니다.
패치하라고요.
그리고 저 같은 경우에는..
Zero Category와 Thumbnail List의 충돌 문제 때문에..
Thumbnail List의 index.php파일도 같이 배포했습니다.
충돌이 일어나지 않도록...

그런데 이 모든 문제점을 테터툴즈에서 자체적으로 지원해 줬으면 하는 것입니다.
지금 저 2개는 Category일 경우에 체크하는데 이런게 아니라..
플러인용 특정 폴더가 있어서(예로 plug 라고 했을 경우에..)
http://blog.lovebe.net/tt/plug/zero
라는 주소가 열리면...
제 플러그인이 작동을 하고..
아닐 경우에는 그냥 넘겨 주는 것입니다.
plug는 플러그인에서 사용하는 것이니 원문이 없을 것입니다.
그러니 플러그인에 원문을 출력하는 코드를 삽입하기 위해서 신경쓸 필요도 없으며...
다른 플러그인과의 충돌도 예방할 수 있을 것입니다.
마지막으로 플러그인을 배포할 때...
테터툴즈의 소스를 수정하거나 수정본을 같이 배포할 필요도 없을 것입니다.

적느라고 힘들었다..ㅠㅠ
제가 말 실력이 부족하여 죄송합니다..ㅠㅠ

Good Bye, 세상이여...
Bye Bye, 나의 인연이여..
그리고 마지막으로...
Thank you 모든이여...

6

답글: 플러그인 제작 관련하여..

생각해보니 Thumbnail List는 카테고리에서 작동해야 하는 것이군요..^^;;
그냥 설명이 그렇다는 것입니다..^^;;;;
http://blog.lovebe.net/tt/plug/code
에서 마지막 code(일종의 코드값)로 본인을 필요로 하는 플러그인일 경우 return에 필요한 값을 보내주고.
code값이 본인의 코드값과 일치 하지 않을 경우에는 return에 null 값을 넘겨 주는 방식입니다..^^;;
plug라는 것은 테터툴즈에서 사용하고 있는 폴더가 아니므로...
어떠한 플러그인에도 상관이 없는 코드값이 넘겨왔을 경우..
(모든 플러그인을 실행완료한 후에 return값이 null인 경우..)
테터툴즈에서 오류메시지를 자체적으로 출력해주면 될듯합니다.
물론 return값이 있을 경우에는 그 값을 출력해 주면 되구요..

Good Bye, 세상이여...
Bye Bye, 나의 인연이여..
그리고 마지막으로...
Thank you 모든이여...

7

답글: 플러그인 제작 관련하여..

환경설정에서 플러그인을 사용중/미사용 설정한 것과 상관 없이 플러그인에 직접 AJAX로 접근할 수 있도록 하자는 말씀이신지요?

8

답글: 플러그인 제작 관련하여..

지금 거의 대부분의 플러그인들이 사이드 메뉴등에 위치해 있습니다.
몇개의 플러그인들이 본문(그러니깐 작성한 글이 나오는 부분)에 표시되도록 되어 있습니다.
(http://blog.lovebe.net/plugin/plugin
로 접속을 해보시면 테터툴즈의 내용이 나오는 것이 아니라 그누보드 내용이 나옵니다.
그리고 양쪽으로는 테터툴즈 관련 메뉴가 나옵니다.
제가 말하는 것이 바로 이것입니다.)
본문에 특정 플러그인 내용이 나오도록 하게 할려면 소스 수정이 필요한 것으로 알고 있습니다.
그 기능을 이벤트 형식으로 지원해 주면 좋겠다는 말입니다.

나머지 사항은 그냥 그 이벤트를 지원해주는데 대한 개인적인 생각이니 신경쓰시지 마시구요.

Juno (2006-05-28 17:58:39)에 의해 마지막으로 수정

Good Bye, 세상이여...
Bye Bye, 나의 인연이여..
그리고 마지막으로...
Thank you 모든이여...

9

답글: 플러그인 제작 관련하여..

죄송합니다. 아직도 이해를 못 했습니다.:( 위로 설명을 꽤 많이 해주셨으니 이 글을 읽으신 다른 TnF 분께서 읽어보시고 의견을 반영해 주시리라 기대합니다. 이해를 못 해 반영을 못 해 드리다니... 이런 사태도 있군요... 수능 때도 언어 점수가 제일 낮았...;;

graphittie (2006-05-28 18:04:57)에 의해 마지막으로 수정

10

답글: 플러그인 제작 관련하여..

^^;;
제가 말 실력이 부족한가 봅니다..ㅠㅠ
http://nextblow.com/blog/bar_rss_list.php?pagenum=1
를 접속해 보시면..
분명히 테터툴즈 입니다.
그런데 신기한것은 테터툴즈 관련 메뉴가 없다는 것입니다.
그러니깐 테터툴즈 카테고리나 최신글 목록등이 전혀 없다는 것입니다.
저것은 bar_rss_list.php 파일로 작동을 하는 것입니다.
테터툴즈와는 완전히 별개라는 말입니다.
테터툴즈이면서도 테터툴즈가 아니게 되죠..^^;;;;;;;;;;;;;;;;;;;;;;;
그렇다면 위의 주소에서 사이드 메뉴(카테고리등)이 나오게 할려면 어떻께 해야 할까요?
그래도 블로그인데..
내 블로그인데 내 블로그와 관련된 메뉴가 사라진다는 것은 말도 안되는 말이니..
사이드 메뉴가 나와야 할 것이고..
그 사이드 메뉴가 있게 하고 싶다는 것입니다.
그렇다면 테터툴즈의 본문이 나오는 부분의 내용 대신에 저것과 관련된 내용을 나오게 하면 될 것입니다.
그렇다는 것은 테터툴즈 본문이 나오는 이벤트가 발생 했을 때 제 플러그인이 작동하여 본문 내용대신에 제 플러그인 내용이 출력 되면 될 것입니다.
문제는 여기서 생깁니다.
정말로 테터툴즈 본문이 나와야 되는 경우와..
제 플러그인의 내용이 나와야 하는 경우를 구분해야 합니다.
그 구분을 어떻께 하시겠습니까?
지금은 모든 사용자들이 어쩔 수 없이 특정 플러그인이 작동하도록 새로운 이벤트를 추가하고...
그런 이벤트가 추가 되었으니 다음 버젼에 적용해 달라고 여기에 글을 올리는 방법 밖에 없습니다.
그리고 그 이벤트가 적용되기 전까지는 어쩔 수 없이 사용자에게 일일이 소스를 수정하라고 말하는 방법밖에 없구요...
그것을 방지하자는 것입니다.

그러니깐..
http://blog.lovebe.net/tt/plug/code값
(여기 주소의 plug는 일종의 예입니다. 테터툴즈에 현재 plug라는 것은 없지요..^^ plugins는 있어도..)
처럼 값이 넘겨오면..
code값이 새로운 이벤트가 되어도 될 듯 하구요..
아니면 그냥 무조건 특정 이벤트를 발생시키는 것입니다.
그러면 플러그인에서 code값을 비교해서 실행되던지 말던지 플러그인에서 처리하면 될 것입니다.

다시 설명하면 사이드 메뉴나 상단 메뉴에..
http://blog.lovebe.net/tt/plug/rss
라는 주소로 링크를 걸어 둡니다.
그럼 특정 방문자가 그 링크를 클릭했을 때
어떤 특정한 이벤트를 발생시킵니다.
그러면 여러 플러그인이 그 이벤트에 반응을 하여 작동을 할 것입니다.
여기서 작동하는 플러그인이 3개 있다고 가정했을 때..

1번째 플러그인의 코드값이 zero라고 했을 때 틀리므로..
그냥 return null;시킵니다.

2번째 플러그인의 코드값이 rss라고 했을때 코드값이 같으므로..
자기자신을 실행시키고...
return $target;
처럼 값을 넘겨 줍니다.

3번째 플러그인은 이미 2번째 플러그인에서 넘어온 값이 있으므로 실행을 하지 않습니다.

그럼 마지막으로 테터툴즈에서
본문 내용에 2번째에서 넘어온 값을 출력해 주는 것입니다.

이런 식으로 테터툴즈 소스의 수정없이도 본문에 내용을 출력 할 수 있고..
플러그인과의 충돌도 방지하며...
플러그인을 제작하는 입장에서도 편하고..
그렇게 제작한 플러그인을 사용하는 입장에서도 편할 것입니다.
또한 테터툴즈가 업그레이드 됐을 때 관련 이벤트를 추가하느라고 또 다시 소스를 수정해야 하거나..
아니면 업그레이드를 안하는 그런 문제점이 생기지 않을 것입니다.

이렇께 설명했는데도 이해안되면..
OTL
머리 아프게 해서 죄송합니다.
그냥 신경쓰지 마세요..
그냥 제가 제작한 플러그인을 배포할때 마다 테터툴즈 소스 수정하라고 하죠 머..ㅠㅠ

Good Bye, 세상이여...
Bye Bye, 나의 인연이여..
그리고 마지막으로...
Thank you 모든이여...

11

답글: 플러그인 제작 관련하여..

제가 제대로 이해한 것인지는 잘 모르겠습니다만...;
Juno님께서 말씀하시는 것은 "특정 url을 호출했을 경우 특정 이벤트가 발생했으면 좋겠다"라고 생각하면 될까요?
그렇다면 그것은 이미 존재하고 있습니다. smile

blog/plugin/index.php 파일을 열어보시면 맨 아래쪽에 fireEvent($suri['directive'].'/'.$suri['value']); 라는 함수를 보실 수 있습니다.
따라서 http://.../plugin/Zero 라는 url을 호출할 경우 /plugin/Zero 라는 이벤트가 자동으로 발생합니다.

위에서 예제로 설명해주신 스킨 파서는 파일내에 포함되어 있지 않지만 그건 다른 파일에서 복사해서 플러그인에서 직접 처리해주시면 해결이 될거라 생각합니다.(플러그인이 좀 커지기야 하겠지만;; )

ps. 스킨 파서를 위의 파일에 삽입을 하는게 나을까요?

12

답글: 플러그인 제작 관련하여..

샘플1 -> http://www.create74.com/plugin/bbs
샘플2 -> http://www.create74.com/plugin/rss
Peris님 말씀처럼 스킨파서가 포함되어있지 않아 위 주소와 같은 형태에서
사용스킨과 함께 뿌려주는것은 무리일것 같습니다.
Juno님께서 원하시는 방향을로 나아가야 한다면 plugin/index.php내에서두 스킨파서를
삽입해야할것입니다.
(제로보드처럼 top/bottom의 파일을 별도 복사저장한뒤 끌어다 쓰는 방법을 쓰는것도... 번거롭겠지만...)

http://nextblow.com/blog/bar_rss_list.php?pagenum=1
해당 주소는 별도의 'bar_rss_list.php'파일을 태터스킨을 수작업으로 적용하여 제작한것 같습니다.

ps. 저도 제대로 이해한것인지 모르겠습니다.:|

당신의 삶속에 매화꽃 향기처럼 늘 아름다운 향기로 가득하길...
# J.Parker