From 02dd06a661bd7917af3f734aa9125fb5eec51e0c Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 15 Jul 2008 04:27:07 +0000 Subject: [PATCH] =?UTF-8?q?#492=20addon=EB=AA=A8=EB=93=88=20=EC=83=88=20XM?= =?UTF-8?q?L=20=ED=8F=AC=EB=A7=B7=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4358 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/addon/addon.admin.model.php | 92 ++++++++++++++++++++++------- modules/addon/lang/en.lang.php | 1 + modules/addon/lang/es.lang.php | 1 + modules/addon/lang/fr.lang.php | 1 + modules/addon/lang/jp.lang.php | 1 + modules/addon/lang/ko.lang.php | 7 ++- modules/addon/lang/ru.lang.php | 1 + modules/addon/lang/zh-CN.lang.php | 1 + modules/addon/tpl/addon_info.html | 56 ++++++++++++++++-- modules/addon/tpl/addon_list.html | 10 +++- modules/addon/tpl/setup_addon.html | 12 ++-- modules/admin/tpl/css/admin.css | 7 ++- 12 files changed, 153 insertions(+), 37 deletions(-) diff --git a/modules/addon/addon.admin.model.php b/modules/addon/addon.admin.model.php index 760c1c071..99d695e17 100644 --- a/modules/addon/addon.admin.model.php +++ b/modules/addon/addon.admin.model.php @@ -84,30 +84,82 @@ if(!$xml_obj) return; - $info->title = $xml_obj->title->body; - // 작성자 정보 - $addon_info->addon_name = $addon; - $addon_info->title = $xml_obj->title->body; - $addon_info->version = $xml_obj->attrs->version; - $addon_info->author->name = $xml_obj->author->name->body; - $addon_info->author->email_address = $xml_obj->author->attrs->email_address; - $addon_info->author->homepage = $xml_obj->author->attrs->link; - $addon_info->author->date = $xml_obj->author->attrs->date; - $addon_info->author->description = trim($xml_obj->author->description->body); + // 애드온 정보 + if($xml_obj->version && $xml_obj->attrs->version == '0.2') { + // addon format 0.2 + $addon_info->title = $xml_obj->title->body; + $addon_info->description = trim($xml_obj->description->body); + $addon_info->version = $xml_obj->version->body; + $addon_info->homepage = $xml_obj->link->body; + sscanf($xml_obj->date->body, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d); + $addon_info->date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + $addon_info->license = $xml_obj->license->body; + $addon_info->license_link = $xml_obj->license->attrs->link; + + if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author; + else $author_list = $xml_obj->author; + + foreach($author_list as $author) { + unset($author_obj); + $author_obj->name = $author->name->body; + $author_obj->email_address = $author->attrs->email_address; + $author_obj->homepage = $author->attrs->link; + $addon_info->author[] = $author_obj; + } + + } else { + // addon format 0.1 + $addon_info->addon_name = $addon; + $addon_info->title = $xml_obj->title->body; + $addon_info->description = trim($xml_obj->author->description->body); + $addon_info->version = $xml_obj->attrs->version; + sscanf($xml_obj->author->attrs->date, '%d. %d. %d', $date_obj->y, $date_obj->m, $date_obj->d); + $addon_info->date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d); + $author_obj->name = $xml_obj->author->name->body; + $author_obj->email_address = $xml_obj->author->attrs->email_address; + $author_obj->homepage = $xml_obj->author->attrs->link; + $addon_info->author[] = $author_obj; + + } // history - if(!is_array($xml_obj->history->author)) $history[] = $xml_obj->history->author; - else $history = $xml_obj->history->author; + if($xml_obj->history) { + if(!is_array($xml_obj->history)) $history[] = $xml_obj->history; + else $history = $xml_obj->history; - foreach($history as $item) { - unset($obj); - $obj->name = $item->name->body; - $obj->email_address = $item->attrs->email_address; - $obj->homepage = $item->attrs->link; - $obj->date = $item->attrs->date; - $obj->description = $item->description->body; - $addon_info->history[] = $obj; + foreach($history as $item) { + unset($obj); + + if($item->author) { + (!is_array($item->author)) ? $obj->author_list[] = $item->author : $obj->author_list = $item->author; + + foreach($obj->author_list as $author) { + unset($author_obj); + $author_obj->name = $author->name->body; + $author_obj->email_address = $author->attrs->email_address; + $author_obj->homepage = $author->attrs->link; + $obj->author[] = $author_obj; + } + } + + $obj->name = $item->name->body; + $obj->email_address = $item->attrs->email_address; + $obj->homepage = $item->attrs->link; + $obj->version = $item->attrs->version; + $obj->date = $item->attrs->date; + $obj->description = $item->description->body; + + if($item->log) { + (!is_array($item->log)) ? $obj->log[] = $item->log : $obj->log = $item->log; + + foreach($obj->log as $log) { + $obj->logs[] = $log->body; + } + } + + $addon_info->history[] = $obj; + } } // DB에 설정된 내역을 가져온다 diff --git a/modules/addon/lang/en.lang.php b/modules/addon/lang/en.lang.php index 10cb2ab68..4029e1bcc 100644 --- a/modules/addon/lang/en.lang.php +++ b/modules/addon/lang/en.lang.php @@ -9,6 +9,7 @@ $lang->addon_info = 'Summary of this Addon'; $lang->addon_maker = 'Author of this Addon'; + $lang->addon_license = 'License'; $lang->addon_history = 'Addon History'; $lang->about_addon_mid = "Addons can select targets.
(All targets will be selected when nothing is selected)"; diff --git a/modules/addon/lang/es.lang.php b/modules/addon/lang/es.lang.php index b814f6398..ffa27627f 100644 --- a/modules/addon/lang/es.lang.php +++ b/modules/addon/lang/es.lang.php @@ -9,6 +9,7 @@ $lang->addon_info = 'Información de Addon'; $lang->addon_maker = 'Autor de Addon'; + $lang->addon_license = 'License'; $lang->addon_history = 'Historia de Addon '; $lang->about_addon_mid = "애드온이 사용될 대상을 지정할 수 있습니다.
(모두 해제시 모든 대상에서 사용 가능합니다)"; diff --git a/modules/addon/lang/fr.lang.php b/modules/addon/lang/fr.lang.php index 148b4a59d..7feae3b77 100644 --- a/modules/addon/lang/fr.lang.php +++ b/modules/addon/lang/fr.lang.php @@ -9,6 +9,7 @@ $lang->addon_info = 'Le résumé de la Compagnon'; $lang->addon_maker = 'L\'Auteur de la Compagnon'; + $lang->addon_license = 'License'; $lang->addon_history = 'L\'Histoire de la Compagnon'; $lang->about_addon_mid = "On peut choisir des objets dans lesquels la Compagnon soit utilisé.
(Tout sera choisi quand rien n'est choisi.)"; diff --git a/modules/addon/lang/jp.lang.php b/modules/addon/lang/jp.lang.php index 081305285..1cd5e1719 100644 --- a/modules/addon/lang/jp.lang.php +++ b/modules/addon/lang/jp.lang.php @@ -9,6 +9,7 @@ $lang->addon_info = 'アドオン情報'; $lang->addon_maker = 'アドオン作者'; + $lang->addon_license = 'License'; $lang->addon_history = '変更内容'; $lang->about_addon_mid = "애드온이 사용될 대상을 지정할 수 있습니다.
(모두 해제시 모든 대상에서 사용 가능합니다)"; diff --git a/modules/addon/lang/ko.lang.php b/modules/addon/lang/ko.lang.php index 5ec6e43f1..0b471e5fa 100644 --- a/modules/addon/lang/ko.lang.php +++ b/modules/addon/lang/ko.lang.php @@ -2,14 +2,15 @@ /** * @file ko.lang.php * @author zero (zero@nzeo.com) - * @brief 한국어 언어팩 + * @brief 한국어 언어팩 **/ - $lang->addon = "애드온"; + $lang->addon = '애드온'; $lang->addon_info = '애드온정보'; $lang->addon_maker = '애드온 제작자'; - $lang->addon_history = '변경 사항 '; + $lang->addon_license = '라이센스'; + $lang->addon_history = '변경 이력'; $lang->about_addon_mid = "애드온이 사용될 대상을 지정할 수 있습니다.
(모두 해제시 모든 대상에서 사용 가능합니다)"; $lang->about_addon = '애드온은 html결과물을 출력하기 보다 동작을 제어하는 역할을 합니다.
원하시는 애드온을 on/ off하시는 것만으로 사이트 운영에 유용한 기능을 연동할 수 있습니다.'; diff --git a/modules/addon/lang/ru.lang.php b/modules/addon/lang/ru.lang.php index c87c767b7..8c1c02f78 100644 --- a/modules/addon/lang/ru.lang.php +++ b/modules/addon/lang/ru.lang.php @@ -9,6 +9,7 @@ $lang->addon_info = 'Информация об аддоне'; $lang->addon_maker = 'Автор аддона'; + $lang->addon_license = 'License'; $lang->addon_history = 'История аддона'; $lang->about_addon_mid = "애드온이 사용될 대상을 지정할 수 있습니다.
(모두 해제시 모든 대상에서 사용 가능합니다)"; diff --git a/modules/addon/lang/zh-CN.lang.php b/modules/addon/lang/zh-CN.lang.php index acd4f2a73..f7f6fc7d5 100644 --- a/modules/addon/lang/zh-CN.lang.php +++ b/modules/addon/lang/zh-CN.lang.php @@ -9,6 +9,7 @@ $lang->addon_info = '插件信息'; $lang->addon_maker = '插件作者'; + $lang->addon_license = 'License'; $lang->addon_history = '更新纪录 '; $lang->about_addon_mid = "可以指定使用插件的对象。
(全部解除表示可用在所有对象。)"; diff --git a/modules/addon/tpl/addon_info.html b/modules/addon/tpl/addon_info.html index ac66289d9..d4553c6a7 100644 --- a/modules/addon/tpl/addon_info.html +++ b/modules/addon/tpl/addon_info.html @@ -13,24 +13,72 @@ {$lang->author} - {$addon_info->author->name} + + + {$author->name} ({$author->homepage}, {$author->email_address})
+ + {$lang->homepage} - {$addon_info->author->homepage} + {$addon_info->homepage} {$lang->regdate} - {$addon_info->author->date} + {zdate($addon_info->date, 'Y-m-d')} + + + {$lang->addon_license} + + {nl2br(trim($addon_info->license))} + +

{$addon_info->license_link}

+ + {$lang->description} - {nl2br(trim($addon_info->author->description))} + {nl2br(trim($addon_info->description))} + +
+

{$lang->addon_history}

+
+ +
+ + + + + + + + + + +
+ {$history->version}
+ {$history->date} +
+ +

{$author->name} ({$author->homepage} / {$author->email_address})

+ + +

{nl2br(trim($history->description))}

+ + +
    +
  • {$log}
  • +
+ +
+
+ +
{$lang->cmd_close}
diff --git a/modules/addon/tpl/addon_list.html b/modules/addon/tpl/addon_list.html index 92915285f..409a26a50 100644 --- a/modules/addon/tpl/addon_list.html +++ b/modules/addon/tpl/addon_list.html @@ -50,8 +50,12 @@ ({$val->addon}) {$val->version} - {$val->author->name} - {$val->author->date} + + + {$author->name} + + + {zdate($val->date, 'Y-m-d')} {$val->path} {$lang->cmd_setup} @@ -64,7 +68,7 @@ - {nl2br($val->author->description)} + {nl2br($val->description)} diff --git a/modules/addon/tpl/setup_addon.html b/modules/addon/tpl/setup_addon.html index af0c7f410..cb9b8eb95 100644 --- a/modules/addon/tpl/setup_addon.html +++ b/modules/addon/tpl/setup_addon.html @@ -15,15 +15,19 @@ - {$addon_info->title} ver. {$addon_info->version} + {$addon_info->title} ver. {$addon_info->version} ({zdate($addon_info->date, 'Y-m-d')}) - - {$addon_info->author->name} + {$lang->author} + + + {$author->name} ({$author->homepage}, {$author->email_address})
+ + - {$addon_info->author->homepage} + {$addon_info->homepage} diff --git a/modules/admin/tpl/css/admin.css b/modules/admin/tpl/css/admin.css index bc70ad913..8b97208d4 100644 --- a/modules/admin/tpl/css/admin.css +++ b/modules/admin/tpl/css/admin.css @@ -125,9 +125,10 @@ h4 .view { color:#158692; padding-right:.6em; font:bold .9em Tahoma; background: .buttonTypeGo { border:none; cursor:pointer; width:24px; height:20px; position:relative; top:-1px; font:.75em Tahoma; text-align:center; background:url(../images/buttonTypeInput24.gif) no-repeat; } -#popHeadder { height:40px; background:url(../images/popupTopBg.png) repeat-x left top; padding:10px;} -#popHeadder h1 { background:url("../images/top_head_title_bg.gif") repeat-x left top; font-size:1em; border:1px solid #E3E3E2; padding:9px; color:#555555; margin:0; } -#popBody { width:600px; padding:10px; background:#ffffff;} +#popHeadder, #popHistoryHeadder { height:40px; background:url(../images/popupTopBg.png) repeat-x left top; padding:10px;} +#popHeadder h1, #popHistoryHeadder h1 { background:url("../images/top_head_title_bg.gif") repeat-x left top; font-size:1em; border:1px solid #E3E3E2; padding:9px; color:#555555; margin:0; } +#popBody, #popHistoryBody { width:600px; padding:10px; background:#ffffff;} +#popHistoryBody { height: 200px; overflow: auto; padding-right:0; } #popFooter { width:620px; background:#f7f7f6; border-top:1px solid #e8e8e7; padding:.5em 0 .5em 0; overflow:hidden; } #popFooter .close { position:relative; left:50%; margin-left:-1em; float:left;}