* widget모듈 새 XML 포맷 처리 코드 추가
    * info.xml 파일들 새 포맷으로 변경 

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4390 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
bnu 2008-07-20 02:17:06 +00:00
parent fc876f9d73
commit ef014baa03
34 changed files with 2401 additions and 2115 deletions

View file

@ -77,20 +77,80 @@
$buff = '';
// 위젯의 제목, 버전
$buff .= sprintf('$widget_info->widget = "%s";', $widget);
$buff .= sprintf('$widget_info->path = "%s";', $widget_path);
$buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body);
$buff .= sprintf('$widget_info->version = "%s";', $xml_obj->attrs->version);
$buff .= sprintf('$widget_info->widget_srl = $widget_srl;');
$buff .= sprintf('$widget_info->widget_title = $widget_title;');
if($xml_obj->version && $xml_obj->attrs->version == '0.2') {
// 위젯의 제목, 버전
$buff .= sprintf('$widget_info->widget = "%s";', $widget);
$buff .= sprintf('$widget_info->path = "%s";', $widget_path);
$buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body);
$buff .= sprintf('$widget_info->description = "%s";', $xml_obj->description->body);
$buff .= sprintf('$widget_info->version = "%s";', $xml_obj->version->body);
$buff .= sprintf('$widget_info->date = "%s";', $xml_obj->date->body);
$buff .= sprintf('$widget_info->homepage = "%s";', $xml_obj->link->body);
$buff .= sprintf('$widget_info->license = "%s";', $xml_obj->license->body);
$buff .= sprintf('$widget_info->license_link = "%s";', $xml_obj->license->attrs->link);
$buff .= sprintf('$widget_info->widget_srl = $widget_srl;');
$buff .= sprintf('$widget_info->widget_title = $widget_title;');
// 작성자 정보
$buff .= sprintf('$widget_info->author->name = "%s";', $xml_obj->author->name->body);
$buff .= sprintf('$widget_info->author->email_address = "%s";', $xml_obj->author->attrs->email_address);
$buff .= sprintf('$widget_info->author->homepage = "%s";', $xml_obj->author->attrs->link);
$buff .= sprintf('$widget_info->author->date = "%s";', $xml_obj->author->attrs->date);
$buff .= sprintf('$widget_info->author->description = "%s";', $xml_obj->author->description->body);
// 작성자 정보
if(!is_array($xml_obj->author)) $author_list[] = $xml_obj->author;
else $author_list = $xml_obj->author;
for($i=0; $i < count($author_list); $i++) {
$buff .= sprintf('$widget_info->author['.$i.']->name = "%s";', $author_list[$i]->name->body);
$buff .= sprintf('$widget_info->author['.$i.']->email_address = "%s";', $author_list[$i]->attrs->email_address);
$buff .= sprintf('$widget_info->author['.$i.']->homepage = "%s";', $author_list[$i]->attrs->link);
}
// history
if($xml_obj->history) {
if(!is_array($xml_obj->history)) $history_list[] = $xml_obj->history;
else $history_list = $xml_obj->history;
for($i=0; $i < count($history_list); $i++) {
sscanf($history_list[$i]->attrs->date, '%d-%d-%d', $date_obj->y, $date_obj->m, $date_obj->d);
$date = sprintf('%04d%02d%02d', $date_obj->y, $date_obj->m, $date_obj->d);
$buff .= sprintf('$widget_info->history['.$i.']->description = "%s";', $history_list[$i]->description->body);
$buff .= sprintf('$widget_info->history['.$i.']->version = "%s";', $history_list[$i]->attrs->version);
$buff .= sprintf('$widget_info->history['.$i.']->date = "%s";', $date);
if($history_list[$i]->author) {
(!is_array($history_list[$i]->author)) ? $obj->author_list[] = $history_list[$i]->author : $obj->author_list = $history_list[$i]->author;
for($j=0; $j < count($obj->author_list); $j++) {
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->name = "%s";', $obj->author_list[$j]->name->body);
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->email_address = "%s";', $obj->author_list[$j]->attrs->email_address);
$buff .= sprintf('$widget_info->history['.$i.']->author['.$j.']->homepage = "%s";', $obj->author_list[$j]->attrs->link);
}
}
if($history_list[$i]->log) {
(!is_array($history_list[$i]->log)) ? $obj->log_list[] = $history_list[$i]->log : $obj->log_list = $history_list[$i]->log;
for($j=0; $j < count($obj->log_list); $j++) {
$buff .= sprintf('$widget_info->history['.$i.']->logs['.$j.']->text = "%s";', $obj->log_list[$j]->body);
$buff .= sprintf('$widget_info->history['.$i.']->logs['.$j.']->link = "%s";', $obj->log_list[$j]->attrs->link);
}
}
}
}
} else {
// 위젯의 제목, 버전
$buff .= sprintf('$widget_info->widget = "%s";', $widget);
$buff .= sprintf('$widget_info->path = "%s";', $widget_path);
$buff .= sprintf('$widget_info->title = "%s";', $xml_obj->title->body);
$buff .= sprintf('$widget_info->description = "%s";', $xml_obj->author->description->body);
$buff .= sprintf('$widget_info->version = "%s";', $xml_obj->attrs->version);
$buff .= sprintf('$widget_info->date = "%s";', $xml_obj->author->attrs->date);
$buff .= sprintf('$widget_info->widget_srl = $widget_srl;');
$buff .= sprintf('$widget_info->widget_title = $widget_title;');
// 작성자 정보
$buff .= sprintf('$widget_info->author[0]->name = "%s";', $xml_obj->author->name->body);
$buff .= sprintf('$widget_info->author[0]->email_address = "%s";', $xml_obj->author->attrs->email_address);
$buff .= sprintf('$widget_info->author[0]->homepage = "%s";', $xml_obj->author->attrs->link);
}
// 추가 변수 (템플릿에서 사용할 제작자 정의 변수)
$extra_var_groups = $xml_obj->extra_vars->group;