Programming/WEB┃2007년 04월 08일 13시 15분
먼저 이 글을 작성 하기전에 PHP와 MySQL을 기본적인 지식은 있다는 가정하에 작성 하겠습니다. 고수분들은 우스운 이야기겠지만 제가 못찾아서 그런지 기본적인 자료조차 없더군요.
자 이제 부터 시작하겠습니다. 플러그인에 필요한 기본적인 파일은 두개입니다.
index.xml과 index.php 이 두개의 파일로 기본적으로 만들 수 있습니다.
먼저 index.xml을 먼저 보겠습니다.
1라인은 이 파일은 xml 포맷이고 UTF-8로 작동 한다는 표시입니다. UTF-8일 시에는 반드시 저장을 UTF-8로 하되 BOM이 없는 것으로 저장 하시면 됩니다. BOM이 있으면 브라우져는 UTF-8로 인식을 못합니다.
2번 라인부터 12번 라인까지는 설정 화면입니다. 설명 및 라이센스 정보 제작자 정보등을 알려 주지요
13번 라인을 보시면 binding 부분이 있습니다. 이부분은 index.php에 정의되어 있는 이벤트 핸들 함수와 실제 테터에서 발생하는 이벤트에 대해서 mapping 시켜 주신다고 보시면 됩니다. 이벤트와 맵핑 되는 함수 설정은 <listener> 부분입니다. 여기서는 포스트가 보일때<ViewPostContent>이벤트이고 AddPost 이벤트는 포스트를 등록할때 AddComment는 커멘트가 등록 될때 발생 되는 이벤트입니다. 이 이벤트들이 발생할때 fn_으로 시작하는 함수를 실행 시키겠다는 거지요.(이벤트 정의는 포럼
에 있습니다.) 여기에는 존재 하지 않지만 <tag>를 언급 하자면 <listener>에 정의된 함수에서 치환자를 대신 하여 출력 해주지만 이벤트 없이 항상 치환자 대신 보여 줄때는 <tag>를 써서 함수를 정의 하고 치화자명을 정해 주면 치환자가 화면에 나올시 바로 정의된 함수를 실행하게 됩니다.
그리고 17번째 라인에 <Config>는 등록해도 되고 안해도 되는데 이 <Config>필드는 플러그인 실행 했을때 설정화면을 정의 하는 함수를 나타내는 것입니다.
18번째 라인부터 23번째 라인까지 설정 화면에 어떻게 보여 줄건지 그리고 설정된 변수명을 어떻게 지정할 건지 타입을 어떻게 지정할 건지를 알려 주는겁니다.
그리고 최근 버전에 추가된것으로 알고 있는데요 <storage>부분입니다. 사용자가 임의 테이블을 생성 할때 <storage>세션에 등록된 테이블 형식으로 자동으로 생성 됩니다. 필드타입까지 정의 가능합니다. 주의 할것은 이렇게 하면 내가 정의 하지 않은 owner 필드가 프라이머리 키로 생성 됩니다. 아마 팀 블러깅때문에 자동으로 넣었는 것 같습니다.
자 index.xml을 간단히 설명 했습니다. 이제 index.php를 보겠습니다.
앞에 index.xml에서 <listener>에서 정의된 함수들을 정의 해놓은것을 보실 수 있을 겁니다.
이 코드는 Entries 테이블(이 테이블은 포스팅 내용을 담고 있는 테이블입니다.) 참조 하여 제가 만든 EntriesCode 테이블에 카운팅을 하는 것입니다.
자 그런데 테터툴즈와 내가 세팅 한 것을 어떻게 연동 하느냐가 관건입니다. 테터에서 제공 하는 함수 몇개를 보겠습니다.(사실 저도 한참 모릅니다.)
설정 부분을 보시면 이렇게 함수를 통해서 테터툴즈의 펑션을 사용 할 수 있습니다. misc를 통해서 설정값을 저장 할 수 있습니다. 그럼 <tag>와 틀리 이벤트 함수들은 어떻게 치환자로 디스플레이 해줄 것이냐... 다음 코드를 보시면 답이 있습니다.
자 코드를 보시면 간단하게 주석 처리 하였습니다. 자 그럼 글로벌 변수는 어디에 정의 되느냐? 이것 또한 포럼
에 정의 되어 있습니다. 그리고 이벤트 함수 에는 항상 return을 $target으로 해주어야 합니다. 자 지금까지 알고 있는것을 말씀 드렸구요. 한가지 더 주의 사항을 한다면 변수명이나 함수명을 만들때 자기의 이니셜을 포함 시키던가 하여 다른 플러그인과 중복 정의 되게 하지 마시기 바랍니다. 플러그인 사이에 충돌이 발생합니다.
그냥 간단하게 공지 같은것을 포스트 제일 하단부에나 제일 상단부분에 넣을 수 있겠지요? 음 추후 한번 만들어 봐야겠습니다 ^^*(음 갑자기 생각났는데 괜찬겠네요 ㅎㅎㅎ, 뭐 랜덤명언 출력 하는 방식으로 말이죠 ^^*)
아 그리고 반드시 UTF-8일때는 xml과 동일 하게 저장 하셔야 합니다.
일단 지금까지 제가 간단히 그동안 플러그인 만들면서 공부한 지식의 전부입니다. 아직 저도 PHP는 초보이고(전 그간 C/S개발자로 C만 사용했습니다.) 해서 많은 것을 알지는 모르지만 앞으로 하나씩 알때 마다 추가 포스팅 하겠습니다.
자 이제 부터 시작하겠습니다. 플러그인에 필요한 기본적인 파일은 두개입니다.
index.xml과 index.php 이 두개의 파일로 기본적으로 만들 수 있습니다.
먼저 index.xml을 먼저 보겠습니다.
1라인은 이 파일은 xml 포맷이고 UTF-8로 작동 한다는 표시입니다. UTF-8일 시에는 반드시 저장을 UTF-8로 하되 BOM이 없는 것으로 저장 하시면 됩니다. BOM이 있으면 브라우져는 UTF-8로 인식을 못합니다.
2번 라인부터 12번 라인까지는 설정 화면입니다. 설명 및 라이센스 정보 제작자 정보등을 알려 주지요
13번 라인을 보시면 binding 부분이 있습니다. 이부분은 index.php에 정의되어 있는 이벤트 핸들 함수와 실제 테터에서 발생하는 이벤트에 대해서 mapping 시켜 주신다고 보시면 됩니다. 이벤트와 맵핑 되는 함수 설정은 <listener> 부분입니다. 여기서는 포스트가 보일때<ViewPostContent>이벤트이고 AddPost 이벤트는 포스트를 등록할때 AddComment는 커멘트가 등록 될때 발생 되는 이벤트입니다. 이 이벤트들이 발생할때 fn_으로 시작하는 함수를 실행 시키겠다는 거지요.(이벤트 정의는 포럼
에 있습니다.) 여기에는 존재 하지 않지만 <tag>를 언급 하자면 <listener>에 정의된 함수에서 치환자를 대신 하여 출력 해주지만 이벤트 없이 항상 치환자 대신 보여 줄때는 <tag>를 써서 함수를 정의 하고 치화자명을 정해 주면 치환자가 화면에 나올시 바로 정의된 함수를 실행하게 됩니다.그리고 17번째 라인에 <Config>는 등록해도 되고 안해도 되는데 이 <Config>필드는 플러그인 실행 했을때 설정화면을 정의 하는 함수를 나타내는 것입니다.
18번째 라인부터 23번째 라인까지 설정 화면에 어떻게 보여 줄건지 그리고 설정된 변수명을 어떻게 지정할 건지 타입을 어떻게 지정할 건지를 알려 주는겁니다.
그리고 최근 버전에 추가된것으로 알고 있는데요 <storage>부분입니다. 사용자가 임의 테이블을 생성 할때 <storage>세션에 등록된 테이블 형식으로 자동으로 생성 됩니다. 필드타입까지 정의 가능합니다. 주의 할것은 이렇게 하면 내가 정의 하지 않은 owner 필드가 프라이머리 키로 생성 됩니다. 아마 팀 블러깅때문에 자동으로 넣었는 것 같습니다.
자 index.xml을 간단히 설명 했습니다. 이제 index.php를 보겠습니다.
앞에 index.xml에서 <listener>에서 정의된 함수들을 정의 해놓은것을 보실 수 있을 겁니다.
이 코드는 Entries 테이블(이 테이블은 포스팅 내용을 담고 있는 테이블입니다.) 참조 하여 제가 만든 EntriesCode 테이블에 카운팅을 하는 것입니다.
자 그런데 테터툴즈와 내가 세팅 한 것을 어떻게 연동 하느냐가 관건입니다. 테터에서 제공 하는 함수 몇개를 보겠습니다.(사실 저도 한참 모릅니다.)
설정 부분을 보시면 이렇게 함수를 통해서 테터툴즈의 펑션을 사용 할 수 있습니다. misc를 통해서 설정값을 저장 할 수 있습니다. 그럼 <tag>와 틀리 이벤트 함수들은 어떻게 치환자로 디스플레이 해줄 것이냐... 다음 코드를 보시면 답이 있습니다.
자 코드를 보시면 간단하게 주석 처리 하였습니다. 자 그럼 글로벌 변수는 어디에 정의 되느냐? 이것 또한 포럼
에 정의 되어 있습니다. 그리고 이벤트 함수 에는 항상 return을 $target으로 해주어야 합니다. 자 지금까지 알고 있는것을 말씀 드렸구요. 한가지 더 주의 사항을 한다면 변수명이나 함수명을 만들때 자기의 이니셜을 포함 시키던가 하여 다른 플러그인과 중복 정의 되게 하지 마시기 바랍니다. 플러그인 사이에 충돌이 발생합니다.그냥 간단하게 공지 같은것을 포스트 제일 하단부에나 제일 상단부분에 넣을 수 있겠지요? 음 추후 한번 만들어 봐야겠습니다 ^^*(음 갑자기 생각났는데 괜찬겠네요 ㅎㅎㅎ, 뭐 랜덤명언 출력 하는 방식으로 말이죠 ^^*)
아 그리고 반드시 UTF-8일때는 xml과 동일 하게 저장 하셔야 합니다.
일단 지금까지 제가 간단히 그동안 플러그인 만들면서 공부한 지식의 전부입니다. 아직 저도 PHP는 초보이고(전 그간 C/S개발자로 C만 사용했습니다.) 해서 많은 것을 알지는 모르지만 앞으로 하나씩 알때 마다 추가 포스팅 하겠습니다.

