1

주제: Hello World~

-_-; 안녕하세요. 플러그인 만들어 보려고 첫걸음 내 딛은 사람입니다.
PHP로 이것저것 만들어는 봤지만, 남의 프로그램에 보조로 붙는 스킨이나 플러그인은 처음 해보려는 거라 헤깔리네요.

그래서 처음에 스킨의 치환자 위치에 글자 출력하는 걸 만들어봤는데...(누구나 첫걸음에 시작하는 Hello World;;)
그것마저 안되는 겁니다.;;;
플러그인은 인식해서 사용중으로 바꿀수 있는데, index.php 부분이 전혀 실행이 안되네요.

혹시 이게 왜 안되는것인지, 지적해주시면 감사드리겠습니다.

소스코드

index.xml===========
<?xml version="1.0" encoding="utf-8"?>
<plugin version="1.0">
  <title>Draco Test</title>
  <version>1.0</version>
  <description>플러그인 사용이 잘 되나 테스트!!!.</description>
  <license>Draco</license>
  <link>http://draco.pe.kr</link>
  <author link="http://draco.pe.kr">Draco</author>
  <safety changeData="no" exposeData="no" accessLocal="no" accessRemote="no" accessRaw="no" />
  <requirements>
    <tattertools>1.0.3</tattertools>
  </requirements>
  <binding>
    <tag name="DracoTest" handler="ShowDracoTest" />
  </binding>
</plugin>


index.php==============
<?
function ShowDracoTest() {
    $target = "Hello World!";
    return $target;
}
?>

Draco (2006-10-10 22:02:27)에 의해 마지막으로 수정

2

답글: Hello World~

ShowDracoTest 함수에 $target, $mother 인자를 주셔야 하지 않을까요?
그리고 tag의 name이 실제로 존재하는 스킨 이벤트인지 확인을 해보셔야 하지 않을까 합니다.

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

3

답글: Hello World~

답변 감사합니다.

그런데... <tag name= 방식은 기본으로 있던 TattertoolsBirthday 플러그인의 index.xml 에 사용하고 있던걸요.

http://forum.tattertools.com/ko/viewtopic.php?id=1301
여기에 Peris님의 리플중 치환을 위해 설명하신 부분에도 있고....

Draco (2006-10-10 23:53:06)에 의해 마지막으로 수정

4

답글: Hello World~

skin.html에 [##_DracoTest_##]이 있나 확인정도?

5

답글: Hello World~

스킨에 치환자는 정확하게 들어가 있는데...안되네요.;;

6

답글: Hello World~

우선 위의 소스대로 만들어서 실행해 보니 잘 됩니다.

한가지 가능성은.. index.php를 저장하실때 UTF-8 with BOM으로 하신게 아닌가 하는 추측을.
BOM이 들어가 있는 경우 PHP가 거부합니다. 편집기의 저장옵션에서 UTF-8 혹은 UTF-8 without BOM을 선택해 보세요.

7

답글: Hello World~

원인을 찾았습니다.
제가 사용했던 다른 플러그인과 충돌을 했군요.
혹시나 해서 다른 모든 플러그인을 끄니 정상적으로 출력이 되길래 하나씩 검토해봤더니 -_-;

플러그인끼리 영향을 주기도 하나 봅니다.
다소 어이가 없네요^^;

답변해주신 분들 감사드립니다.

8

답글: Hello World~

http://forum.tattertools.com/ko/viewtopic.php?id=1301
이 글에 아래와 같은 부분이 있죠.

또, 두가지의 경우 모두 $target을 받아서 반드시 return을 해주셔야 합니다.
이 것은 같은 이벤트나 치환자를 사용하는 다른 플러그인들에서도 충돌이 없이 작동을 하기 위해서인데 위의 코드를 보시면 이해가 가실겁니다.