From 8f7335c7765b1decc860ed3952ff36eb941554d3 Mon Sep 17 00:00:00 2001 From: ovclas Date: Wed, 15 Jun 2011 07:48:45 +0000 Subject: [PATCH] issue 46 Validator apply communication module. standalone method apply validator. Auto Form generation error in Template engine is fixed git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8482 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/module/ModuleHandler.class.php | 7 +- classes/template/TemplateHandler.class.php | 2 +- common/lang/en.lang.php | 1 + common/lang/es.lang.php | 3 +- common/lang/fr.lang.php | 3 +- common/lang/ge.lang.php | 3 +- common/lang/jp.lang.php | 3 +- common/lang/ko.lang.php | 1 + common/lang/mn.lang.php | 3 +- common/lang/ru.lang.php | 3 +- common/lang/tr.lang.php | 3 +- common/lang/vi.lang.php | 3 +- common/lang/zh-CN.lang.php | 3 +- common/lang/zh-TW.lang.php | 3 +- config/func.inc.php | 17 +++++ .../communication.admin.controller.php | 7 +- .../communication.controller.php | 64 +++++++++++++++++-- modules/communication/conf/module.xml | 12 ++-- .../skins/default/add_friend.html | 4 +- .../skins/default/add_friend_group.html | 5 +- .../communication/skins/default/friends.html | 10 +-- .../communication/skins/default/messages.html | 12 ++-- .../skins/default/send_message.html | 5 +- modules/communication/tpl/index.html | 5 +- 24 files changed, 141 insertions(+), 41 deletions(-) diff --git a/classes/module/ModuleHandler.class.php b/classes/module/ModuleHandler.class.php index cb071ec2e..4af23d87d 100644 --- a/classes/module/ModuleHandler.class.php +++ b/classes/module/ModuleHandler.class.php @@ -235,6 +235,7 @@ if($xml_info->action->{$this->act}) { $forward->module = $module; $forward->type = $xml_info->action->{$this->act}->type; + $forward->ruleset = $xml_info->action->{$this->act}->ruleset; $forward->act = $this->act; } } @@ -247,6 +248,7 @@ if($forward->module && $forward->type && $forward->act && $forward->act == $this->act) { $kind = strpos(strtolower($forward->act),'admin')!==false?'admin':''; $type = $forward->type; + $ruleset = $forward->ruleset; $tpl_path = $oModule->getTemplatePath(); $orig_module = $oModule; @@ -290,10 +292,11 @@ } } - //TODO ruleset check... + // ruleset check... if(!empty($ruleset)) { - $rulesetFile = $oModuleModel->getValidatorFilePath($this->module, $ruleset); + $rulesetModule = $forward->module ? $forward->module : $this->module; + $rulesetFile = $oModuleModel->getValidatorFilePath($rulesetModule, $ruleset); if(!empty($rulesetFile)) { $Validator = new Validator($rulesetFile); diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index fffd4e510..e69a7a188 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -188,7 +188,7 @@ $buff = preg_replace_callback('!<\!--%load_js_plugin\(\"([^\"]*?)\"\)-->!is', array($this, '_compileLoadJavascriptPlugin'), $buff); // form auto generation - $buff = preg_replace_callback('/()(.*)(<\/form>)/is', array($this, '_compileFormAuthGeneration'), $buff); + $buff = preg_replace_callback('/(].*?>)(.*?)(<\/form>)/is', array($this, '_compileFormAuthGeneration'), $buff); // replace variables $buff = preg_replace_callback('/\{[^@^ ]([^\{\}\n]+)\}/i', array($this, '_compileVarToContext'), $buff); diff --git a/common/lang/en.lang.php b/common/lang/en.lang.php index 11b13e262..dc3ecf904 100644 --- a/common/lang/en.lang.php +++ b/common/lang/en.lang.php @@ -242,6 +242,7 @@ $lang->success_reset = 'Reset successfully'; $lang->success_leaved = 'All member data has been deleted completely.'; $lang->success_saved = 'Saved successfully'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = 'Could not be deleted'; $lang->fail_to_move = 'Could not be moved'; diff --git a/common/lang/es.lang.php b/common/lang/es.lang.php index d6d92be57..47212b0ca 100644 --- a/common/lang/es.lang.php +++ b/common/lang/es.lang.php @@ -248,6 +248,7 @@ $lang->success_reset = 'Reajustado con éxito'; $lang->success_leaved = 'Abandonado con éxito'; $lang->success_saved = 'Guardado correctamente'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = 'No puede ser borrado'; $lang->fail_to_move = 'No puede ser movido'; @@ -327,4 +328,4 @@ $lang->filter->invalid_number = 'Sólo puede introducir los dígitos numéricos $lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.
To view them, please use another non-administrator ID."; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/fr.lang.php b/common/lang/fr.lang.php index c4f9ca0a1..32b5660c6 100644 --- a/common/lang/fr.lang.php +++ b/common/lang/fr.lang.php @@ -242,6 +242,7 @@ $lang->success_reset = 'Restauré avec succès'; $lang->success_leaved = 'Toutes vos informations sont complètement supprimés'; $lang->success_saved = 'Conservé avec succès'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = 'N\'a pas pu être supprimé.'; $lang->fail_to_move = 'N\'a pas pu être bougé'; @@ -318,4 +319,4 @@ $lang->filter->invalid_alpha = "La format de %s n\'est pas convenable. Entrez se $lang->filter->invalid_alpha_number = "La format de %s n\'est pas convenable. Entrez seulement des lettres d\'alphabet ou des chiffres."; $lang->filter->invalid_number = "La format de %s n\'est pas convenable. Entrez seulement des chiffres."; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/ge.lang.php b/common/lang/ge.lang.php index 6cdd719af..4f680eaf2 100644 --- a/common/lang/ge.lang.php +++ b/common/lang/ge.lang.php @@ -242,6 +242,7 @@ $lang->success_reset = 'Reset'; $lang->success_leaved = 'Alle Mitglieder Daten wurden komplett gestrichen. '; $lang->success_saved = 'erfolgreich gespeichert '; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = 'konnte nicht gelöscht werden'; $lang->fail_to_move = 'konnte nicht verschoben werden'; @@ -320,4 +321,4 @@ $lang->filter->invalid_number = "Das Format von% s ist ungültig. Bitte geben Si $lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.
To view them, please use another non-administrator ID."; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index 3c3c74b7d..ffaded45f 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -243,6 +243,7 @@ $lang->success_reset = '初期化しました。'; $lang->success_leaved = '退会しました。'; $lang->success_saved = '保存しました。'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = '削除に失敗しました。'; $lang->fail_to_move = '移動に失敗しました。'; @@ -322,4 +323,4 @@ $lang->filter->invalid_number = '%sの形式が正しくありません。半角 $lang->security_warning_embed = "保安のため、管理者IDではEMBEDを見ることが出来ません。
他のIDでログインして下さい。"; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index 29b3cccde..ee4afb7c7 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -228,6 +228,7 @@ $lang->success_sended = '발송 되었습니다.'; $lang->success_reset = '초기화 되었습니다.'; $lang->success_leaved = '탈퇴 되었습니다.'; $lang->success_saved = '저장 되었습니다.'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = '삭제 실패하였습니다.'; $lang->fail_to_move = '이동 실패하였습니다.'; $lang->failed_voted = '추천 하실 수 없습니다.'; diff --git a/common/lang/mn.lang.php b/common/lang/mn.lang.php index 1cfc7e041..19a5a3338 100644 --- a/common/lang/mn.lang.php +++ b/common/lang/mn.lang.php @@ -243,6 +243,7 @@ $lang->success_reset = 'Reset'; $lang->success_leaved = 'Гишүүнээс гарсан'; $lang->success_saved = 'Хадгалагдсан'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = 'Устгалт амжилтгүй боллоо'; $lang->fail_to_move = 'Шилжилт амжилтгүй боллоо'; @@ -317,4 +318,4 @@ $lang->filter->invalid_number = '%s-ын хэлбэр буруу байна. З $lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.
To view them, please use another non-administrator ID."; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/ru.lang.php b/common/lang/ru.lang.php index 94ba44421..55c1d6286 100644 --- a/common/lang/ru.lang.php +++ b/common/lang/ru.lang.php @@ -243,6 +243,7 @@ $lang->success_reset = 'Сброшено успешно'; $lang->success_leaved = 'Пользователь удален'; $lang->success_saved = 'Сохранено успешно'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = 'Не может быть удалено'; $lang->fail_to_move = 'Перемещение невозможно'; @@ -321,4 +322,4 @@ $lang->filter->invalid_number = "The format of %s is invalid. Please input numbe $lang->security_warning_embed = "Due to security concern, administrators are not allowed to view embedded items.
To view them, please use another non-administrator ID."; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/tr.lang.php b/common/lang/tr.lang.php index f07344b94..3e858eddc 100644 --- a/common/lang/tr.lang.php +++ b/common/lang/tr.lang.php @@ -242,6 +242,7 @@ $lang->success_reset = 'Başarıyla Tekrar Kuruldu.'; $lang->success_leaved = 'Tüm üye verileri tamamen silindi.'; $lang->success_saved = 'Başarıyla Kaydedildi.'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = 'Silinemedi'; $lang->fail_to_move = 'Taşınamadı'; @@ -320,4 +321,4 @@ $lang->filter->invalid_number = "%s biçimi geçersiz . Lütfen sadece numaralar $lang->security_warning_embed = "Güvenlik nedeniyle, yöneticiler yerleşik öğeleri görüntülemeye yetkili değildirler.
Yerleşik öğeleri görüntüleyebilmek için, lütfen yönetici olmayan bir hesap kullanın."; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/vi.lang.php b/common/lang/vi.lang.php index a4e79c3f1..ccf9c217b 100644 --- a/common/lang/vi.lang.php +++ b/common/lang/vi.lang.php @@ -235,6 +235,7 @@ $lang->success_reset = 'Đã thiết lập lại thành công.'; $lang->success_leaved = 'Đã xóa tất cả các thành viên.'; $lang->success_saved = 'Đã lưu thành công.'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = 'Không thể xóa.'; $lang->fail_to_move = 'Không thể chuyển.'; @@ -310,4 +311,4 @@ $lang->filter->invalid_number = "Định dạng của %s không hợp lệ. Ch $lang->security_warning_embed = "Vì vấn đề bảo mật, nên Administrator không được phép xem các mục đã nhúng mã.
Để xem được chúng, hãy sử dụng một tên truy cập khác không có quyền quản trị."; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php index ad37c1973..9283a7b4e 100644 --- a/common/lang/zh-CN.lang.php +++ b/common/lang/zh-CN.lang.php @@ -243,6 +243,7 @@ $lang->success_reset = '初始化成功 !'; $lang->success_leaved = '注销成功!'; $lang->success_saved = '保存成功!'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = '删除成功!'; $lang->fail_to_move = '移动成功!'; @@ -321,4 +322,4 @@ $lang->filter->invalid_number = '%s只能输入数字'; $lang->security_warning_embed = "由于安全问题,不允许用系统管理员ID操作embed对象,请使用其他拥有管理权限的ID操作。"; $lang->msg_pc_to_mobile = '이 페이지는 모바일 보기가 있습니다. 모바일 보기로 이동하시겠습니까?'; -?> \ No newline at end of file +?> diff --git a/common/lang/zh-TW.lang.php b/common/lang/zh-TW.lang.php index 0beedddb9..dea6a6fa4 100644 --- a/common/lang/zh-TW.lang.php +++ b/common/lang/zh-TW.lang.php @@ -243,6 +243,7 @@ $lang->success_reset = '重設成功!'; $lang->success_leaved = '成功退出!'; $lang->success_saved = '儲存成功!'; +$lang->fail_to_registed = '등록하지 못하였습니다.'; $lang->fail_to_delete = '刪除成功!'; $lang->fail_to_move = '移動成功!'; @@ -321,4 +322,4 @@ $lang->filter->invalid_number = '%s只能輸入數字'; $lang->security_warning_embed = "由於安全的關係,管理員無法檢視嵌入的物件。
請使用其他非管理員帳號檢視。"; $lang->msg_pc_to_mobile = '此頁面有手機頁面,要移至手機頁面嗎?'; -?> \ No newline at end of file +?> diff --git a/config/func.inc.php b/config/func.inc.php index eee62cadc..8e606228b 100644 --- a/config/func.inc.php +++ b/config/func.inc.php @@ -980,4 +980,21 @@ } } + function alertScript($msg) + { + if(!$msg) return; + echo ''; + } + + function closePopupScript() + { + echo ''; + } + + function reload($isOpener = false) + { + $reloadScript = $isOpener ? 'window.opener.location.reload()' : 'document.location.reload()'; + + echo ''; + } ?> diff --git a/modules/communication/communication.admin.controller.php b/modules/communication/communication.admin.controller.php index fbf41757a..71cfd9130 100644 --- a/modules/communication/communication.admin.controller.php +++ b/modules/communication/communication.admin.controller.php @@ -27,7 +27,12 @@ $oModuleController = &getController('module'); $output = $oModuleController->insertModuleConfig('communication',$args); - return $output; + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispCommunicationAdminConfig'); + header('location:'.$returnUrl); + return; + } + else return $output; } } diff --git a/modules/communication/communication.controller.php b/modules/communication/communication.controller.php index 4849d8189..e440cfda9 100644 --- a/modules/communication/communication.controller.php +++ b/modules/communication/communication.controller.php @@ -27,6 +27,11 @@ $output = executeQuery('communication.updateAllowMessage', $args); + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationMessages', 'message_type', Context::get('message_type')); + header('location:'.$returnUrl); + return; + } return $output; } @@ -76,6 +81,12 @@ $oMail->send(); } + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + global $lang; + alertScript($lang->success_sended); + closePopupScript(); + exit; + } return $output; } @@ -195,10 +206,10 @@ $logged_info = Context::get('logged_info'); $member_srl = $logged_info->member_srl; // check variables - $message_srl_list = trim(Context::get('message_srl_list')); - if(!$message_srl_list) return new Object(-1, 'msg_cart_is_null'); + if(!Context::get('message_srl_list')) return new Object(-1, 'msg_cart_is_null'); - $message_srl_list = explode('|@|', $message_srl_list); + $message_srl_list = Context::get('message_srl_list'); + if(!is_array($message_srl_list)) $message_srl_list = explode('|@|', trim($message_srl_list)); if(!count($message_srl_list)) return new Object(-1, 'msg_cart_is_null'); $message_type = Context::get('message_type'); @@ -223,6 +234,12 @@ if(!$output->toBool()) return $output; $this->setMessage('success_deleted'); + + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationMessages', 'message_type', Context::get('message_type')); + header('location:'.$returnUrl); + return; + } } /** @@ -246,6 +263,13 @@ $this->add('member_srl', $target_srl); $this->setMessage('success_registed'); + + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + global $lang; + alertScript($lang->success_registed); + closePopupScript(); + exit; + } } /** @@ -279,6 +303,11 @@ if(!$output->toBool()) return $output; $this->setMessage('success_moved'); + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationFriend'); + header('location:'.$returnUrl); + return; + } } /** @@ -311,6 +340,11 @@ if(!$output->toBool()) return $output; $this->setMessage('success_deleted'); + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationFriend'); + header('location:'.$returnUrl); + return; + } } /** @@ -336,9 +370,27 @@ $msg_code = 'success_registed'; } - if(!$output->toBool()) return $output; - - $this->setMessage($msg_code); + if(!$output->toBool()) + { + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + global $lang; + alertScript($lang->fail_to_registed); + closePopupScript(); + exit; + } + else return $output; + } + else + { + if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { + global $lang; + alertScript($lang->success_registed); + reload(true); + closePopupScript(); + exit; + } + else $this->setMessage($msg_code); + } } /** diff --git a/modules/communication/conf/module.xml b/modules/communication/conf/module.xml index f219a0d33..7385c3774 100644 --- a/modules/communication/conf/module.xml +++ b/modules/communication/conf/module.xml @@ -12,21 +12,21 @@ - + - - - + + + - + - + diff --git a/modules/communication/skins/default/add_friend.html b/modules/communication/skins/default/add_friend.html index 70f1ac9a1..ef2069b9f 100644 --- a/modules/communication/skins/default/add_friend.html +++ b/modules/communication/skins/default/add_friend.html @@ -5,7 +5,9 @@