┃http://www.withdev.com/trackback/152
-
daewonyoon┃2007년 04월 06일 23시 03분 소스의 압박(xml, php, mysql이라니!) 때문에 읽기는 어려웠지만, 멋져요.-
낚시광준초리┃2007년 04월 08일 13시 14분 나도 아직 암것두 몰라 ㅎㅎㅎㅎ
-
-
아르┃2007년 04월 07일 03시 42분 이올린에서 타이틀만 보고 클릭해서 읽다가 '아 괜찮은 가이드다'
하고 -_-; 다음에 다시 와서 또 봐야겠다 싶어서 즐겨찾기 추가했더니
'낚시광준초리의 Blog 세상' 이 뜨길래 잠시 당황(...)-
낚시광준초리┃2007년 04월 08일 13시 14분 아르님만 연속해서 흑.... 제 주소를 무시하는 흑흑 ㅠ.ㅜ
-
-
=_=;┃2007년 04월 07일 08시 44분 한글을 좀 제대로 써주시면 안되겠습니까. '테'터툴즈라고 하다 못해 이젠 테트툴즈입니까. '태터툴즈'라고 똑바로 써주세요. 어떻게 읽어도 상관없는거 아니냐고 하신다면, 낚시광준초리가 아니라 낚시에미친줜차리 라고 불러도 상관없는거죠?-
낚시광준초리┃2007년 04월 08일 13시 13분 음음.. 원래 제가 좀 오타쟁이입니다.. 오타체크해주는건 감사합니다만.. 익명이라는게 못내 아쉽네요.. -
아르┃2007년 04월 09일 08시 56분 이런 어린애들 댓글에 그렇게 진지하게 답변하실 필욘 없지요...; 함부로 남의 닉네임 가지고 장난치면서 되도 않는 헛소리를 하며 욕을 하다니... ''; 저렇게 계속 설치다가 언젠간 된통 한 방 맞고 정신차리겠지요. -
낚시광준초리┃2007년 04월 09일 09시 04분 아르님 흥분 하지 마세요 ㅎㅎㅎㅎㅎ 열내시면 건강에 안좋아요 ^^* 제가 알아서 할께요 ㅎㅎㅎㅎ -
민서대디┃2007년 04월 09일 10시 14분 까칠한 질문에 진지한 대답이네요..^^
그나저나 PHP는 언제봐도 적응하기 힘든 소스네요.
그나마 화면표현은 xml로 빠져서 그렇지 일반 Tag들과 뒤섞인 소스를 보면, 그냥 도망가고 싶어진다는...^^ -
낚시광준초리┃2007년 04월 09일 10시 19분 그렇죠? 그런데 인덴트만 잘주면 뭐......나름 이해하기 편하다는.. C함수들과 대부분 비슷해서 ㅎㅎㅎㅎ 그래도 이런 함수 있을까 하고 c랑 비슷한 함수 찾아보면 대략 있다는 ㅎㅎㅎㅎㅎ -
brainchaos┃2007년 04월 10일 12시 57분 이거 찔린다.
내 글에도 완전 오타 투성인데.
한글을 사랑하시는 분~~이신가보네요.
광초리님. 근데 php는 잘 몰라서 눈이 휘둥글합니다. -
낚시광준초리┃2007년 04월 10일 15시 55분 ㅋㅋㅋ brainchaos님 광초리라 부르니 데게 이상한데요 ㅎㅎㅎㅎ -
brainchaos┃2007년 04월 10일 17시 58분 그것보세요..
전 오타쟁이입니다. 이런 실수를 또하고 말았군요.
준초리님. 맞지요?
휴~~
죄송합니다. -
낚시광준초리┃2007년 04월 10일 18시 03분 저도 무진장 오타쟁이예요ㅕ ㅋㅋㅋㅋ 그래서 낙장불입인 me2day가 겁납니다..
-
-
건이아빠┃2007년 04월 09일 01시 48분 직접 플러그인 개발 문서를 작성해버리셨군요 ^^
아무것도 안하는 제가 왈가불가할 입장은 아니지만
예제가 "입문자용" 치고는 너무 어려운것 같애요;;
레퍼런스를 만드는데는 독자의 레벨 결정이 제일 어렵긴 하겠지만, 아~주 간단한 것부터 시작하는게 좋을것 같아요 ^^
혹시 스프링노트 사용하시면 거기서 플러그인 제작 매뉴얼을 공동 작업해도 괜찮을것 같네요 ^^
언제나 화이팅 하세요 !!-
낚시광준초리┃2007년 04월 09일 08시 55분 저도 참 애매했어요 그렇다고 잘 모르는 PHP와 MySQL을 같이 언급하자니 두서 없이 길어 질것 같고 그래서 초기에 언급했듯이 PHP와 MySQL을 기본적으로 아는 분에 한해서 이해 할 수 있을거라고 했구요.. 여기 입문자용은 플러그인을 처음 만들때 저처럼 해매지 말라고 간단하게 언급 하셨다고 생각하시면 되요 ^^*
-
-
brainchaos┃2007년 04월 10일 12시 55분 ultraedit가 간혹 BOM 이넘을 UTF-8저장에서 포함 시켜서 난감했던적이 많습니다. 그뒤로는 에디터는 editplus를 쓴답니다.
eclipse역시 한글이 껄끄러워서요. (저만 그런지 몰라도.. ^^
-
낚시광준초리┃2007년 04월 10일 15시 53분 전 울타라에디트 쓰는데.. 전 BOM아님을 하지요 ㅎㅎㅎㅎ
-


