commit 0c461a79ace51c88a9d1aa8b68a1adc5407b84ed Author: Arcturus Date: Tue Oct 15 14:28:22 2024 +0900 init diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..f47a939 --- /dev/null +++ b/readme.md @@ -0,0 +1,3 @@ +## 샘플 애드온입니다. + +애드온을 작성하는 기본적인 방법이 기술되어 있습니다. diff --git a/sample.addon.php b/sample.addon.php new file mode 100644 index 0000000..1e53741 --- /dev/null +++ b/sample.addon.php @@ -0,0 +1,105 @@ + TestSampleAddon + * @author amber (https://info.drk.st/about) + */ +class SampleAddon extends Addon +{ + public $name = "sample addon"; + public $description = "샘플 애드온입니다."; + public $author = "Amber"; + public $link = "https://info.drk.st/about"; + public $version = "1.0.0"; + + /** + * Addon Loader 에서 자동으로 설정되는 값입니다. + * @var string $className + */ + public $className; + /** + * Addon Loader 에서 자동으로 설정되는 값입니다. + * @var string $addonPath + */ + public $addonPath; + /** + * Addon Loader 에서 자동으로 설정되는 값입니다. + * @var string $addonFile + */ + public $addonFile; + + /** + * 애드온 생성자입니다. + * @return void + */ + public function __construct() + { + + } + + /** + * 애드온 동작을 이곳에 구현합니다. 현재는 $data 에 아무 값도 할당되지 않습니다. + * 필요한 경우 global $g5; 등을 통해 글로벌 변수를 가져와야 합니다. + * @param mixed $data + * @return void + */ + public function init($data = []) + { + + } + + /** + * 설정 페이지를 출력하는 함수입니다. + * @return void + */ + public function printConfigForm() + { + $config = $this->getConfig(); + echo '
+ + + + + + + + + + + +
+ 애드온 기능 활성화 + + +
+
'; + } + + public function saveAction($data = []) + { + // 이미지 업로드 등 입력 후처리가 필요한 경우에 사용합니다. + // $data 에는 입력값 ($_POST) 가 전달됩니다. + /* + if (!empty($data)) { + // ... 이미지 업로드 처리 예시 ... + $extension = emplode(".", $_FILES['input_name']['name']); + $extension = $extension[-1]; + // ... 이미지 업로드 처리 예시 ... + } + */ + } + + public function getConfig() + { + global $g5; + + $sql = "SELECT addon_config FROM {$g5['addons_config_table']} WHERE addon_name = '{$this->className}'"; + $result = sql_fetch($sql); + + if ($result && isset($result['addon_config'])) { + return json_decode($result['addon_config'], true) ?: []; + } + + return []; + } +}