From 1f6fe648a801ba14ee9cc8eaf6b0ccd2a3d36c06 Mon Sep 17 00:00:00 2001 From: flyskyko Date: Fri, 2 Sep 2011 06:14:53 +0000 Subject: [PATCH] widget module(not completed) git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8987 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/widget/conf/module.xml | 9 +- modules/widget/lang/lang.xml | 6 +- .../widget/tpl/downloaded_widget_list.html | 80 +++---- modules/widget/tpl/header.html | 4 + modules/widget/tpl/js/generate_code.js | 57 +++++ modules/widget/tpl/js/module_list.js | 104 +++++++++ modules/widget/tpl/js/multi_order.js | 117 ++++++++++ modules/widget/tpl/widget_generate_code.html | 210 ++++++++++++++++-- modules/widget/widget.admin.view.php | 18 ++ modules/widget/widget.model.php | 16 ++ modules/widget/widget.view.php | 3 +- 11 files changed, 555 insertions(+), 69 deletions(-) create mode 100644 modules/widget/tpl/header.html create mode 100644 modules/widget/tpl/js/generate_code.js create mode 100644 modules/widget/tpl/js/module_list.js create mode 100644 modules/widget/tpl/js/multi_order.js diff --git a/modules/widget/conf/module.xml b/modules/widget/conf/module.xml index 4c66fdc5d..a57312dc5 100644 --- a/modules/widget/conf/module.xml +++ b/modules/widget/conf/module.xml @@ -7,9 +7,12 @@ - + + - + + + @@ -25,7 +28,7 @@ Installed Widget - 위젯 + 설치된 위젯 Installed Widget Installed Widget Installed Widget diff --git a/modules/widget/lang/lang.xml b/modules/widget/lang/lang.xml index 2b1144b4a..4b55d5b20 100644 --- a/modules/widget/lang/lang.xml +++ b/modules/widget/lang/lang.xml @@ -617,4 +617,8 @@ Sin la necesidad de utilizar los módulos de página o del diseño de XE, Usted - \ No newline at end of file + + + + + diff --git a/modules/widget/tpl/downloaded_widget_list.html b/modules/widget/tpl/downloaded_widget_list.html index 780ff550e..a79542ca7 100644 --- a/modules/widget/tpl/downloaded_widget_list.html +++ b/modules/widget/tpl/downloaded_widget_list.html @@ -1,44 +1,38 @@ -

{$lang->widget} {$lang->cmd_management}

+ - -
{nl2br($lang->about_widget)}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
{$lang->widget_name}
{$lang->version}
{$lang->author}
{$lang->date}
{$lang->path}
{$lang->cmd_generate_code}
-
- {$val->title}
- ({$val->widget}) -
-
{$val->version} - - {$author->name} - - {zdate($val->date, 'Y-m-d')}{$val->path}{$lang->cmd_generate_code}
- {nl2br(trim($val->description))}  -
+
+ + + + + + + + + + + + + + + + + + + + + + +
All({$tCount})
{$lang->widget_name}{$lang->version}{$lang->author}{$lang->path}{$lang->cmd_generate_code}{$lang->cmd_delete}
+

{$widget->title}

+

{$widget->description}

+

+ {$lang->msg_avail_update} {$lang->msg_do_you_like_update} +

+
{$widget->version} + + {$author->name} + {$author->name} + + {$widget->path}{$lang->cmd_generate_code}{$lang->cmd_delete}
+
diff --git a/modules/widget/tpl/header.html b/modules/widget/tpl/header.html new file mode 100644 index 000000000..63fcf9766 --- /dev/null +++ b/modules/widget/tpl/header.html @@ -0,0 +1,4 @@ +

{$lang->installed_widget}

+
+

{$XE_VALIDATOR_MESSAGE}