{$lang->cmd_add_friend}

-
+

{$XE_VALIDATOR_ERROR}

+ +
diff --git a/modules/communication/skins/default/add_friend_group.html b/modules/communication/skins/default/add_friend_group.html index 8283a8740..8a82a87f0 100644 --- a/modules/communication/skins/default/add_friend_group.html +++ b/modules/communication/skins/default/add_friend_group.html @@ -1,4 +1,3 @@ -
@@ -10,7 +9,9 @@
- +

{$XE_VALIDATOR_ERROR}

+ +
diff --git a/modules/communication/skins/default/friends.html b/modules/communication/skins/default/friends.html index e00b4e7a8..22e44b196 100644 --- a/modules/communication/skins/default/friends.html +++ b/modules/communication/skins/default/friends.html @@ -1,6 +1,5 @@ - @@ -8,7 +7,10 @@

{$member_title = $lang->cmd_view_friend } ({$total_count})

- +

{$XE_VALIDATOR_ERROR}

+ + +
- {$lang->cmd_move} - + + {$lang->cmd_back} diff --git a/modules/communication/skins/default/messages.html b/modules/communication/skins/default/messages.html index b30004286..5960176cf 100644 --- a/modules/communication/skins/default/messages.html +++ b/modules/communication/skins/default/messages.html @@ -3,7 +3,9 @@
- + + + @@ -80,7 +84,7 @@
- + {$val->title} diff --git a/modules/communication/skins/default/send_message.html b/modules/communication/skins/default/send_message.html index 7e9c0402d..d0750a859 100644 --- a/modules/communication/skins/default/send_message.html +++ b/modules/communication/skins/default/send_message.html @@ -1,11 +1,12 @@ -

{$lang->cmd_send_message}

- +

{$XE_VALIDATOR_ERROR}

+ + diff --git a/modules/communication/tpl/index.html b/modules/communication/tpl/index.html index 9523c0eef..167c94b27 100644 --- a/modules/communication/tpl/index.html +++ b/modules/communication/tpl/index.html @@ -1,12 +1,13 @@ -

{$lang->communication} {$lang->cmd_management}

{nl2br($lang->about_communication)}
- +

{$XE_VALIDATOR_ERROR}

+ +