+
\ No newline at end of file diff --git a/modules/widget/tpl/js/generate_code.js b/modules/widget/tpl/js/generate_code.js new file mode 100644 index 000000000..2c99f750b --- /dev/null +++ b/modules/widget/tpl/js/generate_code.js @@ -0,0 +1,57 @@ +function doDisplaySkinColorset() +{ + var skin = jQuery('select[name=skin]').val(); + if(!skin) { + doHideSkinColorset(); + return; + } + + var params = new Array(); + params["selected_widget"] = jQuery('input[name=selected_widget]').val(); + params["skin"] = skin; + params["colorset"] = jQuery('select[name=colorset]').val(); + + var response_tags = new Array("error","message","colorset_list"); + + exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params); +} + +function completeGetSkinColorset(ret_obj) +{ + var sel = jQuery("select[name=colorset]").get(0); + var length = sel.options.length; + var selected_colorset = jQuery('select[name=colorset]').val(); + for(var i=0;i'+module.browserTitle+'('+module.module+')'; + this.selectedObj.append(html); + } + this.selectedObj.val(prevValue); + } +}); diff --git a/modules/widget/tpl/js/multi_order.js b/modules/widget/tpl/js/multi_order.js new file mode 100644 index 000000000..8abff018f --- /dev/null +++ b/modules/widget/tpl/js/multi_order.js @@ -0,0 +1,117 @@ +var MultiOrderManager = xe.createApp("MultiOrderManager", { + options: null, + values: null, + keyObj: null, + showObj: null, + selectedObj: null, + + init: function(key, options, values){ + var opstions = this.options = options; + var values = this.values = values; + var keyObj = this.keyObj = jQuery('input[name='+key+']'); + var showObj = this.showObj = keyObj.parent().find('.multiorder_show'); + var selectedObj = this.selectedObj = keyObj.parent().find('.multiorder_selected'); + + for (var key in options){ + var option = options[key]; + var html = ''; + showObj.append(html); + + if (option.init){ + this.addValue(key); + } + } + this.apply(); + + var thisObj = this; + keyObj.parent().find('.multiorder_add').bind('click', function(){ thisObj.cast('MULTIORDER_ADD'); return false; }); + keyObj.parent().find('.multiorder_del').bind('click', function(){ thisObj.cast('MULTIORDER_DEL'); return false; }); + keyObj.parent().find('.multiorder_up').bind('click', function(){ thisObj.cast('MULTIORDER_UP'); return false; }); + keyObj.parent().find('.multiorder_down').bind('click', function(){ thisObj.cast('MULTIORDER_DOWN'); return false; }); + }, + + API_MULTIORDER_ADD: function(){ + var index = this.showObj.get(0).selectedIndex; + if (index == -1) return; + + if (this.addValue(index)) this.apply(); + }, + + API_MULTIORDER_DEL: function(){ + var index = this.selectedObj.get(0).selectedIndex; + if (index == -1) return; + + if (this.delValue(index)) this.apply(); + }, + + API_MULTIORDER_UP: function(){ + var index = this.selectedObj.get(0).selectedIndex; + if (index == -1) return; + + if (this.up(index)) this.apply(); + }, + + API_MULTIORDER_DOWN: function(){ + var index = this.selectedObj.get(0).selectedIndex; + if (index == -1) return; + + if (this.down(index)) this.apply(); + }, + + addValue: function(index){ + var option = this.options[index]; + if (!option) return false; + + if (this.values == undefined) this.values = new Array(); + for (var i in this.values){ + if (this.values[i].key == option.key) return false; + } + + this.values.push(option); + return true; + }, + + delValue: function(index){ + if (this.options[index].default) return false; + + this.values.splice(index, 1); + return true; + }, + + up: function(index){ + if (index == 0) return false; + + var targets = this.values.splice(index-1, 2); + for(var i in targets){ + this.values.splice(index-1, 0, targets[i]); + } + return true; + }, + + down: function(index){ + if (index == this.values.length-1) return false; + + var targets = this.values.splice(index, 2); + for(var i in targets){ + this.values.splice(index, 0, targets[i]); + } + return true; + }, + + apply: function(){ + var keys = new Array(); + for (var i in this.values){ + keys.push(this.values[i].key); + } + this.keyObj.val(keys.join(',')); + + var prevValue = this.selectedObj.val(); + this.selectedObj.empty(); + for (var i in this.values){ + var option = this.values[i]; + var html = ''; + this.selectedObj.append(html); + } + this.selectedObj.val(prevValue); + } +}); diff --git a/modules/widget/tpl/widget_generate_code.html b/modules/widget/tpl/widget_generate_code.html index 7767ee40a..556faba8f 100644 --- a/modules/widget/tpl/widget_generate_code.html +++ b/modules/widget/tpl/widget_generate_code.html @@ -1,26 +1,194 @@ - - - - + + + + + -
-
-

{$lang->cmd_generate_code}

-
+

{$widget_info->title}

+

{$widget_info->description}

-
- {@ $_caption = $lang->about_widget_code} - -

{$lang->widget_code}

- - - - -
-
+ + -
- -
+

{$lang->cmd_generate_code}

+

{$lang->about_widget_code}

+ + + {@$suggestion_id = 0} + + {@$suggestion_id++} +
    + +
+

{$var->group}

+
    + {@$group = $var->group} + + {@$not_first = true} +
  • +

    +
    + + + + + + + + + + +
    + +
    + +
    + +
    + + + +
    + + + {@debugPrint($mid_list)} +
    + {$modules->title} + {$lang->none_category} + +
    + + +
    +
    +
    + + + + + + + + + + +
    +
    + 사이트찾기 +
    +
      +
    +
    +
    +

    +

    +
    + +
    + +
    + + +
    + + +
    + 사이트찾기 +
    +
      +
    +
    +
    +

    +

    +
    + + + + + + + + + + +
    +

    {$var->description}

    +
  • + +
diff --git a/modules/widget/widget.admin.view.php b/modules/widget/widget.admin.view.php index e79a625e0..5245a92cf 100644 --- a/modules/widget/widget.admin.view.php +++ b/modules/widget/widget.admin.view.php @@ -21,11 +21,29 @@ // Set widget list $oWidgetModel = &getModel('widget'); $widget_list = $oWidgetModel->getDownloadedWidgetList(); + + $security = new Security($widget_list); + $widget_list = $security->encodeHTML('..', '..author..'); + + foreach($widget_list as $no => $widget) + { + $widget_list[$no]->description = nl2br(trim($widget->description)); + } + Context::set('widget_list', $widget_list); + Context::set('tCount', count($widget_list)); $this->setTemplateFile('downloaded_widget_list'); } + function dispWidgetAdminGenerateCode() + { + $oView = &getView('widget'); + Context::set('in_admin', true); + $this->setTemplateFile('widget_generate_code'); + return $oView->dispWidgetGenerateCode(); + } + /** * @brief For information on direct entry widget popup kkuhim **/ diff --git a/modules/widget/widget.model.php b/modules/widget/widget.model.php index ecd6eb038..08a476407 100644 --- a/modules/widget/widget.model.php +++ b/modules/widget/widget.model.php @@ -49,6 +49,8 @@ * Download a widget with type (generation and other means) **/ function getDownloadedWidgetList() { + $oAutoinstallModel = &getModel('autoinstall'); + // 've Downloaded the widget and the widget's list of installed Wanted $searched_list = FileHandler::readDir('./widgets'); $searched_count = count($searched_list); @@ -61,6 +63,20 @@ // Wanted information on the Widget $widget_info = $this->getWidgetInfo($widget); + // get easyinstall remove url + $packageSrl = $oAutoinstallModel->getPackageSrlByPath($widget_info->path); + $widget_info->remove_url = $oAutoinstallModel->getRemoveUrlByPackageSrl($packageSrl); + + // get easyinstall need update + $package = $oAutoinstallModel->getInstalledPackages($packageSrl); + $widget_info->need_update = $package[$packageSrl]->need_update; + + // get easyinstall update url + if ($widget_info->need_update == 'Y') + { + $widget_info->update_url = $oAutoinstallModel->getUpdateUrlByPackageSrl($packageSrl); + } + $list[] = $widget_info; } return $list; diff --git a/modules/widget/widget.view.php b/modules/widget/widget.view.php index 4054eba66..d635aeb66 100644 --- a/modules/widget/widget.view.php +++ b/modules/widget/widget.view.php @@ -97,6 +97,7 @@ $this->setLayoutFile('popup_layout'); // Set a template file $this->setTemplateFile('widget_generate_code'); + debugPrint($widget_info); } /** @@ -127,7 +128,7 @@ if($widgetstyle && $widgetstyle_info){ Context::set('widgetstyle_info',$widgetstyle_info); } - + $this->dispWidgetGenerateCode(); $this->setLayoutFile('popup_layout'); $this->setTemplateFile('widget_style_generate_code_in_page');