From f10bc14c175ef1d27e89b494421cf133d0328e54 Mon Sep 17 00:00:00 2001 From: royallin Date: Wed, 26 Nov 2008 07:26:32 +0000 Subject: [PATCH 001/135] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4998 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/planet/lang/zh-TW.lang.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/planet/lang/zh-TW.lang.php b/modules/planet/lang/zh-TW.lang.php index b037474f7..f193dab1f 100644 --- a/modules/planet/lang/zh-TW.lang.php +++ b/modules/planet/lang/zh-TW.lang.php @@ -73,7 +73,7 @@ $lang->cmd_planet_edit_intro = "修改簡介"; $lang->cmd_planet_edit_tag = "編輯標籤"; - $lang->cmd_planet_openclose_memo = "展開或關閉 memo"; + $lang->cmd_planet_openclose_memo = "展開或關閉留言"; $lang->cmd_planet_del_tag = "刪除標籤"; $lang->cmd_planet_openclose_recommend_search = "開啟或關閉推薦關鍵字"; @@ -161,8 +161,8 @@ $lang->planet_tagtab = "標籤頁"; $lang->about_planet_tagtab = "以「,」區分多個標籤,這些標籤將顯示在標籤頁。"; - $lang->planet_tagtab_after = "뒤 추가 Tag 탭"; - $lang->about_planet_tagtab_after = "기본 태그탭 이후에 여러개의 Tag 탭을 추가할 수 있습니다. 콤마(,)로 여러개를 지정할 수 있습니다"; + $lang->planet_tagtab_after = "新增標籤分頁"; + $lang->about_planet_tagtab_after = "기본 태그탭 이후에 여러개의 Tag 탭을 추가할 수 있습니다. 以「,」區分多個標籤。"; $lang->planet_smstag = "SMS標籤"; $lang->about_planet_smstag = "以「,」區分多個標籤, 以 SMS傳送時將自動新增標籤。"; From 3dacfd039393f66963c30090708876de66ac01da Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 26 Nov 2008 07:45:00 +0000 Subject: [PATCH 002/135] =?UTF-8?q?issuetracker=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=B5=9C=EC=8B=A0=20=EB=B2=84=EC=A0=84=EB=A7=8C=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=EB=90=98=EA=B3=A0=20=EB=82=98=EB=A8=B8=EC=A7=80?= =?UTF-8?q?=EB=8A=94=20=EC=A0=84=EC=B2=B4=20=EB=B3=B4=EA=B8=B0=EB=A5=BC=20?= =?UTF-8?q?=ED=86=B5=ED=95=B4=20=EB=B3=B4=EC=97=AC=EC=A7=80=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= 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@4999 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/issuetracker/issuetracker.view.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/issuetracker/issuetracker.view.php b/modules/issuetracker/issuetracker.view.php index 32c4878b2..378e650ac 100644 --- a/modules/issuetracker/issuetracker.view.php +++ b/modules/issuetracker/issuetracker.view.php @@ -388,7 +388,7 @@ $package_list[$release->package_srl]->releases[$release->release_srl] = $release; } else { if(!$package_srl) { - $package_list = $oIssuetrackerModel->getPackageList($this->module_srl, 0, 3); + $package_list = $oIssuetrackerModel->getPackageList($this->module_srl, 0, 1); } else { $package_list = $oIssuetrackerModel->getPackageList($this->module_srl, $package_srl, 0); } From 31e374a44de3cae93fa0616e0b88f031419d00f7 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 26 Nov 2008 09:34:43 +0000 Subject: [PATCH 003/135] 17491457 : fix by calling setEditMode function of xquared in onload event of window git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5000 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/skins/xquared/editor.html | 7 ++++++- modules/editor/skins/xquared/javascripts/xe_interface.js | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/editor/skins/xquared/editor.html b/modules/editor/skins/xquared/editor.html index 5aa6e3ef2..fc9ed7e43 100644 --- a/modules/editor/skins/xquared/editor.html +++ b/modules/editor/skins/xquared/editor.html @@ -95,8 +95,13 @@ diff --git a/modules/editor/skins/xquared/javascripts/xe_interface.js b/modules/editor/skins/xquared/javascripts/xe_interface.js index d19d909e7..13a0aea26 100644 --- a/modules/editor/skins/xquared/javascripts/xe_interface.js +++ b/modules/editor/skins/xquared/javascripts/xe_interface.js @@ -62,6 +62,10 @@ function editorStart_xq(editor, element, editor_sequence, content_key, editor_he editor.setStaticContent(fo_obj[content_key].value); editor.config.imagePathForDefaultToolbar = request_uri+editor_path+'images/toolbar/'; editor.config.contentCssList = [request_uri+editor_path+"/stylesheets/xq_contents.css"]; + return editor; +} + +function setEditMode(editor, editor_height, editor_sequence) { editor.setEditMode('wysiwyg'); editor.getFrame().style.width = "100%"; editor.getFrame().parentNode.style.height = editor_height; @@ -73,7 +77,8 @@ function editorStart_xq(editor, element, editor_sequence, content_key, editor_he xAddEventListener(editor.getFrame().contentWindow.document,'dblclick',editorSearchComponent); } catch(e) { } - + + var fo_obj = editorGetForm_xq(xq.$("xqEditor_"+editor_sequence)); if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence); } From 739162ffc8d7b8cd10c0f0afe5c8a04e8e1401be Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 04:10:02 +0000 Subject: [PATCH 004/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=B6=94=EA=B0=80?= 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@5001 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/planet_bookmark/conf/info.xml | 5 +++++ addons/planet_todo/conf/info.xml | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/addons/planet_bookmark/conf/info.xml b/addons/planet_bookmark/conf/info.xml index 7ef26d7b3..9a0d41784 100644 --- a/addons/planet_bookmark/conf/info.xml +++ b/addons/planet_bookmark/conf/info.xml @@ -3,6 +3,7 @@ 플래닛 Bookmark 애드온 微博收藏插件 Planet 書籤 + Planet Bookmark アドオン 플래닛 Bookmark 애드온 @@ -12,11 +13,15 @@ Planet 書籤插件 + + Planet Bookmark アドオン + 0.1 2008-10-31 zero + zero zero zero diff --git a/addons/planet_todo/conf/info.xml b/addons/planet_todo/conf/info.xml index a1a3296ba..5d9a973ba 100644 --- a/addons/planet_todo/conf/info.xml +++ b/addons/planet_todo/conf/info.xml @@ -4,6 +4,7 @@ Planet TODO 微博TODO插件 Planet TODO 插件 + Planet TODO アドオン 플래닛 TODO 애드온 @@ -16,6 +17,9 @@ Planet TODO 插件 + + Planet TODO アドオン + 0.1 2008-10-31 From 84772bb56b709cc3560d6e3e7757341d38baf76e Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 05:51:18 +0000 Subject: [PATCH 005/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=B6=94=EA=B0=80=20:=20LDAP=20=EA=B4=80=EB=A0=A8?= 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@5002 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/ldap/conf/info.xml | 7 +++++++ modules/ldap/lang/jp.lang.php | 31 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 modules/ldap/lang/jp.lang.php diff --git a/modules/ldap/conf/info.xml b/modules/ldap/conf/info.xml index 747015c30..1633e2b90 100644 --- a/modules/ldap/conf/info.xml +++ b/modules/ldap/conf/info.xml @@ -3,9 +3,11 @@ LDAP 인증 연동 모듈 LDAP认证模块 LDAP認證模組 + LDAP認証連動モジュール zero zero zero + zero LDAP 인증 연동하는 모듈입니다. 적수님(http://ggang.net)님이 매우 큰 도움 주셨습니다. @@ -18,6 +20,10 @@ LDAP認證模組。 感謝 적수님(http://ggang.net)提供非常大的幫助。 + + LDAP認証連動モジュール + JeokSu(http://ggang.net)さんに感謝します。 + 0.1 2007-07-28 accessory @@ -25,5 +31,6 @@ zero zero zero + zero diff --git a/modules/ldap/lang/jp.lang.php b/modules/ldap/lang/jp.lang.php new file mode 100644 index 000000000..6b95976b6 --- /dev/null +++ b/modules/ldap/lang/jp.lang.php @@ -0,0 +1,31 @@ + 翻訳:ミニミ + * @brief 日本語言語パッケージ(基本的な内容のみ) + **/ + + $lang->ldap = 'LDAP認証連動'; + $lang->use_ldap = 'LDAP認証連動を使用する'; + $lang->ldap_server = 'LDAPサーバーアドレス'; + $lang->ldap_port = 'LDAPサーバーポート番号'; + $lang->ldap_userdn_suffix = 'ユーザーサフィックス'; + $lang->ldap_basedn = 'ベースDN(suffix)'; + + $lang->ldap_email_entry = '会員メールアカウントカラム'; + $lang->ldap_nickname_entry = '会員名カラム'; + $lang->ldap_username_entry = '会員のニックネームカラム'; + $lang->ldap_group_entry = '会員のグループカラム'; + + $lang->about_use_ldap = 'LDAP認証連動のためには、下記のサーバー情報とともに上にチェックして下さい。'; + $lang->about_ldap_server = 'LDAPサーバー情報を入力してください。'; + $lang->about_ldap_port = 'LDAPサーバーのポート(port)番号情報を入力してください。'; + $lang->about_ldap_userdn_suffix = '認証のためのユーザーサフィックスを入力してください。 (例: @abc.com)'; + $lang->about_ldap_basedn = 'ディレクトリの ベースDN(suffix)をログインして下さい。 (例: dc=abc,dc=com)'; + + $lang->about_ldap_email_entry = 'LDAP情報中、会員のメールアカウント情報として使うカラム名を入力してください。 (重複不可)'; + $lang->about_ldap_username_entry = 'LDAP情報中、会員名情報として使うカラム名を入力してください。 (重複可能)'; + $lang->about_ldap_nickname_entry = 'LDAP情報中、会員のニックネーム情報として使うカラム名を入力してください。 (重複不可)'; + $lang->about_ldap_group_entry = 'LDAP情報中、会員のグループ情報として使うカラム名を入力してください。'; + +?> From afa9d5c369fc4bba673963c91d82a2ac85b5e6e6 Mon Sep 17 00:00:00 2001 From: royallin Date: Thu, 27 Nov 2008 07:00:46 +0000 Subject: [PATCH 006/135] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5003 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/homepage/lang/zh-TW.lang.php | 4 +-- modules/install/lang/zh-TW.lang.php | 10 +++--- modules/planet/lang/zh-TW.lang.php | 50 ++++++++++++++-------------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/modules/homepage/lang/zh-TW.lang.php b/modules/homepage/lang/zh-TW.lang.php index 1c1dff6e4..7e7c0e55a 100644 --- a/modules/homepage/lang/zh-TW.lang.php +++ b/modules/homepage/lang/zh-TW.lang.php @@ -68,7 +68,7 @@ ); $lang->about_homepage = "網站模組可快速建立網站,且容易進行設定。"; $lang->about_homepage_title = "只有在管理時才看的到此標題。"; - $lang->about_domain = "要建立網站必須要有個專屬域名。
頂級域名或次級域名都可以。輸入時,請將 XE安裝路徑也一起輸入。
例) www.zeroboard.com/zbxe"; + $lang->about_domain = "要建立網站必須要有個專屬域名。
頂級域名或次級域名都可以。輸入時,請將XE安裝路徑也一起輸入。
例) www.zeroboard.com/zbxe"; $lang->about_menu_names = "可指定語言。
如果只輸入其中一項,其他語言將會顯示一樣。"; $lang->about_menu_option = "可設定案選單時,是否要以新視窗開啟。
選展開的話,是隨版面。"; @@ -78,7 +78,7 @@ $lang->about_module_id = "連結討論板,頁面等模組時,所要輸入的格式。
例) http://域名/[模組 ID], http://域名/?mid=[模組 ID]"; $lang->about_menu_item_url = "目標是 URL時,在此輸入網址。
請勿輸入 http://"; $lang->about_menu_image_button = "可用圖片代替選單名稱"; - $lang->about_homepage_delete = "刪除網站:即刪除所有相關的模組(討論板,頁面等)以及相關文章。
請慎重使用。"; + $lang->about_homepage_delete = "刪除網站:即刪除所有相關的模組(討論板,頁面等)以及相關文章。請慎重使用。"; $lang->about_homepage_admin = "可以建立網站管理員。
管理員登入網址是 http://域名/?module=homepage。只能在現有的會員中指定管理員。"; $lang->confirm_change_layout = "變換版面可能會使原來的資料無法顯示。確定要變換嗎?"; diff --git a/modules/install/lang/zh-TW.lang.php b/modules/install/lang/zh-TW.lang.php index 6e06d1dc0..5e76bbe31 100644 --- a/modules/install/lang/zh-TW.lang.php +++ b/modules/install/lang/zh-TW.lang.php @@ -245,14 +245,14 @@ EndOfLicense; $lang->admin_title = '管理員資料'; $lang->env_title = '環境設置'; - $lang->use_optimizer = '使用 Optimizer'; - $lang->about_optimizer = '使用 Optimizer可以對大部分的 CSS/JS檔案進行整合/壓縮傳送使之加快網站訪問速度。
只是有時會發生小小的問題。這時候請暫時不要使用Optimizer。'; - $lang->use_rewrite = '使用 rewrite模組'; - $lang->about_rewrite = '如主機支援 rewrite模組並選擇此項,可以簡化複雜的網址。
例如,http://域名/?document_srl=123可簡化成 http://域名/123。'; + $lang->use_optimizer = '使用Optimizer'; + $lang->about_optimizer = '使用Optimizer可以對大部分的CSS/JS檔案進行整合/壓縮傳送使之加快網站訪問速度。
只是有時會發生小小的問題。這時候請暫時不要使用Optimizer。'; + $lang->use_rewrite = '使用rewrite模組'; + $lang->about_rewrite = '如主機支援rewrite模組並選擇此項,可以簡化複雜的網址。
例如,http://域名/?document_srl=123可簡化成 http://域名/123。'; $lang->time_zone = '時區'; $lang->about_time_zone = '主機時間和您所處的時間有差異時,可以設置時區來滿足你所需要的時間顯示。'; $lang->qmail_compatibility = 'Qmail互換'; - $lang->about_qmail_compatibility = '支援無法識別 CRLF為換行符的 Qmail等 MTA,也能發送電子郵件。'; + $lang->about_qmail_compatibility = '支援無法識別CRLF為換行符的Qmail等MTA,也能發送電子郵件。'; $lang->about_database_file = 'Sqlite是保存資料於檔案中。資料庫的檔案位置應該放在web不能訪問的地方。
資料檔案應放在具有707權限的位置。'; diff --git a/modules/planet/lang/zh-TW.lang.php b/modules/planet/lang/zh-TW.lang.php index f193dab1f..7d898972a 100644 --- a/modules/planet/lang/zh-TW.lang.php +++ b/modules/planet/lang/zh-TW.lang.php @@ -6,8 +6,8 @@ **/ $lang->planet = "微型部落格"; - $lang->planet_title = "微型部落格標題"; - $lang->planet_url = "微型部落格網址"; + $lang->planet_title = "部落格標題"; + $lang->planet_url = "部落格網址"; $lang->planet_myplanet = "我的微型部落格"; $lang->planet_whos_planet = "%s 的微型部落格"; $lang->planet_whos_favorite = "%s 的最愛"; @@ -47,9 +47,9 @@ $lang->planet_userinfo = "個人資料"; $lang->planet_change_userinfo = "修改個人資料"; - $lang->planet_change_photo = "修改照片"; - $lang->about_planet_change_photo = "照片大小為 96×96 px。"; - $lang->cmd_planet_image_upload = "上傳照片"; + $lang->planet_change_photo = "變更圖片"; + $lang->about_planet_change_photo = "圖片大小為 96×96 px。"; + $lang->cmd_planet_image_upload = "上傳"; $lang->cmd_planet_good = "推薦"; $lang->cmd_planet_addfavorite = "新增至最愛"; @@ -79,13 +79,13 @@ $lang->cmd_planet_openclose_recommend_search = "開啟或關閉推薦關鍵字"; $lang->about_planet_input_search_text = "輸入關鍵字"; - $lang->about_planet_make_planet = "建立微型部落格。請在微型部落格的頂端輸入「我的個人資料」。"; - $lang->about_planet_make_planet_info = "顯示在微型部落格頂端的個人資料。當所有項目都輸入完畢後,請儲存您的設定。"; + $lang->about_planet_make_planet = "建立微型部落格。請輸入微型部落格的基本資料。"; + $lang->about_planet_make_planet_info = "顯示微型部落格的基本資料。當所有項目都輸入完畢後,請儲存您的設定。"; $lang->planet_input_personalinfo = "輸入個人資料"; $lang->planet_photo = "照片"; $lang->planet_myintro = "自我介紹"; - $lang->about_planet_url = "設定完後無法再修改。"; + $lang->about_planet_url = "設定完成後無法再修改。"; $lang->planet_mytag = "個人標籤"; $lang->about_planet_mytag = "個人專屬標籤。以「,」區分多個標籤。"; @@ -103,8 +103,8 @@ $lang->planet_nowhot_tag = "熱門標籤"; $lang->cmd_planet_close_nowhot_tag = "關閉熱門標籤"; - $lang->about_planet_whats_textSearch_in_planet = "搜尋%s的微型部落格'%s'的搜尋結果。"; - $lang->about_planet_whats_textSearch = "'%s'的全部搜尋結果。"; + $lang->about_planet_whats_textSearch_in_planet = "在'%s'的微型部落格中搜尋'%s'的結果。"; + $lang->about_planet_whats_textSearch = "所有關於'%s'的搜尋結果。"; $lang->planet_acticle = "文章"; $lang->planet_persontag = "個人標籤"; @@ -119,27 +119,27 @@ $lang->planet_article_preview = "預覽"; - $lang->planet_notice_title = "%s,歡迎來到微型部落格!
%s,您可以在微型部落格中分享您的想法、意見、資訊以及其他知識。以下是簡單的使用說明。^^"; + $lang->planet_notice_title = "%s,歡迎來到微型部落格!
%s,您可以在微型部落格中分享您的想法、意見、資訊以及其他知識喔。以下是簡單的使用說明。^^"; $lang->planet_notice_list = array( - "底下的內容輸入區域可以開啟與關閉。", - "所有瀏覽者都能夠觀看 %s的微型部落格,而且也能夠回覆。", - "利用「新增最愛」與「喜愛標籤」功能,隨時都能看到 %s的喜愛內容。", + "底下的內容輸入區域可以開啟或關閉。", + "所有瀏覽者都能夠觀看和回覆%s的微型部落格。", + "利用「新增最愛」與「喜愛標籤」功能,隨時都能看到%s的喜愛內容。", "%s的「照片、暱稱、標籤」等資料都可在此頁面中進行修改。", - "對其他微型部落格有興趣?請利用『熱門標籤』或『搜尋』。", + "對其他微型部落格有興趣嗎?請利用『熱門標籤』或『搜尋』。", "如果您還有其他問題。請搜尋『問題』標籤。", ); $lang->planet_notice_disable = "不要再顯示。"; - $lang->msg_planet_about_postscript = "請輸入附註。"; - $lang->msg_planet_about_tag = "請輸入標籤。(以「,」區隔)"; + $lang->msg_planet_about_postscript = "請輸入附註"; + $lang->msg_planet_about_tag = "請輸入標籤並以「,」區隔"; $lang->msg_planet_already_added_favorite = "已新增的最愛。"; - $lang->msg_planet_no_memo = "目前沒有留言。"; + $lang->msg_planet_no_memo = "目前沒有留言"; - $lang->msg_planet_rss_enabled = "RSS使用中。"; - $lang->msg_planet_rss_disabled = "RSS暫停使用。"; + $lang->msg_planet_rss_enabled = "RSS使用中"; + $lang->msg_planet_rss_disabled = "暫停使用RSS"; - $lang->msg_me2day_sync = "傳送到 me2day"; - $lang->msg_me2day_sync_q = "確定要傳送到 me2day嗎?"; + $lang->msg_me2day_sync = "傳送到me2day"; + $lang->msg_me2day_sync_q = "確定要傳送到me2day嗎?"; $lang->me2day_id = "me2day網址"; $lang->me2day_ukey = "User Key"; $lang->msg_me2day_activate = "自動傳送。"; @@ -164,10 +164,10 @@ $lang->planet_tagtab_after = "新增標籤分頁"; $lang->about_planet_tagtab_after = "기본 태그탭 이후에 여러개의 Tag 탭을 추가할 수 있습니다. 以「,」區分多個標籤。"; $lang->planet_smstag = "SMS標籤"; - $lang->about_planet_smstag = "以「,」區分多個標籤, 以 SMS傳送時將自動新增標籤。"; + $lang->about_planet_smstag = "以「,」區分多個標籤,用SMS傳送時將自動新增標籤。"; - $lang->planet_use_mobile = "開啟 SMS"; - $lang->about_use_mobile = "可用手機發送 SMS"; + $lang->planet_use_mobile = "開啟SMS"; + $lang->about_use_mobile = "可用手機發送SMS"; $lang->planet_use_me2day = "Me2day"; $lang->about_use_me2day = "發表主題的同時也傳送到 me2day(http://me2day.net)。"; $lang->msg_search_thisplanet = "搜尋微型部落格"; From 5b8186fdfbe7311d0519854ae07be9a73305f850 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 07:23:23 +0000 Subject: [PATCH 007/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=20::=20LDAP=20=EC=88=98=EC=A0=95=20::=20homepage=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88=20=EB=B2=88=EC=97=AD?= 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@5004 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/homepage/conf/info.xml | 3 ++ modules/homepage/lang/jp.lang.php | 87 +++++++++++++++++++++++++++++++ modules/ldap/lang/jp.lang.php | 2 +- 3 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 modules/homepage/lang/jp.lang.php diff --git a/modules/homepage/conf/info.xml b/modules/homepage/conf/info.xml index c75758fef..be0ac53d7 100644 --- a/modules/homepage/conf/info.xml +++ b/modules/homepage/conf/info.xml @@ -4,10 +4,12 @@ Homepage 站点 網站 + ホームページ XE의 여러 모듈들을 조합하여 홈페이지를 생성하기 가장 좋은 관리자 기능을 제공합니다 Homepage package provides convenient adminitration features to create an to manage homepages by combining several modules of XE. 组合XE各模块,快速新建站点。 網站模組結合XE的所有模組可快速又簡單地建立網站。 + 各種XEモジュールを組み合わせてホームページを作成する便利な機能です。 0.1 2008-11-04 package @@ -17,5 +19,6 @@ zero zero zero + zero diff --git a/modules/homepage/lang/jp.lang.php b/modules/homepage/lang/jp.lang.php new file mode 100644 index 000000000..9d39ee040 --- /dev/null +++ b/modules/homepage/lang/jp.lang.php @@ -0,0 +1,87 @@ +homepage = "ホームページ"; + $lang->homepage_title = "ホームページ名"; + $lang->domain = "ドメイン"; + $lang->module_type = "ターゲット"; // 20081127 ミニミ:検討必要 + $lang->board = "掲示板"; + $lang->page = "ページ"; + $lang->url = "URL"; + $lang->module_id = "モジュール ID"; + $lang->item_group_grant = "メニューを見せるグループ"; + $lang->homepage_admin = "ホームページ管理者"; + $lang->do_selected_member = "選択した会員を : "; + + $lang->homepage_default_menus = array( + 'first' => array( + 'home' => 'ホーム', + 'notice' => 'お知らせ', + 'download' => 'ダウンロード', + 'gallery' => 'ギャラリー', + 'community' => 'コミュニティー', + 'freeboard' => '自由掲示板', + 'humor' => 'ユーモア掲示板', + 'qa' => 'Q and A', + ), + 'second' => array( + 'profile' => 'ホームページ紹介', + 'rule' => '運営規則', + ), + 'menu' => array( + 'first' => '基本メニュー', + 'second' => 'サブメニュー', + ), + 'widget' => array( + 'download_rank' => 'ダウンロードランキング', + ), + ); + + $lang->cmd_homepage_menus = array( + "dispHomepageManage" => "ホームページ設定", + "dispHomepageMemberGroupManage" => "会員のグループ管理", + "dispHomepageMemberManage" => "会員リスト", + "dispHomepageTopMenu" => "基本メニュー 管理", + "dispHomepageBottomMenu" => "フッターメニュー 管理", + "dispHomepageMidSetup" => "モジュール詳細設定", + ); + $lang->cmd_homepage_registration = "ホームページ作成"; + $lang->cmd_homepage_setup = "ホームページ設定"; + $lang->cmd_homepage_delete = "ホームページ削除"; + $lang->cmd_go_home = "ホームへ移動"; + $lang->cmd_go_homepage_admin = 'ホームページ全体管理'; + $lang->cmd_change_layout = "変更"; + $lang->cmd_change_layout = "変更"; + $lang->cmd_select_index = "初期ページ選択"; + $lang->cmd_add_new_menu = "新しいメニュー追加"; + + $lang->about_homepage_act = array( + "dispHomepageManage" => "ホームページのレイアウトを変更します。", + "dispHomepageMemberGroupManage" => "ホームページ内のグループを管理します。", + "dispHomepageMemberManage" => "ホームページに登録されている会員を管理します。", + "dispHomepageTopMenu" => "ホームページのヘッダー(header、上段)や左側などのメニューを管理します。", + "dispHomepageBottomMenu" => "ホームページのフッター(footer、下段)のメニューを管理します。", + "dispHomepageMidSetup" => "ホームページの掲示板、ページなどのモジュールを管理します。", + ); + $lang->about_homepage = "ホームページサービス管理者は複数のホームページ作成、および各ホームページを簡単に管理が出来ます。"; + $lang->about_homepage_title = "ホームページ名は管理のためのみ使われ、実サービスには表示されません。"; + $lang->about_domain = "複数のホームページを作成するためには、専用のドメインが必要です。オリジナルドメインやサブ ドメインがあれば結構です。
また、 XEインストール経路も一緒に記入してください。
ex) www.zeroboard.com/zbxe"; + $lang->about_menu_names = "ホームページに使うメニュー名を言語別に指定出来ます。
一個だけ記入した場合、他言語に一括適用されます。"; + $lang->about_menu_option = "メニューを選択するとき新しいウィンドウズに開けるかを選択します。
拡張メニューはレイアウトによって動作します。"; + $lang->about_group_grant = "選択グループのみ、メニューが見えます。
全てを解除すると非会員にも見えます。"; + $lang->about_module_type = "掲示板、ページはモジュールを生成し、URLはリンクの情報のみ要ります。
一度作成した後、変更は出来ません。"; // 20081127 ミニミ:検討必要 + $lang->about_browser_title = "メニューにアクセスした時、ブラウザーのタイトルです。"; + $lang->about_module_id = "掲示板、ページなどにリンクさせるアドレスです。
例) http://ドメイン/[モジュールID], http://ドメイン/?mid=[モジュールID]"; + $lang->about_menu_item_url = "ターゲットをURLにした場合、リンク先を入れて下さい。
http://は省いて入力して下さい。"; // 20081127 ミニミ:検討必要 + $lang->about_menu_image_button = "テキストのメニュー名の代わりに、イメージのメニューを使えます。"; + $lang->about_homepage_delete = "ホームページを削除すると、リンクされている全てのモジュール(掲示板、ページなど)とそれに付随する書き込みが削除されます。
ご注意ください。"; + $lang->about_homepage_admin = "ホームページ管理者の設定が出来ます。
ホームページ管理者は 「 http://ドメイン/?module=homepage 」 として管理者ページにアクセスが出来ます。
存在しない会員は管理者に登録できません。"; + + $lang->confirm_change_layout = "レイアウトの変更時、一部のレイアウト情報が失われる可能性があります。 変更しますか?"; + $lang->confirm_delete_menu_item = "メニュー削除時、リンクされている掲示板やページモジュールも一緒に削除されます。削除しますか?"; + $lang->msg_already_registed_domain = "既に登録されたドメインです。違うドメインを利用して下さい。"; +?> diff --git a/modules/ldap/lang/jp.lang.php b/modules/ldap/lang/jp.lang.php index 6b95976b6..d6537456f 100644 --- a/modules/ldap/lang/jp.lang.php +++ b/modules/ldap/lang/jp.lang.php @@ -1,6 +1,6 @@  翻訳:ミニミ * @brief 日本語言語パッケージ(基本的な内容のみ) **/ From dd4e8fe3cea6fbd2482217f466d66e65989f0961 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 07:31:24 +0000 Subject: [PATCH 008/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=20::=20homepage=20=EB=AA=A8=EB=93=88?= 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@5005 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/homepage/lang/jp.lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/homepage/lang/jp.lang.php b/modules/homepage/lang/jp.lang.php index 9d39ee040..bd7b53170 100644 --- a/modules/homepage/lang/jp.lang.php +++ b/modules/homepage/lang/jp.lang.php @@ -34,7 +34,7 @@ ), 'menu' => array( 'first' => '基本メニュー', - 'second' => 'サブメニュー', + 'second' => '`フッターメニュー', ), 'widget' => array( 'download_rank' => 'ダウンロードランキング', From ce446d428fe941456187bc0c57a21c9ab332ee52 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 27 Nov 2008 07:32:30 +0000 Subject: [PATCH 009/135] =?UTF-8?q?msword2007=20=EC=86=8C=EC=8A=A4?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=20=EC=A0=9C=EA=B1=B0?= 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@5006 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../editor/skins/msword2007/css/editor.css | 58 ------ modules/editor/skins/msword2007/editor.html | 188 ------------------ .../msword2007/images/bgBoardEditorOption.png | Bin 3333 -> 0 bytes .../editor/skins/msword2007/images/blank.gif | Bin 43 -> 0 bytes .../skins/msword2007/images/buttonClose.gif | Bin 58 -> 0 bytes .../msword2007/images/buttonTextAreaDrag.gif | Bin 68 -> 0 bytes .../msword2007/images/buttonTypeBCenter.gif | Bin 176 -> 0 bytes .../msword2007/images/buttonTypeBLeft.gif | Bin 258 -> 0 bytes .../msword2007/images/buttonTypeBRight.gif | Bin 258 -> 0 bytes .../skins/msword2007/images/editor_btn_ac.gif | Bin 1008 -> 0 bytes .../skins/msword2007/images/editor_btn_aj.gif | Bin 1507 -> 0 bytes .../skins/msword2007/images/editor_btn_al.gif | Bin 1509 -> 0 bytes .../skins/msword2007/images/editor_btn_ar.gif | Bin 1004 -> 0 bytes .../skins/msword2007/images/editor_btn_b.gif | Bin 1694 -> 0 bytes .../skins/msword2007/images/editor_btn_bg.gif | Bin 1701 -> 0 bytes .../skins/msword2007/images/editor_btn_c.gif | Bin 1623 -> 0 bytes .../skins/msword2007/images/editor_btn_i.gif | Bin 1590 -> 0 bytes .../skins/msword2007/images/editor_btn_id.gif | Bin 1615 -> 0 bytes .../skins/msword2007/images/editor_btn_od.gif | Bin 1614 -> 0 bytes .../skins/msword2007/images/editor_btn_ol.gif | Bin 1658 -> 0 bytes .../skins/msword2007/images/editor_btn_rf.gif | Bin 1820 -> 0 bytes .../skins/msword2007/images/editor_btn_s.gif | Bin 1654 -> 0 bytes .../msword2007/images/editor_btn_sub.gif | Bin 1584 -> 0 bytes .../msword2007/images/editor_btn_sup.gif | Bin 1584 -> 0 bytes .../skins/msword2007/images/editor_btn_u.gif | Bin 1629 -> 0 bytes .../skins/msword2007/images/editor_btn_ul.gif | Bin 1626 -> 0 bytes .../msword2007/images/lineTextAreaDrag.gif | Bin 46 -> 0 bytes .../skins/msword2007/images/select_dot.gif | Bin 49 -> 0 bytes modules/editor/skins/msword2007/js/editor.js | 10 - modules/editor/skins/msword2007/skin.xml | 20 -- 30 files changed, 276 deletions(-) delete mode 100644 modules/editor/skins/msword2007/css/editor.css delete mode 100644 modules/editor/skins/msword2007/editor.html delete mode 100644 modules/editor/skins/msword2007/images/bgBoardEditorOption.png delete mode 100644 modules/editor/skins/msword2007/images/blank.gif delete mode 100644 modules/editor/skins/msword2007/images/buttonClose.gif delete mode 100644 modules/editor/skins/msword2007/images/buttonTextAreaDrag.gif delete mode 100644 modules/editor/skins/msword2007/images/buttonTypeBCenter.gif delete mode 100644 modules/editor/skins/msword2007/images/buttonTypeBLeft.gif delete mode 100644 modules/editor/skins/msword2007/images/buttonTypeBRight.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_ac.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_aj.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_al.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_ar.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_b.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_bg.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_c.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_i.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_id.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_od.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_ol.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_rf.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_s.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_sub.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_sup.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_u.gif delete mode 100644 modules/editor/skins/msword2007/images/editor_btn_ul.gif delete mode 100644 modules/editor/skins/msword2007/images/lineTextAreaDrag.gif delete mode 100644 modules/editor/skins/msword2007/images/select_dot.gif delete mode 100644 modules/editor/skins/msword2007/js/editor.js delete mode 100644 modules/editor/skins/msword2007/skin.xml diff --git a/modules/editor/skins/msword2007/css/editor.css b/modules/editor/skins/msword2007/css/editor.css deleted file mode 100644 index d23101e75..000000000 --- a/modules/editor/skins/msword2007/css/editor.css +++ /dev/null @@ -1,58 +0,0 @@ -@charset "utf-8"; - -.xeEditor { } -.xeEditor .optionABC, -.xeEditor .option2, -.xeEditor .optionDE { clear:both; width:100%; border-bottom:1px solid #c2c2c2; overflow:hidden; background:#ffffff url(../images/bgBoardEditorOption.png) no-repeat -3px bottom;} -.xeEditor .optionABC .selectGroup { white-space:nowrap; display:block; height:22px; margin:0 .5em 0 0; padding-left:1em; float:left;} -.xeEditor .optionABC .buttonGroup, -.xeEditor .option2 .buttonGroup { white-space:nowrap; position:relative; display:block; margin:0 .5em 0 0; float:left; height:22px; overflow:hidden; padding-left:2px;} -.xeEditor .optionABC .buttonGroup img, -.xeEditor .option2 .buttonGroup img { float:left; display:block; margin-left:-1px; cursor:pointer;} -.xeEditor .optionA, -.xeEditor .optionB, -.xeEditor .optionC, -.xeEditor .optionE, -.xeEditor .optionF { float:left; background:#ffffff url(../images/bgBoardEditorOption.png) no-repeat left bottom; padding:.5em 0 .5em .7em; overflow:hidden;} -.xeEditor .optionA *, -.xeEditor .optionB *, -.xeEditor .optionC *, -.xeEditor .optionF * { vertical-align:middle;} -.xeEditor .optionA { background-position:-3px bottom; padding-left:0;} -.xeEditor .optionA select option { font-size:.9em; } - -.xeEditor .optionDE .buttonGroup { white-space:nowrap; position:relative; display:block; float:left; height:21px; overflow:hidden; padding-left:2px;} - -.xeEditor .optionDE img { float:left; display:block; margin-right:.5em; cursor:pointer;} -.xeEditor .optionD { padding:.5em 0 .5em .8em; overflow:hidden; float:left; border-right:1px solid #e0e0e0;} - -.xeEditor .editorInfo { background:#fbfbfb; padding:.5em; border:1px solid #e1e1dd; color:#999999; position:relative; margin:5px 10px 0 10px;} -.xeEditor .close { cursor:pointer; position:absolute; top:3px; right:3px; _top:3px; _right:25px;} -.xeEditor .editor_iframe_box { background:#ffffff; clear:both; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; padding:0; margin:0 10px 0 10px; } -.xeEditor .editor_iframe_textarea { background:#ffffff; clear:both; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; padding:0; margin:0 10px 0 10px; width:100%; font-size:1em; display:none;} - -.xeEditor .textAreaDragIndicator { text-align:center; background:url(../images/lineTextAreaDrag.gif) repeat-x left center; padding:5px 0 5px 0; } -.xeEditor .textAreaDragIndicatorBar { background:url(../images/buttonTextAreaDrag.gif) no-repeat center; cursor:move;height:14px;} - -.xeEditor .editor_info { clear:both; padding:5px 10px 5px 10px; overflow:hidden;} -.xeEditor .editor_info .editor_option { float:left; color:#888888; } -.xeEditor .editor_info .editor_autosaved_message { color:#888888; float:right; display:none;} - - -.xeEditor .fileAttach { border:none; table-layout:fixed; margin:10px 10px 0 10px; } - -.xeEditor .fileAttach .preview { padding:5px; border:1px solid #e1e1dd; width:100px; height:100px; margin-right:10px;} -.xeEditor .fileAttach .preview img { width:100px; height:100px; } - -.xeEditor .fileAttach .fileListArea .fileList { background:url(../images/select_dot.gif); overflow:auto; width:100%; height:auto; border:1px solid; border-color:#a6a6a6 #d8d8d8 #d8d8d8 #a6a6a6; margin-bottom:10px; font-size:11px;} -.xeEditor .fileAttach .fileListArea .fileList option { line-height:100%; padding-left:.5em;} -.xeEditor .fileAttach .fileUploadControl { float:left; } -.xeEditor .fileAttach .file_attach_info { color:#AAAAAA; font-size:.9em; _font-size:8pt; text-align:right;} -*:first-child+html .xeEditor .fileAttach .file_attach_info { font-size:8pt; } - -.xeEditor .fileAttach .fileUploadControl .uploaderButton { display:block; cursor:pointer; background:url(../images/buttonTypeBCenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; font-size:.9em; white-space:nowrap;} -.xeEditor .fileAttach .fileUploadControl .uploaderButton:hover { text-decoration:none;} -.xeEditor .fileAttach .fileUploadControl .uploaderButton img { vertical-align:middle;} -.xeEditor .fileAttach .fileUploadControl .uploaderButton .leftCap { width:2px; height:21px; background:url(../images/buttonTypeBLeft.gif) no-repeat; margin:0 .3em 0 0; position:relative; left:-1px;} -.xeEditor .fileAttach .fileUploadControl .uploaderButton .rightCap { width:2px; height:21px; background:url(../images/buttonTypeBRight.gif) no-repeat; margin:0 -1px 0 .4em;} -.xeEditor .fileAttach .fileUploadControl .uploaderButton .icon { margin:0 .2em;} diff --git a/modules/editor/skins/msword2007/editor.html b/modules/editor/skins/msword2007/editor.html deleted file mode 100644 index 42913d22a..000000000 --- a/modules/editor/skins/msword2007/editor.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - - - - - - -
- -
- - - -
-
-
- - - - - -
- -
- {$lang->edit->help_bold} - {$lang->edit->help_italic} - {$lang->edit->help_underline} - {$lang->edit->help_strike} - - {$lang->edit->help_sub} - {$lang->edit->help_sup} - - {$lang->edit->help_fontcolor} - {$lang->edit->help_fontbgcolor} - {$lang->edit->help_removeformat} -
-
- -
-
- {$lang->edit->help_align_left} - {$lang->edit->help_align_center} - {$lang->edit->help_align_right} - {$lang->edit->help_align_full} -
- - -
- {$lang->edit->help_remove_indent} - {$lang->edit->help_add_indent} -
- -
- {$lang->edit->help_list_bullet} - {$lang->edit->help_list_number} -
-
-
- - - - -
-
-
- - - {$component->title} - - -
-
-
- -
- - - -
- {$lang->about_dblclick_in_editor} - - close -
- - - - -
- -
- -
- - -
 
- -
- - - -
- - - - -
- - - - - - - - - - - - - - - -
preview
- -
- -
-
- - {$lang->edit->delete_selected} - {$lang->edit->link_file} -
-
{$upload_status}
-
- -
- - - - diff --git a/modules/editor/skins/msword2007/images/bgBoardEditorOption.png b/modules/editor/skins/msword2007/images/bgBoardEditorOption.png deleted file mode 100644 index c17e3a74cf94a6429d0bd73d60f5196fb7a4ad8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3333 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 V`SXasY|--x@*;Vfv)ou2tO3c)7P$Zb diff --git a/modules/editor/skins/msword2007/images/buttonTypeBCenter.gif b/modules/editor/skins/msword2007/images/buttonTypeBCenter.gif deleted file mode 100644 index c501463ef768a590cd1dcef89c3e48378fb498ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmZ?wbhEHbWMvR#IKsd%d;5dK*WMqz{O0KO52x;Yef;+KoSk>}TzGll%G;B7za6^z z_QdVa$8LT+eec`Z``=FA`*Ql;=Tmn+oVxq*#O-%iAAe*Z1av?OKz1>(nkp!Cg+%&k zNUdG{WLJQUy~*7><%?c>+?RJ)kYEua(c73(bRflO-uc!LuN7gk5jlywO)K^)GFSru D-y%=Y diff --git a/modules/editor/skins/msword2007/images/buttonTypeBLeft.gif b/modules/editor/skins/msword2007/images/buttonTypeBLeft.gif deleted file mode 100644 index 0b919a5c0716c73a901eea33339e89dad95972d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmZ?wbhEHbWMU9yxXQq=?(oBhufD(f_&cI*ePrGGn5NB%ZQIkk_vB7GTr%TC)x5JU zE3S90x!ttnLdS|L_h0>d@ap@+SKpqz`5scUE~I*GXwAClrY(tWTk|FzD4lV%VadfE zXJ4GX^X~qu9}i!DfAH$tvv)u4zy5ju<(DV#em;8h{rQJquRi_0^7zx8mtPpD0dzoy zfc(P1rtZL(%y?me$b1$~L#rt~YTXG6GdnaEc(pvxWYL@8%>MaAi`4AN${Y;V04z3a An*aa+ diff --git a/modules/editor/skins/msword2007/images/buttonTypeBRight.gif b/modules/editor/skins/msword2007/images/buttonTypeBRight.gif deleted file mode 100644 index d94c9a21faf1139ceb589b8e06d9e4e38565b2e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmZ?wbhEHbWMU9yxXQpVd;5c{kH6n|^7a0UujSJZR?j+8Gy8DU!jr9wPj#=lbnWri z>rcMke)je8+h3*A_E*d}SU2x@{rqEX%g*($yV|?v;*`xdXKcSaW9yAMJMU~h@o?|O zmsg*BKYQoh)hFMcy!+L$;_S62pRYgpeD%@CyDz`rfBoa)!;e=Uf4cenD+85)4#*sk yUl`cb9T?P;HA5XH2Pdg0%GykDYjhN_Wb2#Y{2@X@WFnu^hnoQ=;ys!i4Aua>Z*2|$ diff --git a/modules/editor/skins/msword2007/images/editor_btn_ac.gif b/modules/editor/skins/msword2007/images/editor_btn_ac.gif deleted file mode 100644 index 889bac6d1c491542ca6af0187ab71223802be865..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1008 zcmVhk={-t^1f^UB=t*yi@v<@Dg{^~&Ax$lLDM=JnR(^3~(<|M|@R z_tpOS;{N*O|NH3v_0awD%KrD?`|P{>?7aN%!~ONz|IkSP&`JN$O8?PL|IttX(^mh} zSO3*u|J7mt*J}UQYyaAI|Jrx|;*bC0kpJV8|Kyne<(~iLpa18i`sJwl<*EPbvij(< z`slO&@5KD?%KY)r{qxoT+=2hxg8$!(|KE)N;gtX3mH+6g|LeH_?Y{rB8~?;m|GP#1 zz)b(NJ$q(Fr;cX-tup_f9si{$|BVIzjt2jd4F8uD|C=NKsz(2=Q~$AE|FUTOv2Dzj zX6L4D000000000000000000000000000000000000000000000EC2ui02cs4000O7 zfB=GngoTEJCM$}IjE#;fDkzeZl$Dk!B_o=foSmK{DJP<%q@|`OBqFLJbgizhud5;+ zA+@%*xVa%56}`T&u)e+-5yi&G$jK2H5X}(4&~(la7Z29g*xA|-0|nmS(XHR#8xrQ{ z=;`Vb3Iy&1;jr%n0tWW?`1$$<8WjHj@&5hmFrlEqg9sB&NN}K`!-o(f9#~+ZqQ#3C zGg|n7prgl+AVVSm!JwqclPFU%Xuz_i%a<@&2AD~+rp=o(Vd&h+v!_p;FIos4O0=la z7cOEbUCOknQx`L2NS#Wxs?`}cY-qI+@72~DRBF%|OSY`pvNfnof%2qn+jwsOpFo)+ zr3sU}c=PJb+eAu{95@1Zbrm>A5hFTsC|=CCF=HJ@j_}w)nR2|!J9r#H;-iP>&!9tt z_JJe`kRPZAw?Yjh$r2$!V#}UQd$y1zTZjzVy*nQ7Aw;$~u~MbD@#DykTXDh#%a!NQ zqf3vDg-aJLS+Z;2&V9RV<-A5Xr#`6w*Xt6$H)eR>D*^St z8D)o3nsLUJSZ1l^mRFYH<(Fl|1E!Z^lxgOfXr@^v7;Lub=9_S`8OEG+)@kRRbAF-c eo_zM{r=DH}D(Iku78)oSh$gD&qKqOM2mm{PenZLt diff --git a/modules/editor/skins/msword2007/images/editor_btn_aj.gif b/modules/editor/skins/msword2007/images/editor_btn_aj.gif deleted file mode 100644 index a660778ff0415cdedae4682794c902634276e68c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1507 zcmds$=Tp-M9EZb+m{YG+q(TK$5HTXymMW#K-pL*U+Tx-16u~OBGFlW0t=9@c8Ag;M zGDIM<8!9szga8o`ek4S)!w3Yj2pNPd!jf)M z4&ewRd5!E6(qviZOko?plr&z^In~8k=wzy2jVRmSDtfpJ6z)O~SJTZ_kr{Ioj=Gzr z7@Az{<*Jbh{lJ)(Hnm6>F46@Wo^**TF)@TXzU+N0a>PdFv~E3e4! z2Sy-_1Oel{!N3dy#wlQ)0(Jzj&I0=^aHD_|4cutpUk83HjQ zW()nNq0q2a4CHQvTnl($0r^{@&>*~!S{xhQ|{+1B+cVII_S(pOn!D& z&K-;>d!LIAiNFqT&$6=-Sq|D^^NynJZ!$awb3J9*Rdz{RMLQi*IMD&PWPulQ@vb~Q zV0Y?~Imx5bithrWG7T-8_PEV6vmEX@=(6@)T5*sSU&&wI0OF$jml&2rd)_W1C>!m$B4rcB;*ctcXcen! zL7Z*bu5F0>N!;7FtZ-LOM6CM7=v$rw S>RzRR74p?2G1<%v_3eM>{v#g% diff --git a/modules/editor/skins/msword2007/images/editor_btn_al.gif b/modules/editor/skins/msword2007/images/editor_btn_al.gif deleted file mode 100644 index 4e5f2541c578ef24e40d159fa0aa9b3c3c200af3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1509 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 ao_BiT=bwNEDyW}i6l&<9h$dQSAOJgkkwO^& diff --git a/modules/editor/skins/msword2007/images/editor_btn_b.gif b/modules/editor/skins/msword2007/images/editor_btn_b.gif deleted file mode 100644 index 4ef110d0e5f71ca33176ac49058056d3c5000d36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1694 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 diff --git a/modules/editor/skins/msword2007/images/editor_btn_i.gif b/modules/editor/skins/msword2007/images/editor_btn_i.gif deleted file mode 100644 index ef993323a37801e42d6abacb19ee58fb88c1b0f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1590 zcmc(e`9BkU0D$KRE3uU@W^QJQY*aqHz0R?OBFEbyX-Sb+7w;=c-eNUHlGk3!nH=%j zh-Ir>VPlzN&C6yq_mN|cg?!()zv6v9&+pGqj~fAh$o8BD#0jznfgrSXcdEclF_zhN z!+Fe62fX*I+Ro#FA=)~6eIv`=LyN@7xZ*m_FCmf5pXaZ~KRQK>vbJ?-?47Orz$>fg zmcH$}nUH$p&f|~#1xGh;wqS)jvc?~i_6$n~CZyuIjhwfFT*i>GnFW(O6%|J|!B{r* z&9Q{5O}x4GK}qXBix~wqPjag|hE@;QIdVj+9Kk$Sw8S5m_K8=zhnM=trJqMv`^VP= zQ{SeSHf`*jq7&0R{en7%mNN=yzu!;q7?Q9B3;pA({ITWX=@kT0mn~duAN;ygMU_9k z@_BTLCtg%mQ3c;Rx7K)D-@a_EkAaOznCgzL74G*X_STxHt}Jn5mO-z0;B?q(W0slu zC~9-Q`TNR1%sG96of^(eMObr~61SHWX#%+Jey*B;O90#>l-m}?I2ecq12N!BD)^EH#81I! z78rX0#&W?#QGe@`^|6xmu~INiTc7;TYB1ljInUl)rvG7zPJkqj{M3`~|2PrHE`I+%M8S5eeQX@F{N_|9#hiVhuSOQQ1Zeg6v#FNW%y7Rq`@u- z914kXl!b4XHBg5#;&7BOE5;pr7YlVz=?kbqfEKn%z0#Q(I#GND@_%6dBl_b7h!TJ( zDk0sg@*MBFWTH>ESLHVwA9?Ja<4!I3Xy}|6CTOP?w&@X4NJs*$h+ycHP;#0@d+DKf zFt$Bssvy);7kh`EWm}CW=Q{j>I<&C6@nPQ27jgpGHJ1{g9@RD%w3_en$^#H;)PX$6 z=kon{l8&9fJd_H7Oa?kc-;;$#iJNX8ldY67xi;40&{${raEI~w((nlXS4Bk<{1hxr zpDJgx2WjV(kdIALf|&;t!yKw75Ev&isv_~DN>AaHqCigln;E{@p|C7ZM(y07mOZnd z!>F4VSw=-@dNJvXV(n{jfuERfB@?<1?zvv?>TgcT)51lc-rZV74>yy6t~bhF&2+N2 z{A?GB{nTth+>z@I2zxM6$&9G$!x0S&hyr>zK|Z>hq#j_D6|Am|CAlV^BIXb8IceSG zZa^ZIq^TM`S4(k~MwWAD|1++w@ICpN8lsnfD|kh<#z_ADuhoQ>bx4;GTrI zExnqAa8V~1X@pWlC;Uqlv{H{z@MwRZx2?Jf4U4T=MB0b~C+1ruWwZwXHA>k6{@- zabhQ%B%g3%73V}xUwZWn*~Bu=%(y&VTJjN&p&+bO}`JBQ!9v`nX4N-Y50{sni*b6 z=M|NIt)H#Uwy;@f-8;`*ZnERNlX@9)-f!TqTUz&w-m=8XYeekFvW%Roa9zlhPAiz3 z`Jxp^Q|{`4-Oec;t;m=-GFBVs>(PdkgeYcWT`e#CE=WbH3&q69??x+qUAQaVC14U(Fr9Q-O3 Kr{PdAh~2-gv;?RC diff --git a/modules/editor/skins/msword2007/images/editor_btn_id.gif b/modules/editor/skins/msword2007/images/editor_btn_id.gif deleted file mode 100644 index a45cc3b238564e341654e36bb00e7a95fc512974..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1615 zcmcJO>sQiu0Ecl}R=S-ocG+C#7@8yPLTXb_+fJF4I-72llvx%wr>VQuoXbs(3|(2F zGs{dRl;)+(Ynmuzn#$#;ApAf@<;O)p1OXAjOMF*<#6IVF@w|IpeU6462?)Hf85M-G zpips%`3FvsLvfjL@jo3nUmtg+6!#kq8%c`HLU1>v(Zum+f)JMh9gKZ=APtGkmPOqd z4UNsI>zj+rMbgVfsfCBk zi6*T>h)F0nixlQjl~t@X%XLd~-Qpj`uhUC<2ox59!n{>8NUGx(w~m+6q(x1llGf33 z+C-MO@dOBa*!JT>~(9wr9%<=ixu&!Th>K!q%C*~o^JT#^k zPFi7wg)5mADc{MwKyKzCv%^ZOP%%HOw2Z13#-ehr!10bE21%zC@rjUW50NYCpC(c<`I=ysF;Q2 z#<<@y*-$4~;Mgp%Z9!&RoCHg1o0&_miG4fEvRNd5I% zm5Y;Ai<8wr)3~U9M-$NZEbCdzM($e^492d3F#?d>0+Ku+EdAK`) z?P+Esm0gq>{50S6L|O7v0ArlPJg(ZhHln}n%ZmWjHhjG6)n@E`dF2L z?7+Dv#-%B3M4Dyerw3#58iG37jPhPacEW`?qDeK#I9UGU!Q2g7Pd6q>2L9TAf7>1o z7i@{3cPz}F$rFThS9C5}43daILM8p}lGWrMc)1>QW#>9zkSvGwm~UNkTqp>^`SUhp zTh5h>A!wJVQ&Rs;@d>NK@^;FkIc~&NXm_7uXy)GqhC)hWLHGwJc9On8%k%t%7QTM6n&th&-}un&$uC#nw#TGSQMXgZ z_OZ4XosxybuEXG0pZq@hS0;v-U$ENqfs0#+`xSi9$+BWn(CHl|31~Grdy|*ilbRME z_Sqvp)`ri5Q}H)1RsAVrQXj;oSf2KB-v$r=dWqu@~{FoS<+ywEl0WG`y#a(vx&U;f;&ny#H_xOp}k}OBtF(li9 vAK$~UQmnE(|GEGfVni<}3UNQayh^)Rx1fA<+4c-e&e^@FuF!8@i`xGm$qSWN diff --git a/modules/editor/skins/msword2007/images/editor_btn_od.gif b/modules/editor/skins/msword2007/images/editor_btn_od.gif deleted file mode 100644 index 544757c9a0dc556efd1dac6628ce0acf55e95527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1614 zcmb7@`&ZI;1Axg^YU?fQ*mA9Uo9=z{r0Zn5(yh)>v#U!@o#{?1a}8ZvJ7?21m!3s9 z(|H3yO%v~zR1g&{6>kuD0R%xrR8THoeBwG35;)#&o-sz)1Tz`N2KxtW3fNwa%1j1JQIP9K*km*E6-WMMAH%ynC+Ut*WYTp?*lwI;QPps|Th`eF8)8gsz7N z4~a~jV+xwcG$b+(3ibVbEp5s$I0+93w5<8Hw<5!s#4<8#<}9pnWoumN@|?yl(X7kh zb%o9*hu2ig>)B1*ssZ`S4o(*v8WJrJP8kL!Va|e;vtSvSF|eg3na(cLS{Ik?O1({O z+JIL!+4JTx$?_DmB7)2@iI1gPE50}b*vGeRqHVi!dt(V~YPMJT?^f8`Hrb}WZ&Tl| z6g3+aU0X)RyVW_szXtf%0sjUNgaJV~5XJ!EZ3{a}%eW0h@j!H6LX89Bhd}%Tn0pN7 zegjGjP+|du2aBa(sS+$z0d@VxQq#s#Gk_@@n!oJ?My6_}W6Q|iGV|YAL_qosNYOx+ z3uJjfQ3MplKtlw&9$*;6=cR+rj{q|Q^j!wDFG1JEH00%11xV0(7E~Ss4W1x>7bw^b zaC^ZER}1D4DE9y@SF}0DB$@8&B0t@W3)WZRfE)!n?gC2ER>!095~RBE5k3`(|M?!` z|H1p8_@5ULP5@zxb-UJHP0#qCv8#jGUc<=Re>jL9(p)>7>*nL0;E-K7iupJ6>?q4= zpYt_*WXl~EZmH%!7*|%bYa8;y%X7&K(GNUB>O%rE_8j}%$~|!XcbuyE*2h7S6#;mP zw!J2-!g-%lNYed7EjNit{!WD+jt&_+ce;3=;Jo=%a`@8G;lJ=f!5O>URKXP-@h~>f z-vO$=g$j;uLhl@PJIE}6MzJ1O??x?7oM#yIn`gQYJHwuSk=ov4uXB=U0564+Udi>~g8jRa+;(^#H6JIDKtMwwH0Lb&VT z=w6TU{05fp*i&#z8T89zrP`3l-;yL_0|1jFkYWZI`b z-(~w`{a60nYq{Vsp?kSLb}@bYpx9CcsyMG x=k0GvpJksUuPgIHL%9(4>S_DpJkN)_RGLWcRjF`=Ty=HUX{zSId+#B>_#ZS$#!>(P diff --git a/modules/editor/skins/msword2007/images/editor_btn_ol.gif b/modules/editor/skins/msword2007/images/editor_btn_ol.gif deleted file mode 100644 index b6a9f48c5acc7861021d3eccec9486c199176112..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1658 zcmcJO=~vQe07kL2)NH2hR5NXcl%zCS*}e=}nYKykDQjA^#ccP~OxbSQf}n<)T3Je( z=AH^CG?hpw1w@hUhlqf(h$sjmi@3bg{1J1{{ct}$-=00efg3kP&VvQOY%o}A;tO;* z5gk#9iJ_sRX_#0pI-GDni=X*jW+kQ>{W%}b{5MI6PI2k zPp=RY>s2I{p2XG*l{P{5aJ$STR$1g)%cGp8M>#*96>#t+JZu4nP$7C*-9cvcQaHLV zZ3C2+J}TeXz%$Sx6J0d;jX&@mGP0x=Znv#nF$}5gJcU`Lv_LA0q}Sf5u_*PUO1&AQ8jQBiOd>#{D(nhG@zovA(tLx4rLD>{ZZk?<_V61D`*S7W7wCcVJjWnV0t8kFY zAE@W{(FA%bPsi-CHVXC4o#r1MCbrDVky|;^L6O=nRN1)lAxQHxtOBK_T`?rq*hMO< zSYwlDN2Gltom#uf;Lr_?ky*;GLIYKxZ{X?JvSGH&{6nl~NsVHS6;cn2RAxwJ7WSCB z`fT!kyFzDSb(xww4ei|~NMq^fwTM(hLZvA^BVHj`Hw3hY0R9oc zI|}$mfiMCHB7raxK$ie?8Axsc$!*Z{0`w4oG99R10d)>g=Yrl34t0@3T?};94((4# zV3093$QmgchmtFrt{Etyfhg;(hrF|wkE>9OZw|0k&b#{c^Q%oV_V zT^9yb62G}eh`1f}%J=l=zp!CD@|#k=Tqa*Bacd%72+6*IMvkNv7P&b6it{=76favt(8+Nw0 zhM;tvha^mOCctW|&$DB0%ulV#BlWfs|GdtPgzv=jUEKXQa=!d?`S-=RE2#m0?R9b| zk2pSTOW5PS>QMZiO$2m}NqLC;1U-}f^d{5e?Y`XYi*~+1tSgF^w>E6C`ECz;0`Baf z){mGq<<5_HXr7JQj7s`#_&MzOsNLMZ1g;^11h<)RMV#~8aN@3Lk6F#}9_zK92?-v& zRL|#O(cMqypF%bV;}AWOOI%`+Jy?X#8opP`2W%)VMJo!$y>NBe=au9?2@8AZm#0kG zsuR1SLK+%bK4q8;norR3VnkY5ePf1iF>%&1pRgkr3o?pp&KyCep=U9V-$%nWug>9C z1S4-Iu1Q2(o?9JSrdzWWLz+XFO`Rla# z$x#8gsDhY0=JGe^O8N@l-Z<=j@nbA6(YtsZmswm?c(=s+BjeUIWG)RHk6W61AAVtD zm8>V*r<%d@o#e)V4^%STeepi*?f^E598}0gaRYrRc}hrBro*bII$3VF~;uk@PsHDd154nsuG73J%M!sca~eCqN~q zuJ0|o$vLrm_H=))9W~6|HFZ()F&3h{<+uW=ALa+QefL<)M$tXiPuu^XRM-L&wLqK` ze42km)>SK%yv>}nwiQ)k?TjhaCrRG?cGlJv+grZjVzcMzn=PvgtSjw`2TS<3uh0=W zu})0H!_pqA(`1j;4A^A!q_hhawW^HCq!X)%Hu$mC@3XFL)TgQLH!bn)U< hWa!$czUC8!ZK$^y>ITj3USmeaywh7BIXS_${0o?`ugw4e diff --git a/modules/editor/skins/msword2007/images/editor_btn_rf.gif b/modules/editor/skins/msword2007/images/editor_btn_rf.gif deleted file mode 100644 index c14768871fcae4cc76a0cbd92fa8d9efb325309b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1820 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 diff --git a/modules/editor/skins/msword2007/images/editor_btn_sub.gif b/modules/editor/skins/msword2007/images/editor_btn_sub.gif deleted file mode 100644 index 3af30c982afd59d88f2450a021bbc877fe36570c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmc(e{Xf%r0KixC6ndS+nOq!XRhnW~=jCq*N#x{?itH0vjulFDD{^jlC=k4whx(9Xyri8%|MhKKI z$}@<7il?EH*r*h~X9xjDpcE97OR6BxsQTNu?gBiS0L=%Sk8nn%Ja3vTr1A+ZQ-u_6 z7Pf3)V!3y0sgXHD?U{S~X@Sa`ZS9vreTxa`JUVwNBfso+Mge_L@~(g3Jy*))t*|GQ zI3l^1zswb?`uOtU8P%kCz32@O-#i8lNSk}bZ$8bx{y5jhkgq3T;f5BYCn&^uZAnDkU zFgKRin{p0RL`2o4^rgC`o-epLtgy7)`F z0A~OSt)WCqDA@tJ=M1X68O2c$E)stZPQGdg{bfl_aH69t5Sk)e0gpf15g zy~h9+lNk~s$LJnOs=U(kP7EKVk;Xt5b@LWyj7hxarL1S8AcJ9P*Yrx>%)DBOgjO_>SUOo zP3})bfwk9TBGLX>jh*$r0y9@1GxtuiPvCP{zM+|ihQ|j>4BO>Ho=@%R!QdN+*(tM| zh^H_$+WN4`X#_%98XveIsz^-f+@CS$ngQvMh`EHB0UAd&}F5Ebbpy zcojWB_AwBtY7V}UXf+e95Oii}3L)))?4f1GQHR;Gd}2w8b-szrZ{Le6g4qhf{i+c- zK3ac=T~RD?uIg12)4`UI4g`L-jf2tiHBEQ)wQX{i=jQ8Z8vZ+sI=+orAT#tw+8bC0 z=NBm5RaWB0fwM6+jjSux;wD~VVcZY=OvlC7Q>o3YHzHE?;@cUA$;D=Ar(<1n*FcN} zQca)#-gQGUFKL6xbyzgDJ+abva5+)h?qysmbvfpQB)2yO#Jacy8ut62r3Wose@{(E z%A9JE!6%%oE0X>9BdM$#j*$}r84D>1llL^M!btnwl`Z~APt8r8@Vb`mMo9AU>EmqA zPlDzCmtBHJWQvDV&bCvBdYFS3Ziy3|wb_CMhby=^#plxEd(7cjs#q}+Q);E;-Q>nm kdF4|z%CTgn;Y&CB6wUoAemcCBIf1dQRSB{*)nJGI1Lmzm*8l(j diff --git a/modules/editor/skins/msword2007/images/editor_btn_sup.gif b/modules/editor/skins/msword2007/images/editor_btn_sup.gif deleted file mode 100644 index a1547ac48ddc8169a012ed448af3d1eaf87cd3d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmc(e{Xf%r0KgZeRqoOQDjarVBDd?|%B#B2D^0F$my&R`R_7KudZ34My^Q4{@~|cD zJbYO!B{Ae7zKnU8ZM3nO80KMU%w{u_r_Wt~#l2teKj8h#`;>?KVdtx+2seZdfuP1F zTJ5mHVR0@#xwud!?mizEDRsf;rstNY8$A*^$pwLY4jJ{Q@w!$gKC{ znN`xFgRPmnW*ZJzyB~@#ru>>tFG@>!Cf<9q*Ru8_Aw>@!Q(VmkFv3Q zx<#zwNVNQ6T{?{+kj{x^3tdu8-^9YGVkxUe0@V(}LRGCmQS)J{x>MdDQZYrU29dJ9 zd%BMQi78avCsW%8=9@$ccE6_e<1BY@zGG;u9oI=d zeU_`28$>hpLIvCY@xRO|EMB)M)n=HD^^fRFvYp zG+nziUAL@ct!Vook|W?_A<|yJ_W=CUA->i?a25!DhN2IGZg0?ikwN_tA|ENCxB?L# zh_1qrX9*Px#DPE@1m}5yzHrcY4~!&(krXgW1!EaNmIGuEn8;t06)wtN0eRWt0k}g)G{n@2?C+z*o zuvu6Jt;N=xPL!}2FWSs}OXJKv%JMyIFVG78+bIPky{~+nT-EvXj?BZm&8u&)*vXJf zv_V*@)D^euL^%4wqM@%|!A9CI{jPWya={Tivb{0QVfzie9k^8Q4i9m;^S-r>jg`Ts zYp&8SEb%Ly{0vR8lLMYj3I50keQGa`96QWHv%QPxqovna`@Iu0j_zEO5oqn^XyRI< zLGCm;9cN;Z>$^^1Y?6HWS2z7FmZjIYIcJWvrhZd>XKJvcKYHUfX7nb@vvvBLtk_hC zE1h-jlx_SMp3qqfGR35~JZPx%*y9AHl$8K1L3Y$<&184cp=3I|q*IMn9rvQwuPiNS zpzo>l1^^HSL<6&+?L;XFY0Gvu4?Qp`jow_}+!%ceuZ}U>5m1;HbHzMm*et`}t=-1v zIgt=gaKyOBKl3Me*rYTgJ-qUp?>{-8a^9GfnCe5pTHIOde99948wz>pHuBYVi+D8Q zlm*W1qk;cz!4_FsSZ^L1^*}l-OAlm+wWVKw_;(vBQN?KcCukSV=itLq`-yKNFkM)y z$gvGcW*jtyH z%6LCaO_y`uq7)TE@1Wue?)4%?r6fFa?|x~F!%X#9R1vRcl3q0Pe!_NirdHMJP*U3_ z3{t`i^=lFJt#eb#287utZw*5KnyL|LC*kR_ZFpRk(V>$(RtvTzA<5|YO>V3CCjA}^ zoMLR)W)l*@ZATBOH>Qb%6g9VM45i`it3{bQ9hh*`I33m1C43hmAJOn@*@QVkgTKKh z$Ap&KbKUOUD6O!d1EqCLI8*#iSbSHZ72{(E-tD=b9z6e%NPWubyIG}}?+<#3(n;=$ ngR3O;v0~j|gw8noo_*wcrv)ilzmqc@XZLntBzFB;#F2ji?EOpR diff --git a/modules/editor/skins/msword2007/images/editor_btn_u.gif b/modules/editor/skins/msword2007/images/editor_btn_u.gif deleted file mode 100644 index cd5e11f67b5e908b04a27218cb59705e23df9056..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1629 zcmcJO|3A}t0LNFB@4C9KR4BI8$}V4%x~}HiMv=o!-Q`gk$s*U6#W`Kqs4PbLl3NkR zifpt^u^1mMWrj2PvK{lS8QK>MG2imOyFcPykLM51pPs+HaK2c#17YSc510-HGd24v zuV%Q2KZ?NyxZ{3E$|yV){)?w?Q1{5^&cUgO*z0e4wOK_~ry?%B?oyZ6ir-2;5wG5K z#|2=p$3?PP@rX{Mn14S!(>FdZ*DU3~k`>ksQu8WrP#^QfAMX`#8oM>QPk6BjDJ=tY zf*ws~A?JPp`{(djN7qBb{+V}wPqAP3X49)$2j^%{c`gTz#Ka}F56!j9wBn&@$=H0i ze719VS~@o0J31#F)5$(AD5sYXd;4Q>0iH*LS_eP34$jb?R;T0?i)5dqV{;P4=V9gS z7R&9PM*~r42hqTkuzylAHrqQo-6Nj@3vDa9o|T0UD~k%SG_f)({xU6E(G5A-+b*f= zN*`ap{d@S5njd`p@Ur&Jm)SljZyzOgClLEUd9Ey~Bi?&6=n=}9|WDp@!nfO zX8;~+2^C;KS4cbo1-eeehohlF9OyY)o`J#RtU*uMK#ik7FuUuJp`7RFv~TktsK5!dZNMh3DZFq8&{s9+=qj647nOrYWcO~ZOKIH0O!;NeSI5e}o1VPDjvRfvWGl_87$bn&DlHptz0Y#0{Xp3QDw! z_y2m}9sX)Aby1bIm44;N65U2g=#yP4w;T9lLaQ$o?8G8jra?2K3k z*rx&KG~h-pb1t^!Mvgzd2>U;W{xAOD7hr|}re|pB!!B|sWAjm=LN?uVmw&ELz7MDP zt*!T+D4CE`(rn|GL$UPbGJI{lZkC0%aGxBrK5#>rZ=`p(eTT;lxVux;c={$xvhlT% zk~M*JcOvzq=mn9Yhb(YCcTn$E5A);^Qy6`t3cqEWAl0hhoouic_A6zx%7&a=b4k7} zA)4S3%5(LZ7^u@V8P(hV_Gut7j6Cwj#F+1JiAIJurL4!${9d^y8|2uqt?xg)Vz#l! zGi_}>LJ%c(3n~jqFMg?#RGeT|W9ZeIe%{sK#&sn%+M&keW^o{$HzgNlpO9wKU(Jk* zOU{ci^|iAq=`$1QU-fl5ZGR~RY!7JQCrkwum7VEms88G-SSBnCfEvD_LdqwGIw0r| zyVE3_;hXSHQAOrCG32*NCKq16O+FDpUb7?Afj7J<$8XvPX&EP_BdIQ{i&N4MIo;in zYF+#x)oxpsA!09=LP2D~2-wYTV>G#W#I4sQ8DX?lKGx@HVWXM2j8%8G5GWpZ49{&& zz*;ARTqSBQ#r*dVN!DFL&?8 zSzUWiG_bj&rZ*QQk7YJn-BOa9ZSN{MDK>@6oz0A#kb}>*Uq89nyelm#tEKeeS%k8T zk!oDNGwr6JWhbjzsbp4O0jrOq3P=Q11#c{sxr^=MHw9tu-)ggcomj)jX# zT_wi$qxW=&L~CA3gO=K>WpOG^O@9({k~f+gUCA3{Fehu()p@b|KfSZl@;?h&+v{a9 zCEAANxjM53DID$KD)}*-?b>@b+kc;)3A+8wIvm>HrQ0u*)ASxw;^@*5!{<1+WAwQ1 zI!LU`_NY?U6??u~z-_hDA==sma8KuU2!^EEcbOtR99%nM+QeSw7fl^K&972BJ)Pw) z&aH3&Yf?KiyadO^}$lT`6nr%AX?(=R2pjEZA>iT#AuZ!f5VO!gAT1#x|> z(F)yQ;&YE;?3I=I%VZ111 bZ~?{mGj{P~S$2U)$*P%LR51yC+6J diff --git a/modules/editor/skins/msword2007/images/editor_btn_ul.gif b/modules/editor/skins/msword2007/images/editor_btn_ul.gif deleted file mode 100644 index 5e136ffc479f07f99a82b746a0f1c815c81af323..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1626 zcmbu8{a?~|0>Hm*rq(&P%5z=!x|?M)Ej3ds-D=0yll8ju+}f_XdNo}ec}+X7yH1zA zCb}e+BKVNu10WB&CO!cw5Gr592Sh*=5hN85R0ITk0>Scg+uv~S*ZbG^kM9c?&nG0N zy$gK;xgjVdCMzTXm68R2kKQnE1cgOaYir@~s+B$1_|ai>!-`qZ2{D(7VlM_<=v zA~Z{@Tjd6e+p@fw{Y;o!-S@CYlt&uOBMlT#hS2r0LYkzgaST&0!?#RSuqI2J$M8*~ zIEJE>~BDXu=^>+WOT_$<(^S;2zbl>8)O!#baFB z)LYyJi_2tl->(#WSJj(C5a!nOeNP%Jpi1({0|nF}bb}n%qAF?}!8VN+|17UyPvTpY zB@6|DGhN=MDrc%nTgGrriYm_ZQn*N%`v&H@jNGknmly>qd(Ze%_n2jPW^H(8 zbwINunR4o^9^K-a$?lo8xfh&X%gUx?dRhF^K5kr58JDLP*94;eZnztGq+4#)mS=X$ zI|nw+Tk8s5b3U)FA{#jR zUO6PMmKCp8RbVO~OcelK5zrL_Lj^EAC1P&@GXq$;V5tYNe-HXn0RJ3-|4hVx2ii~P zBG3I)f&|U6fPI=*l@3UM0Q7KBAI>Yi0kGQv))$ocg0cWm83djMf$C6D6ABv7gOH({*Y?*JAb$WE680vw z)d_zH#A80~YomxBzYT(}J$g>vCE_HRCG#j!IkDi;YX& z6@-8~nu)?J2IuVYi9vB%b%O9L&DAs9HiPJ~&|D{?GL3`y z{dvp~Vc|Fa0U=jsq`cJ~?;Y1-kRcGt%>Ce8k&BfUSfkzr1?2pN-4#^?M~ z7lHP9aHfm9Y#ba6FWpAttu81it#xH+^tx5UzKtstKXE(sq9VZAy^!x&H7gl;(EB*L z+i4trCaAwiPr|KObt7Nq9gKVr5j%wP2~JPV$A4}RzF!$HPTE!+A8vTG=VpPQUu_1J za(y4QvK(EL69n?nxplVh}@g z0`f`3VJ6BcifN>m?feIXIo$BPF@Sy6uVbzEH%FgBpiatYpSbkx(T-F5eU1q>X05HT zuhn|AuQ>JWF(E{=v7{#$88Q9%ceY1!;jflDG|1ej=)d2{M~CXsN9n-e(f@si&wXLvqWLA$xQs|V zlV*^ZT3vmzJW*4UNgP??%iM+y~S&3Vw27xpb!5C-_gLP diff --git a/modules/editor/skins/msword2007/images/lineTextAreaDrag.gif b/modules/editor/skins/msword2007/images/lineTextAreaDrag.gif deleted file mode 100644 index b8116ecd72c1209489bd75ee81b31cc2ce6691b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46 ycmZ?wbhEHbWMN=oXkcLYf5G$r|Nn|VSr{1@7#VaJfB+=Jz{J`jxUw>U!5RP|SPJ6+ diff --git a/modules/editor/skins/msword2007/images/select_dot.gif b/modules/editor/skins/msword2007/images/select_dot.gif deleted file mode 100644 index ceda644e32108e12f4890200c6e732dd917ca992..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49 zcmZ?wbhEHbWMSZAXkcJS?%ehN|9{1wEQ|~cj0`#qKmd|qVB+ZMUwL{jgAXHvH2^)k B3>p9c diff --git a/modules/editor/skins/msword2007/js/editor.js b/modules/editor/skins/msword2007/js/editor.js deleted file mode 100644 index 128b4a9b1..000000000 --- a/modules/editor/skins/msword2007/js/editor.js +++ /dev/null @@ -1,10 +0,0 @@ -// Editor Option Button -function eOptionOver2(obj) { - obj.style.marginTop='-22px'; - obj.style.zIndex='99'; -} - -function eOptionClick2(obj) { - obj.style.marginTop='-44px'; - obj.style.zIndex='99'; -} diff --git a/modules/editor/skins/msword2007/skin.xml b/modules/editor/skins/msword2007/skin.xml deleted file mode 100644 index 26be0224a..000000000 --- a/modules/editor/skins/msword2007/skin.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - MS Word 2007 테마 - MS Word 2007 テーマ - MS Word 2007样式皮肤 - MS Word 2007樣式面板 - MS Word 2007 테마입니다. - MS Word 2007 テーマです。 - MS Word 2007样式皮肤。 - MS Word 2007樣式。 - 0.1 - 2007-09-10 - - - Simulz - Simulz - Simulz - Simulz - - From dc23f806be35487564303aedd474af0ab973b590 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 07:36:16 +0000 Subject: [PATCH 010/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=88=98=EC=A0=95=20::=20homepage=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88?= 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@5007 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/homepage/lang/jp.lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/homepage/lang/jp.lang.php b/modules/homepage/lang/jp.lang.php index bd7b53170..ac71737ba 100644 --- a/modules/homepage/lang/jp.lang.php +++ b/modules/homepage/lang/jp.lang.php @@ -34,7 +34,7 @@ ), 'menu' => array( 'first' => '基本メニュー', - 'second' => '`フッターメニュー', + 'second' => 'フッターメニュー', ), 'widget' => array( 'download_rank' => 'ダウンロードランキング', From 279e2ea8656e61bcab3ea55c10ce2bb1c9729fe5 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 08:12:42 +0000 Subject: [PATCH 011/135] =?UTF-8?q?1.=EC=96=B8=EC=96=B4=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EB=82=B4=20=EC=9A=A9=EC=96=B4=20=ED=86=B5=EC=9D=BC=20:=20?= =?UTF-8?q?=E3=82=BC=E3=83=AD=E3=83=9C=E3=83=BC=E3=83=89XE,ZBXE,=E3=82=BC?= =?UTF-8?q?=E3=83=AD=E3=83=9C=E3=83=BC=E3=83=89=20->=20XE=20//=202.?= =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EC=96=B8=EC=96=B4=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EB=82=B4=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20=EC=A7=80?= =?UTF-8?q?=EC=A0=95=20=EC=88=98=EC=A0=95=20:=20ko.lang.php=20->=20jp.lang?= =?UTF-8?q?.php?= 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@5008 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/lang/jp.lang.php | 6 +++--- layouts/xe_blog/conf/info.xml | 4 ++-- layouts/xe_official/conf/info.xml | 18 +++++++++--------- modules/admin/lang/jp.lang.php | 10 +++++----- modules/board/lang/jp.lang.php | 2 +- modules/counter/lang/jp.lang.php | 2 +- .../components/quotation/lang/jp.lang.php | 2 +- modules/importer/lang/jp.lang.php | 8 ++++---- modules/integration_search/lang/jp.lang.php | 2 +- modules/krzip/conf/info.xml | 2 +- modules/layout/lang/jp.lang.php | 4 ++-- modules/lifepod/conf/info.xml | 2 +- modules/lifepod/lang/jp.lang.php | 2 +- modules/menu/lang/jp.lang.php | 2 +- modules/module/lang/jp.lang.php | 2 +- modules/opage/conf/info.xml | 2 +- modules/opage/lang/jp.lang.php | 6 +++--- modules/referer/lang/jp.lang.php | 2 +- modules/spamfilter/conf/info.xml | 2 +- modules/springnote/conf/info.xml | 2 +- modules/springnote/lang/jp.lang.php | 2 +- modules/tccommentnotify/conf/info.xml | 2 +- modules/widget/lang/jp.lang.php | 4 ++-- widgets/image_counter/conf/info.xml | 2 +- 24 files changed, 46 insertions(+), 46 deletions(-) diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index 636f6461c..75b40f254 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -269,13 +269,13 @@ $lang->cmd_check_ftp_connect = 'FTP接続確認'; $lang->about_ftp_info = " FTP情報は次の場合、利用されます。
- 1. PHPの safe_mode=Onになった際、FTP情報を用いてゼロボードXEが正常に動きます。
+ 1. PHPの safe_mode=Onになった際、FTP情報を用いてXEが正常に動きます。
2. 自動アップデート等で、FTP情報が使われます。
FTP情報は files/config/ftp.config.php の中に保存されます。
- また、ゼロボードXEのインストールの後、管理者画面からFTP情報の変更・削除が可能です。
+ また、XEのインストールの後、管理者画面からFTP情報の変更・削除が可能です。
"; - $lang->msg_safe_mode_ftp_needed = "PHPのsafe_modeがOnの場合、FTP情報を登録することで、ゼロボードXEのインストール及び利用が可能になります。"; + $lang->msg_safe_mode_ftp_needed = "PHPのsafe_modeがOnの場合、FTP情報を登録することで、XEのインストール及び利用が可能になります。"; $lang->msg_ftp_not_connected = "localhostへのFTP接続エラーが発生しました。FTPポート(port)番号をはじめ、FTPサービスが可能であるかをご確認下さい。"; $lang->msg_ftp_invalid_auth_info = "ログインが失敗しました。 FTP情報を再度ご確認下さい。"; $lang->msg_ftp_mkdir_fail = "FTPを用いたディレクトリ生成に失敗しました。FTPサーバーの設定を再度ご確認ください。"; diff --git a/layouts/xe_blog/conf/info.xml b/layouts/xe_blog/conf/info.xml index 859810c1e..e3d7f62de 100644 --- a/layouts/xe_blog/conf/info.xml +++ b/layouts/xe_blog/conf/info.xml @@ -1,7 +1,7 @@ XE 블로그 기본 스킨 - ZBXEブログのデフォルトスキン + XEブログのデフォルトスキン XE博客默认皮肤 Default Skin of XE blog Standard-Skin von XE Blog @@ -14,7 +14,7 @@ HTML/CSS : 소지훈 - ゼロボードXEブログの基本スキンです。 + XEブログの基本スキンです。 デザイン:ソギジョン (http://blog.naver.com/addcozy) HTML/CSS : Ju-Hoon So diff --git a/layouts/xe_official/conf/info.xml b/layouts/xe_official/conf/info.xml index 902285e04..55b781aef 100644 --- a/layouts/xe_official/conf/info.xml +++ b/layouts/xe_official/conf/info.xml @@ -1,13 +1,13 @@ - ZBXE 공식 사이트 레이아웃 - ZBXEオフィシャルレイアウト - ZBXE Official website layout - ZBXE Offizielle Website-Layout - ZBXE Официальный сайт макет - Diseño oficial de la página web de ZBXE - ZBXE 官方网站布局 - ZBXE 官方網站版面 + XE 공식 사이트 레이아웃 + XEオフィシャルレイアウト + XE Official website layout + XE Offizielle Website-Layout + XE Официальный сайт макет + Diseño oficial de la página web de XE + XE 官方网站布局 + XE 官方網站版面 XE 공식 사이트 레이아웃입니다. 디자인 : 이소라 @@ -15,7 +15,7 @@ 레이아웃 제작 : zero - ゼロボードXEのオフィシャルサイトのレイアウトです。 + XEのオフィシャルサイトのレイアウトです。 デザイン:イ ソラ パブリシング:ジョン チャンミョン レイアウト作成:Zero diff --git a/modules/admin/lang/jp.lang.php b/modules/admin/lang/jp.lang.php index 8be182ff3..f4848a0f8 100644 --- a/modules/admin/lang/jp.lang.php +++ b/modules/admin/lang/jp.lang.php @@ -44,17 +44,17 @@ $lang->msg_manage_module_cannot_delete = 'モジュール、アドオン、ウィジェットのショットカットは削除できません。'; $lang->msg_default_act_is_null = 'デフォルトの管理者のアクションが指定されていないため、ショットカットを登録することができません。'; - $lang->welcome_to_xe = 'ゼロボードXEの管理者ページです。'; + $lang->welcome_to_xe = 'XEの管理者ページです。'; $lang->about_admin_page = "管理者ページはまだ未完成です。\nクローズベータバージョンの期間に、多くの方々からご意見をいただきながら、必ず必要なコンテンツを埋めていきたいと思います。"; $lang->about_lang_env = "上で設定された言語を、初めてサイトに訪問したユーザに同じく適用させるためには、希望する言語に変更してから「保存」ボタンをクリックしてください。"; - $lang->xe_license = 'ゼロボードXEのライセンスはGPLです。'; + $lang->xe_license = 'XEのライセンスはGPLです。'; $lang->about_shortcut = 'よく使用するモジュールに登録されたショートカットは削除できます。'; $lang->yesterday = "Yesterday"; $lang->today = "Today"; - $lang->cmd_lang_select = "언어선택"; - $lang->about_cmd_lang_select = "선택된 언어들만 서비스 됩니다"; - $lang->about_recompile_cache = "쓸모없어졌거나 잘못된 캐시파일들을 정리할 수 있습니다"; + $lang->cmd_lang_select = "言語選択"; + $lang->about_cmd_lang_select = "選択された言語のみでサービスを行います。"; + $lang->about_recompile_cache = "要らないか誤ったキャッシューファイルを整理します。"; ?> diff --git a/modules/board/lang/jp.lang.php b/modules/board/lang/jp.lang.php index 823fbf47e..b979d5b71 100644 --- a/modules/board/lang/jp.lang.php +++ b/modules/board/lang/jp.lang.php @@ -1,6 +1,6 @@ 翻訳:RisaPapa、ミニミ * @brief 日本語言語パッケージ(基本的な内容のみ) **/ diff --git a/modules/editor/components/quotation/lang/jp.lang.php b/modules/editor/components/quotation/lang/jp.lang.php index 928fc2110..3500cdafb 100644 --- a/modules/editor/components/quotation/lang/jp.lang.php +++ b/modules/editor/components/quotation/lang/jp.lang.php @@ -1,6 +1,6 @@ 翻訳:RisaPapa、ミニミ * @brief ウィジウィグエディター(editor)モジュール > 引用句 (quotation)コンポネント言語パッケージ **/ diff --git a/modules/importer/lang/jp.lang.php b/modules/importer/lang/jp.lang.php index d920f31f1..004ab694b 100644 --- a/modules/importer/lang/jp.lang.php +++ b/modules/importer/lang/jp.lang.php @@ -1,17 +1,17 @@ cmd_sync_member = '同期化'; $lang->cmd_continue = '続ける'; - $lang->preprocessing = '데이터 이전을 위한 사전 준비중입니다.'; + $lang->preprocessing = 'データ移転のため、準備中です。'; // 項目 - $lang->importer = 'ZBデータ変換'; + $lang->importer = 'ZBデータ変換'; $lang->source_type = 'データ変換の対象'; $lang->type_member = '会員情報'; $lang->type_message = 'メッセージ情報'; @@ -52,7 +52,7 @@ $lang->about_ttxml_user_id = 'TTXML移転時に投稿者として指定するユーザIDを入力してください(すでに加入されているIDでなければなりません)。'; $lang->about_type_module = 'データ変換の対象が書き込みデータである場合は選択してください。'; $lang->about_type_syncmember = '会員情報と書き込みデータなどの変換を行った後、会員情報を同期化する必要がある場合は、選択してください。'; - $lang->about_importer = "ゼロボード4、zb5betaまたは他のプログラムの書き込みデータをゼロボードXEのデータに変換することができます。\n変換するためには、XML Exporterを利用して変換したい書き込みデータをXMLファイルで作成してアップロードしてください。"; + $lang->about_importer = "ゼロボード4、zb5betaまたは他のプログラムの書き込みデータをXEのデータに変換することができます。\n変換するためには、XML Exporterを利用して変換したい書き込みデータをXMLファイルで作成してアップロードしてください。"; $lang->about_target_path = "添付ファイルをダウンロードするためには、ゼロボード4がインストールされた場所を入力してください。同じサーバ上にある場合は「/home/ID/public_html/bbs」のように入力し、他のサーバにある場合は、「http://ドメイン/bbs」のようにゼロボードがインストールされているURLを入力してください。"; ?> diff --git a/modules/integration_search/lang/jp.lang.php b/modules/integration_search/lang/jp.lang.php index d2381a9fa..64da850bf 100644 --- a/modules/integration_search/lang/jp.lang.php +++ b/modules/integration_search/lang/jp.lang.php @@ -1,6 +1,6 @@ 翻訳:RisaPapa、ミニミ * @brief 日本語言語パッケージ(基本的な内容のみう) **/ diff --git a/modules/krzip/conf/info.xml b/modules/krzip/conf/info.xml index 7db900c6c..dcab5e577 100644 --- a/modules/krzip/conf/info.xml +++ b/modules/krzip/conf/info.xml @@ -24,7 +24,7 @@ 通过设置可以修改邮编搜索服务器。 - ゼロボードで運用している郵便番号サーバを利用して韓国の郵便番号を検索します。 + XEで運用している郵便番号サーバを利用して韓国の郵便番号を検索します。 郵便番号検索サーバは設定によって変更することができます。 diff --git a/modules/layout/lang/jp.lang.php b/modules/layout/lang/jp.lang.php index fbc4d6dca..659f1b853 100644 --- a/modules/layout/lang/jp.lang.php +++ b/modules/layout/lang/jp.lang.php @@ -1,6 +1,6 @@ 翻訳:RisaPapa * @brief レイアウト(layout)モジュールの基本言語パッケージ **/ @@ -29,5 +29,5 @@ $lang->about_layout_code = "下のレイアウトコードを修正して保存するとサービスに反映されます。 必ずプレビューで確認した上で保存してください。 - ゼロボードXEのテンプレート文法はゼロボードXEテンプレートを参考してください。"; + XEのテンプレート文法はXEテンプレートを参考してください。"; ?> diff --git a/modules/lifepod/conf/info.xml b/modules/lifepod/conf/info.xml index f3c02f848..49655047a 100644 --- a/modules/lifepod/conf/info.xml +++ b/modules/lifepod/conf/info.xml @@ -11,7 +11,7 @@ Este módulo muestra calendario de lifepod. 把Lifepod日历连接到zbXE的模块。 This module displays calendar from lifepod. - (Openmaru社提供の)LifepodサービスのカレンダーをゼロボードXEに連動して出力するモジュールです。 + (Openmaru社提供の)LifepodサービスのカレンダーをXEに連動して出力するモジュールです。 Этот модуль отображает календать с lifepod'а. 將 Lifepod日曆連結到 XE中的模組。 0.12 diff --git a/modules/lifepod/lang/jp.lang.php b/modules/lifepod/lang/jp.lang.php index 8cb297d59..0ef5a781b 100644 --- a/modules/lifepod/lang/jp.lang.php +++ b/modules/lifepod/lang/jp.lang.php @@ -11,5 +11,5 @@ $lang->cmd_lifepod_list = 'ライフポッドリスト'; $lang->cmd_view_info = 'ライフポッド情報'; - $lang->about_lifepod = "ライフポッド(Lifepod)はOpenmaru社が提供しているカレンダーサービスです。
ライフポッドゼロボードXEモジュールでライフポッドの特定カレンダーを内部ページのように閲覧が出来るようにします。"; + $lang->about_lifepod = "ライフポッド(Lifepod)はOpenmaru社が提供しているカレンダーサービスです。
ライフポッドXEモジュールでライフポッドの特定カレンダーを内部ページのように閲覧が出来るようにします。"; ?> diff --git a/modules/menu/lang/jp.lang.php b/modules/menu/lang/jp.lang.php index ace4fb13d..cbb44eea8 100644 --- a/modules/menu/lang/jp.lang.php +++ b/modules/menu/lang/jp.lang.php @@ -1,6 +1,6 @@ 翻訳:RisaPapa、liahona * @brief メニュー(menu)モジュールの基本言語パッケージ **/ diff --git a/modules/module/lang/jp.lang.php b/modules/module/lang/jp.lang.php index 85f3c99d0..4da7f9cb5 100644 --- a/modules/module/lang/jp.lang.php +++ b/modules/module/lang/jp.lang.php @@ -61,7 +61,7 @@ $lang->about_page_count = 'リストの下段に移動できるページのリンク数が指定できます(デフォルト10個)。'; $lang->about_admin_id = '該当するモジュールに対して最高権限を持つ管理者を指定することができます。「,(コンマ)」で区切って多数のIDが指定できます(管理者ページへのアクセスはできません)。'; $lang->about_grant = '特定権限の対象をすべて解除するとログインしていない会員ユーザまで権限が与えられます。'; - $lang->about_module = "ゼロボードXEは、基本ライブラリの他は、すべてモジュールで構成されています。モジュール管理用のモジュールはインストールされたすべてを表示し、管理できるようにします。"; + $lang->about_module = "XEは、基本ライブラリの他は、すべてモジュールで構成されています。モジュール管理用のモジュールはインストールされたすべてを表示し、管理できるようにします。"; $lang->about_extra_vars_default_value = '多重・単一選択などのデフォルト値が、複数必要な場合は、「, (コンマ)」で区切って追加することができます。'; ?> diff --git a/modules/opage/conf/info.xml b/modules/opage/conf/info.xml index 59a831137..d3b6e4dc6 100644 --- a/modules/opage/conf/info.xml +++ b/modules/opage/conf/info.xml @@ -9,7 +9,7 @@ 外部頁面 외부페이지를 XE내부로 삽입시키는 모듈 可以把外部页面插入到 Zeroboard XE内部的模块。 - 外部ページをゼロボードXE内部に挿入させるモジュール + 外部ページをXE内部に挿入させるモジュール Module for inserting external pages into inside of Zeroboard XE. 외부페이지를 XE내부로 삽입시키는 모듈 Модуль для вставки внешних страниц внутрь Zeroboard XE. diff --git a/modules/opage/lang/jp.lang.php b/modules/opage/lang/jp.lang.php index 1f35c207a..90a9dabfd 100644 --- a/modules/opage/lang/jp.lang.php +++ b/modules/opage/lang/jp.lang.php @@ -1,6 +1,6 @@ opage_path = "外部ドキュメントの場所"; $lang->opage_caching_interval = "キャッシング時間設定"; - $lang->about_opage = "外部のHTMLまたはPHPファイルをゼロボードXE内部で使用できるようにするモジュールです。
絶対パス、相対パスで指定でき、「http://」で始まるサーバの外部ページも表示できます。"; - $lang->about_opage_path= "外部ドキュメントの場所を入力してください。
「/path1/path2/sample.php」のような絶対パス、「../path2/sample.php」のような相対パスが使用できます。
「http://URL/sample.php」のように使用すると結果を読み込んで表示します。
現在ゼロボードXEがインストールされている絶対パスは次のようになっています。
"; + $lang->about_opage = "外部のHTMLまたはPHPファイルをXE内部で使用できるようにするモジュールです。
絶対パス、相対パスで指定でき、「http://」で始まるサーバの外部ページも表示できます。"; + $lang->about_opage_path= "外部ドキュメントの場所を入力してください。
「/path1/path2/sample.php」のような絶対パス、「../path2/sample.php」のような相対パスが使用できます。
「http://URL/sample.php」のように使用すると結果を読み込んで表示します。
現在XEがインストールされている絶対パスは次のようになっています。
"; $lang->about_opage_caching_interval = "分単位で指定でき、設定された時間の間は、臨時保存されたデータを出力します。
他のサーバの情報を出力したり、データを出力する際、リソースが多く使われるため、数分単位でキャッシングすることをお勧めします。
「0」に指定するとキャッシングされません。"; ?> diff --git a/modules/referer/lang/jp.lang.php b/modules/referer/lang/jp.lang.php index 92db4a788..a1593194d 100644 --- a/modules/referer/lang/jp.lang.php +++ b/modules/referer/lang/jp.lang.php @@ -1,6 +1,6 @@ * @brief 日本語言語パッケージ 翻訳:RisaPapa */ diff --git a/modules/spamfilter/conf/info.xml b/modules/spamfilter/conf/info.xml index 4e09a1aae..a5b8b9ce6 100644 --- a/modules/spamfilter/conf/info.xml +++ b/modules/spamfilter/conf/info.xml @@ -11,7 +11,7 @@ XE的基本垃圾过滤模块。 A default spam filter of XE. Filtro de Span predefinido de XE. - ゼロボードXEのスパムフィルターです。 + XEのスパムフィルターです。 Стандартный фильтр спама XE. XE的基本垃圾過濾模組。 0.1 diff --git a/modules/springnote/conf/info.xml b/modules/springnote/conf/info.xml index 899e7f4eb..3bee1b166 100644 --- a/modules/springnote/conf/info.xml +++ b/modules/springnote/conf/info.xml @@ -8,7 +8,7 @@ Спрингноут Springnote API 스프링노트의 페이지를 XE에서 연동하여 출력하는 기능을 가지고 있는 모듈입니다. - スプリングノートのページをゼロボードXEと連動させて出力する機能のモジュールです。 + スプリングノートのページをXEと連動させて出力する機能のモジュールです。 把Springnote网站页面整合到XE的模块。 This modules links pages of Springnote with XE, and display them. Esta módulos de enlaces de páginas Springnote con XE, y lo muestra. diff --git a/modules/springnote/lang/jp.lang.php b/modules/springnote/lang/jp.lang.php index c9c9ed502..8f17b3a90 100644 --- a/modules/springnote/lang/jp.lang.php +++ b/modules/springnote/lang/jp.lang.php @@ -1,6 +1,6 @@ haneul 본문에 대한 댓글알림 추가 - zbXE 기본패키지에 추가 + XE 기본패키지에 추가 diff --git a/modules/widget/lang/jp.lang.php b/modules/widget/lang/jp.lang.php index 37ae47b38..b8a605fe7 100644 --- a/modules/widget/lang/jp.lang.php +++ b/modules/widget/lang/jp.lang.php @@ -1,6 +1,6 @@ 翻訳:RisaPapa * @brief ウィジェット(widget)モジュール基本言語パッケージ **/ @@ -40,7 +40,7 @@ $lang->about_widget_code = '選択されたウィゼットで求められる下の項目の値を入力し、「コード生成」ボタンをクリックすると、
一番下にテンプレートファイルに適用できるコードが出力されます。'; $lang->about_widget_code_in_page = '下に必要な値を入力した後、追加ボタンをクリックするとページ内にウィジェットが挿入されます。'; - $lang->about_widget = "ウィジェットまたはページモジュールに用いられる小単位の構成要素です。内部モジュールまたは外部の OPEN API と連動でき、設定によって様々な応用が利きます。ゼロボードXEのページモジュールまたはレイアウトモジュールを使用しなくても、「コード生成」機能で直接ウィジェットも追加できます。"; + $lang->about_widget = "ウィジェットまたはページモジュールに用いられる小単位の構成要素です。内部モジュールまたは外部の OPEN API と連動でき、設定によって様々な応用が利きます。XEのページモジュールまたはレイアウトモジュールを使用しなくても、「コード生成」機能で直接ウィジェットも追加できます。"; $lang->cmd_content_insert = "内容直接追加"; $lang->cmd_box_widget_insert = "ボックスウィジェット追加"; diff --git a/widgets/image_counter/conf/info.xml b/widgets/image_counter/conf/info.xml index a35324b12..454ac9318 100644 --- a/widgets/image_counter/conf/info.xml +++ b/widgets/image_counter/conf/info.xml @@ -18,7 +18,7 @@ 因程序需要自动画出图像所以服务器段必须得安装有GD库。
- ゼロボードXEのデフォルトカウンターをブログまたはサイトに挿入し、小さいグラフで表示します。 + XEのデフォルトカウンターをブログまたはサイトに挿入し、小さいグラフで表示します。 大きさ、背景色などの条件を設定しないとデフォルトの設定が適用されます。 グラフを出力するためには、GDライブラリが必要です。 From 2db59eb24beed789286c24d093553594433e0bfc Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 27 Nov 2008 09:17:18 +0000 Subject: [PATCH 012/135] =?UTF-8?q?17494799=20*=20=EC=85=80=EB=A0=89?= =?UTF-8?q?=ED=8A=B8=EB=B0=95=EC=8A=A4=EC=9D=98=20=ED=81=AC=EA=B8=B0?= =?UTF-8?q?=EB=A5=BC=20=EB=8A=98=EB=A6=BC?= 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@5009 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/document/tpl/checked_list.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/document/tpl/checked_list.html b/modules/document/tpl/checked_list.html index c4fa9bcb3..397c75420 100644 --- a/modules/document/tpl/checked_list.html +++ b/modules/document/tpl/checked_list.html @@ -29,7 +29,7 @@
{$lang->move_target_module}
- @@ -46,7 +46,7 @@
{$lang->category}
- From 5c7737ecd04fe0ab1e8d57d709a2d3f4f9fae5e6 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 09:33:37 +0000 Subject: [PATCH 013/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EB=B6=80=EB=B6=84=20=EC=88=98=EC=A0=95?= 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@5010 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/lang/jp.lang.php | 1 - modules/homepage/lang/jp.lang.php | 8 ++++---- modules/importer/lang/jp.lang.php | 4 ++-- modules/install/lang/jp.lang.php | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index 75b40f254..0295ec2c7 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -282,7 +282,6 @@ $lang->msg_ftp_chmod_fail = "FTPを用いたディレクトリパーミッション(permission)変更に失敗しました。FTPサーバーの設定を再度ご確認ください。"; $lang->msg_ftp_connect_success = "FTP接続に成功しました。"; - // xml filterで用いられているjavascript用のアラートメッセージ $lang->filter->isnull = '%sを入力して下さい。'; $lang->filter->outofrange = '%sの文字の長さを合わせて下さい。'; diff --git a/modules/homepage/lang/jp.lang.php b/modules/homepage/lang/jp.lang.php index ac71737ba..b617e5ebd 100644 --- a/modules/homepage/lang/jp.lang.php +++ b/modules/homepage/lang/jp.lang.php @@ -8,7 +8,7 @@ $lang->homepage = "ホームページ"; $lang->homepage_title = "ホームページ名"; $lang->domain = "ドメイン"; - $lang->module_type = "ターゲット"; // 20081127 ミニミ:検討必要 + $lang->module_type = "タイプ"; $lang->board = "掲示板"; $lang->page = "ページ"; $lang->url = "URL"; @@ -69,14 +69,14 @@ ); $lang->about_homepage = "ホームページサービス管理者は複数のホームページ作成、および各ホームページを簡単に管理が出来ます。"; $lang->about_homepage_title = "ホームページ名は管理のためのみ使われ、実サービスには表示されません。"; - $lang->about_domain = "複数のホームページを作成するためには、専用のドメインが必要です。オリジナルドメインやサブ ドメインがあれば結構です。
また、 XEインストール経路も一緒に記入してください。
ex) www.zeroboard.com/zbxe"; + $lang->about_domain = "複数のホームページを作成するためには、専用のドメインが必要です。オリジナルドメインやサブ ドメインがあれば結構です。
また、 XEインストールパスも一緒に記入してください。
ex) www.zeroboard.com/zbxe"; $lang->about_menu_names = "ホームページに使うメニュー名を言語別に指定出来ます。
一個だけ記入した場合、他言語に一括適用されます。"; $lang->about_menu_option = "メニューを選択するとき新しいウィンドウズに開けるかを選択します。
拡張メニューはレイアウトによって動作します。"; $lang->about_group_grant = "選択グループのみ、メニューが見えます。
全てを解除すると非会員にも見えます。"; - $lang->about_module_type = "掲示板、ページはモジュールを生成し、URLはリンクの情報のみ要ります。
一度作成した後、変更は出来ません。"; // 20081127 ミニミ:検討必要 + $lang->about_module_type = "掲示板、ページはモジュールを生成し、URLはリンクの情報のみ要ります。
一度作成した後、変更は出来ません。"; $lang->about_browser_title = "メニューにアクセスした時、ブラウザーのタイトルです。"; $lang->about_module_id = "掲示板、ページなどにリンクさせるアドレスです。
例) http://ドメイン/[モジュールID], http://ドメイン/?mid=[モジュールID]"; - $lang->about_menu_item_url = "ターゲットをURLにした場合、リンク先を入れて下さい。
http://は省いて入力して下さい。"; // 20081127 ミニミ:検討必要 + $lang->about_menu_item_url = "タイプをURLにした場合、リンク先を入れて下さい。
http://は省いて入力して下さい。"; $lang->about_menu_image_button = "テキストのメニュー名の代わりに、イメージのメニューを使えます。"; $lang->about_homepage_delete = "ホームページを削除すると、リンクされている全てのモジュール(掲示板、ページなど)とそれに付随する書き込みが削除されます。
ご注意ください。"; $lang->about_homepage_admin = "ホームページ管理者の設定が出来ます。
ホームページ管理者は 「 http://ドメイン/?module=homepage 」 として管理者ページにアクセスが出来ます。
存在しない会員は管理者に登録できません。"; diff --git a/modules/importer/lang/jp.lang.php b/modules/importer/lang/jp.lang.php index 004ab694b..1d2c0b7c2 100644 --- a/modules/importer/lang/jp.lang.php +++ b/modules/importer/lang/jp.lang.php @@ -22,7 +22,7 @@ $lang->xml_file = 'XMLファイル'; $lang->import_step_title = array( - 1 => 'Step 1. 以前対象選択', + 1 => 'Step 1. 移転先を選択', 12 => 'Step 1-2. 対象モジュール選択', 13 => 'Step 1-3. 対象カテゴリ選択', 2 => 'Step 2. XMLファイルアップロード', @@ -33,7 +33,7 @@ 1 => '変換するXMLファイルの種類を選択してください。', 12 => 'データ変換を行う対象モジュールを選択してください。', 13 => 'データ変換を行う対象カテゴリを選択してください。', - 2 => "データ変換を行うXMLファイルパスを入力してください。同じアカウントのサーバ上では、相対または絶対パスを、異なるサーバにアップロードされている場合は、「http://アドレス..」を入力してください。", + 2 => "データ変換を行うXMLファイルパスを入力してください。同じアカウントのサーバ上では、相対または絶対パスを、異なるサーバにアップロードされている場合は「http://アドレス..」を入力してください。", 3 => '会員情報と書き込みデータの情報の変換を行った後、データが合わない場合があります。この時に同期化を行うと「user_id」をもとに正しく動作するようにします。', ); diff --git a/modules/install/lang/jp.lang.php b/modules/install/lang/jp.lang.php index d307609df..d8d4cc696 100644 --- a/modules/install/lang/jp.lang.php +++ b/modules/install/lang/jp.lang.php @@ -226,7 +226,7 @@ EndOfLicense; $lang->cmd_agree_license = 'ライセンスに同意します。'; $lang->cmd_install_fix_checklist = 'インストールするための必須条件を設定しました。'; $lang->cmd_install_next = 'インストールを続けます。'; - $lang->cmd_ignore = 'Ignore'; + $lang->cmd_ignore = '無視'; $lang->db_desc = array( 'mysql' => 'MySQL DBで PHPの「mysql*()」関数を利用してデータの入出力を行います。
DBは「myisam」タイプで作成されるため、トランザクション処理はできません。', From 1e302242a418aa4a31f4b64461e498fa3049f2b4 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 10:40:00 +0000 Subject: [PATCH 014/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=20:=20=EB=AA=A8=EB=93=88=20:=20=ED=94=8C=EB=9E=98=EB=8B=9B=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8?= 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@5011 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/planet/conf/info.xml | 4 + modules/planet/lang/jp.lang.php | 109 +++++++++++++----------- modules/planet/skins/xe_planet/skin.xml | 14 +++ 3 files changed, 75 insertions(+), 52 deletions(-) diff --git a/modules/planet/conf/info.xml b/modules/planet/conf/info.xml index 4434174c3..0ab812a02 100644 --- a/modules/planet/conf/info.xml +++ b/modules/planet/conf/info.xml @@ -4,10 +4,12 @@ Planet 微博 微型部落格 + プラネット Microblog입니다. Microblog Package. XE微博(Microblog)模块。 微型部落格模組。 + Microblogパッケージ 0.1 2008-09-30 package @@ -16,11 +18,13 @@ sol sol sol + sol zero zero zero zero + zero diff --git a/modules/planet/lang/jp.lang.php b/modules/planet/lang/jp.lang.php index bd1d6658f..6133b4913 100644 --- a/modules/planet/lang/jp.lang.php +++ b/modules/planet/lang/jp.lang.php @@ -1,8 +1,7 @@ planet_reply_content = "プラネットのコメント内容"; - $lang->about_planet = "microBlogのXEモジュールです。会員別のプラネットを作成して運営することができます。"; + $lang->about_planet = + "microBlogのXEモジュールです。会員別のプラネットを作成して運営することが出来ます。 + ホームページパッケージで登録されているドメインからプラネットへアクセス出来ない場合もあります。 + プラネットを初期ページとして利用する場合は、ホームページパッケージで登録されているドメインと異なるドメインを登録してください。"; - $lang->planet_mid = "プラネット接続アドレス"; - $lang->about_planet_mid = "プラネット接続アドレスは「http://XEアドレス/プラネット接続アドレス」のようにダイレクトで接続できるアドレスを指します。"; + $lang->planet_mid = "プラネットアクセスアドレス"; + $lang->about_planet_mid = "プラネットアクセスアドレスは「http://XEアドレス/プラネットアクセスアドレス」のようにダイレクトで接続できるアドレスを指します。"; $lang->planet_default_skin = "プラネット基本スキン"; $lang->about_planet_default_skin = "プラネットメインページ及び作成されたプラネットの基本スキンに設定されます。"; - $lang->planet_comment = "プラネットひと言紹介"; - $lang->about_planet_comment = "プラネットひと言紹介はプラネットに接続した時ブラウザのタイトル及びプラネットのひと言紹介欄に表示される内容です。"; + $lang->planet_comment = "プラネット簡単紹介"; + $lang->about_planet_comment = "プラネット簡単紹介はプラネットに接続した時ブラウザのタイトル及びプラネットの簡単紹介欄に表示される内容です。"; $lang->use_signup = "会員登録ボタン表示"; $lang->about_use_signup = "会員登録ボタン表示を選択するとプラネットの上段メニュに会員登録ができるボタンが表示されます。"; @@ -41,7 +43,7 @@ $lang->cmd_planet_list = "プラネットリスト"; $lang->msg_not_logged = "ログインしていません。"; - $lang->msg_planet_exists = "既に作成したプラネットがありますので新しく作成することができません。"; + $lang->msg_planet_exists = "既に作成したプラネットがありますので、新しく作成することができません。"; $lang->planet_userinfo = "個人情報"; $lang->planet_change_userinfo = "個人情報変更"; @@ -50,10 +52,10 @@ $lang->about_planet_change_photo = "画像サイズは96×96pxに設定されます。"; $lang->cmd_planet_image_upload = "画像アップロード"; - $lang->cmd_planet_good = "推薦"; + $lang->cmd_planet_good = "お勧め"; $lang->cmd_planet_addfavorite = "お気に入り追加"; - $lang->planet_hot_tag = "人気タグ"; + $lang->planet_hot_tag = "リアルタイム人気タグ"; $lang->planet_home = "TOP"; $lang->cmd_planet_more_tag = "タグをもっと見る"; @@ -66,22 +68,22 @@ $lang->planet_interest_content = "関心記事"; $lang->cmd_planet_show_interest_tag = "関心タグを見る"; $lang->cmd_planet_close_interest_tag = "関心タグを閉じる"; - $lang->msg_planet_already_added_interest_tag = "既に登録された関心タグです。"; + $lang->msg_planet_already_added_interest_tag = "既に登録されている関心タグです。"; $lang->cmd_planet_edit_subject = "タイトル編集"; - $lang->cmd_planet_edit_intro = "ひと言紹介編集"; + $lang->cmd_planet_edit_intro = "簡単紹介編集"; $lang->cmd_planet_edit_tag = "タグ編集"; $lang->cmd_planet_openclose_memo = "メモを開く/閉じる"; $lang->cmd_planet_del_tag = "タグ削除"; - $lang->cmd_planet_openclose_recommend_search = "推薦検索を開く/閉じる"; + $lang->cmd_planet_openclose_recommend_search = "お勧め検索を開く/閉じる"; $lang->about_planet_input_search_text = "検索語入力"; - $lang->about_planet_make_planet = "マイプラネットを作成しましょ。プラネットの上段に表示される「マイインフォ」を入力してください。"; - $lang->about_planet_make_planet_info = "マイプラネットの上段に表示されるマイインフォです。各項目を入力して設定を変更してください。"; + $lang->about_planet_make_planet = "マイプラネットを作成しましょう。プラネットの上段に表示される「マイインフォ」を入力して下さい。"; + $lang->about_planet_make_planet_info = "マイプラネットの上段に表示されるマイインフォです。各項目を入力して設定を変更して下さい。"; $lang->planet_input_personalinfo = "個人情報入力"; $lang->planet_photo = "写真"; $lang->planet_myintro = "自己紹介"; @@ -96,7 +98,7 @@ $lang->cmd_planet_ok_move_myplanet = "確認 : マイプラネットに移動します。"; - $lang->about_planet_login = "IDとPasswordを入力してログインボタンをクリックしてください。"; + $lang->about_planet_login = "IDとPasswordを入力してログインボタンをクリックして下さい。"; $lang->cmd_planet_login = "ログイン"; @@ -114,7 +116,7 @@ $lang->cmd_planet_add_tag = "関心タグ追加"; - $lang->cmd_planet_add_article = "書き込み"; + $lang->cmd_planet_add_article = "新規投稿"; $lang->cmd_planet_post_article = "登録"; $lang->planet_postscript = "P.S"; $lang->planet_article_preview = "プレビュー"; @@ -122,55 +124,58 @@ $lang->planet_notice_title = "%sさん、プラネットにようこそ!
%sさんの考え、意見、情報、知識などを自由にたくさんの人々と共有できるプラネットです。簡単な使い方を案内します。"; $lang->planet_notice_list = array( - "「書き込み」の「開く」ボタンを利用してみてください。記事を作成するウィンドウが開きます。", + "「新規投稿」の「開く」ボタンを利用してみて下さい。記事を作成するウィンドウが開きます。", "作成された記事は %sさんのプラネットに訪問する人々に公開されます。", - "「お気に入り追加」と「関心タグ追加」機能を利用すれば%sさんの関心記事を見ることができます。", + "「お気に入り追加」と「関心タグ追加」機能はいつでも%sさんの関心記事を見ることができます。", "%sさんの「写真、ネックネーム、タグ」などの情報は現在ページから変更できます。", - "他のプラネットが気になりますか?「リアルタイム人気タグ」または「検索」を利用してみてください。", - "その他、気になる部分は「質問」タグを検索してみてください。他の方から答えてもらえます。", + "他のプラネットが気になりますか?「リアルタイム人気タグ」または「検索」を利用してみて下さい。", + "その他、気になる部分は「質問」タグを検索してみて下さい。他の方から答えてもらえます。", ); - $lang->planet_notice_disable = "以降このメッセージを表示しません。"; + $lang->planet_notice_disable = "今後このメッセージを表示しません。"; - $lang->msg_planet_about_postscript = "追加で書きたいことがありましたら作成してください。"; - $lang->msg_planet_about_tag = "タグを書いてください。(「,」で区別)"; - $lang->msg_planet_already_added_favorite = "ですに登録されたお気に入りです。"; + $lang->msg_planet_about_postscript = "追加で書きたいことがありましたら作成して下さい。"; + $lang->msg_planet_about_tag = "タグを書いて下さい。(半角コンマ「,」で区別)"; + $lang->msg_planet_already_added_favorite = "既に登録されたお気に入りです。"; $lang->msg_planet_no_memo = "登録されたメモがありません。"; $lang->msg_planet_rss_enabled = "RSS配布機能を使用中です。"; $lang->msg_planet_rss_disabled = "RSS配布機能を使用していません。"; - $lang->msg_me2day_sync = "me2dayに記事を送る"; - $lang->msg_me2day_sync_q = "me2dayに記事を伝送しますか?"; + $lang->msg_me2day_sync = "me2dayに書き込みを送る"; + $lang->msg_me2day_sync_q = "me2dayに書き込みを送信しますか?"; $lang->me2day_id = "me2dayアドレス"; $lang->me2day_ukey = "ユーザーキー"; - $lang->msg_me2day_activate = "自動伝送設定されました。"; - $lang->msg_fail_auth_me2day = "Me2dayの認証に失敗しました。"; - $lang->msg_success_auth_me2day = "Me2day認証に成功しました。"; + $lang->msg_me2day_activate = "自動送信設定されました。"; + $lang->msg_fail_auth_me2day = "me2dayの認証に失敗しました。"; + $lang->msg_success_auth_me2day = "me2day認証に成功しました。"; $lang->planet_total_articles = "全て"; - $lang->planet_wantyou = "推薦"; - $lang->planet_best = "満船"; - $lang->planet_catch = "釣った記事"; - $lang->planet_fish = "釣られた記事"; - $lang->planet_bigfish = "満船"; - $lang->cmd_send_me2day = "me2day発送"; + $lang->planet_wantyou = "お勧め"; + $lang->planet_best = "ベスト"; + $lang->planet_catch = "選んだ記事"; + $lang->planet_fish = "選ばれた記事"; + $lang->planet_bigfish = "ベスト"; + $lang->cmd_send_me2day = "me2day送信"; - $lang->msg_already_have_phone_number = '이미 전화번호가 등록되어 있습니다.'; - $lang->planet_mobile_receive = '모바일 연동'; - $lang->planet_mobile_number = '전화번호'; - $lang->msg_success_set_phone_number = '전화번호가 등록되었습니다.'; + $lang->msg_already_have_phone_number = '既に登録されている電話番号です。'; + $lang->planet_mobile_receive = '携帯連動'; + $lang->planet_mobile_number = '携帯電話番号'; + $lang->msg_success_set_phone_number = '電話番号を登録しました。'; + + $lang->planet_tagtab = "追加タグタブ"; + $lang->about_planet_tagtab = "半角コンマ(,)区切りで複数タグの登録が出来ます。 登録したタグはメインページにタブとして出力されます。"; + $lang->planet_tagtab_after = "追加タグタブ"; + $lang->about_planet_tagtab_after = "基本タグタブの後ろに、複数のタグタブの追加が出来ます。半角コンマ(,)区切りで複数登録出来ます。"; + $lang->planet_smstag = "SMS登録タグ"; + $lang->about_planet_smstag = "半角コンマ(,)区切りで複数のタグ指定が出来ます。SMSで登録されるタグ"; + + $lang->planet_use_mobile = "SMS連動"; + $lang->about_use_mobile = "携帯SMSで書き込みが出来ます。(日本国内は未対応)"; + $lang->planet_use_me2day = "mw2day連動"; + $lang->about_use_me2day = "書き込みがme2dayへ送信されます。"; - $lang->planet_tagtab = "메인 추가 Tag 탭"; - $lang->about_planet_tagtab = "콤마(,)로 여러개의 Tag를 지정할 수 있으며, 지정한 Tag는 메인에 탭으로 출력 됩니다. 글쓰기 창에도 출력됩니다."; - $lang->planet_tagtab_after = "뒤 추가 Tag 탭"; - $lang->about_planet_tagtab_after = "기본 태그탭 이후에 여러개의 Tag 탭을 추가할 수 있습니다. 콤마(,)로 여러개를 지정할 수 있습니다"; - $lang->planet_smstag = "SMS 등록 Tag"; - $lang->about_planet_smstag = "콤마(,)로 여러개의 Tag를 지정할 수 있으며, SMS로 등록시에 등록 되는 Tag"; + $lang->msg_search_thisplanet = "このプラネットで検索"; + - $lang->planet_use_mobile = "SMS 연동"; - $lang->about_use_mobile = "핸드폰 SMS로 글을 작성할 수 있게 합니다."; - $lang->planet_use_me2day = "미투데이 연동"; - $lang->about_use_me2day = "글 작성시 me2day에 보내게 됩니다."; - $lang->msg_search_thisplanet = "이 플래닛에서 검색"; ?> diff --git a/modules/planet/skins/xe_planet/skin.xml b/modules/planet/skins/xe_planet/skin.xml index 851a5c3a0..c297885c5 100644 --- a/modules/planet/skins/xe_planet/skin.xml +++ b/modules/planet/skins/xe_planet/skin.xml @@ -1,6 +1,7 @@ PlanetXE 기본 스킨 + PlanetXE基本スキン PlanetXE默认皮肤 PlanetXE 基本面板 @@ -12,6 +13,9 @@ PlanetXE的預設面板。 + + PlanetXEの基本スキンです。 + 0.1 2008-10-01 @@ -19,6 +23,7 @@ 정찬명 Chan-Myung Jeong 정찬명 + Chan-Myung Jeong @@ -26,31 +31,37 @@ Blue 蓝色 藍色 + Cyan 青绿色 青綠色 + 青緑 Green 绿色 綠色 + Orange 橙色 橘色 + オレンジ Red 红色 紅色 + Gray 灰色 灰色 + グレー @@ -59,16 +70,19 @@ 플래닛 타이틀 微博标题 微型部落格標題 + プラネットタイトル 플래닛 메인 로고이미지 微博LOGO 微型部落格 Logo + プラネットメインロゴイメージ 플래닛 한줄공지 微博公告(一句) 微型部落格公告 + プラネットお知らせ(一言) From 5935fb95d44d741e686368f8a49005ea5b033f4b Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 10:47:53 +0000 Subject: [PATCH 015/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=9D=BC=EB=B6=80=20=EC=88=98=EC=A0=95=20:=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20:=20=ED=94=8C=EB=9E=98=EB=8B=9B=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8?= 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@5012 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/planet/lang/jp.lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/planet/lang/jp.lang.php b/modules/planet/lang/jp.lang.php index 6133b4913..d086672b7 100644 --- a/modules/planet/lang/jp.lang.php +++ b/modules/planet/lang/jp.lang.php @@ -162,7 +162,7 @@ $lang->planet_mobile_number = '携帯電話番号'; $lang->msg_success_set_phone_number = '電話番号を登録しました。'; - $lang->planet_tagtab = "追加タグタブ"; + $lang->planet_tagtab = "基本タグタブ"; $lang->about_planet_tagtab = "半角コンマ(,)区切りで複数タグの登録が出来ます。 登録したタグはメインページにタブとして出力されます。"; $lang->planet_tagtab_after = "追加タグタブ"; $lang->about_planet_tagtab_after = "基本タグタブの後ろに、複数のタグタブの追加が出来ます。半角コンマ(,)区切りで複数登録出来ます。"; From c8d11da53e5745d426c17687b5121192a2a8d99e Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 11:03:01 +0000 Subject: [PATCH 016/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=9D=BC=EB=B6=80=20=EC=B6=94=EA=B0=80=20:=20?= =?UTF-8?q?=EB=AA=A8=EB=93=88=20:=20=ED=94=8C=EB=9E=98=EB=8B=9B=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8?= 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@5013 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/planet/conf/module.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/planet/conf/module.xml b/modules/planet/conf/module.xml index 12bf7045f..5065f0df3 100644 --- a/modules/planet/conf/module.xml +++ b/modules/planet/conf/module.xml @@ -6,24 +6,28 @@ Access 访问 訪問 + アクセス 플래닛 생성 Create a planet 生成微博 建立 + プラネット作成 글쓰기 Write a document 发布主题 發表 + 書き込み 관리 Manager 管理 管理 + 管理 From e6dd405a42f90f4058f35f2f90334894397474a7 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 11:07:21 +0000 Subject: [PATCH 017/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=9D=BC=EB=B6=80=20=EC=88=98=EC=A0=95?= 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@5014 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/planet/skins/xe_planet/skin.xml | 2 +- modules/springnote/lang/jp.lang.php | 2 +- modules/widget/lang/jp.lang.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/planet/skins/xe_planet/skin.xml b/modules/planet/skins/xe_planet/skin.xml index c297885c5..10ade019a 100644 --- a/modules/planet/skins/xe_planet/skin.xml +++ b/modules/planet/skins/xe_planet/skin.xml @@ -1,9 +1,9 @@ PlanetXE 기본 스킨 - PlanetXE基本スキン PlanetXE默认皮肤 PlanetXE 基本面板 + PlanetXE基本スキン PlanetXE의 기본 스킨입니다. diff --git a/modules/springnote/lang/jp.lang.php b/modules/springnote/lang/jp.lang.php index 8f17b3a90..e074eb0e3 100644 --- a/modules/springnote/lang/jp.lang.php +++ b/modules/springnote/lang/jp.lang.php @@ -1,7 +1,7 @@ 翻訳:RisaPapa + * @author zero 翻訳:RisaPapa、ミニミ * @brief ウィジェット(widget)モジュール基本言語パッケージ **/ @@ -9,7 +9,7 @@ $lang->widget_name = 'ウィジェット名'; $lang->widget_maker = 'ウィジェット作者'; - $lang->widget_license = 'License'; + $lang->widget_license = 'ライセンス'; $lang->widget_history = '変更内容'; $lang->widget_info = 'ウィジェット情報'; $lang->widget_code = 'コード'; From eeda2d0f23b904f0c1e0bb9da333c1e5ba4991ad Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 11:29:42 +0000 Subject: [PATCH 018/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=9D=BC=EB=B6=80=20=EC=88=98=EC=A0=95?= 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@5015 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/resize_image/conf/info.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/resize_image/conf/info.xml b/addons/resize_image/conf/info.xml index 7ef80d25a..b67dee8f1 100644 --- a/addons/resize_image/conf/info.xml +++ b/addons/resize_image/conf/info.xml @@ -43,7 +43,6 @@ zero zero zero - zero zero From 16a59cb132a1cf82a2e6f008dfd95517bb1e2eb6 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 27 Nov 2008 11:34:14 +0000 Subject: [PATCH 019/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=9D=BC=EB=B6=80=20=EC=88=98=EC=A0=95?= 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@5016 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/communication/skins/default/skin.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/communication/skins/default/skin.xml b/modules/communication/skins/default/skin.xml index 6d9d6b622..f2b125402 100644 --- a/modules/communication/skins/default/skin.xml +++ b/modules/communication/skins/default/skin.xml @@ -2,7 +2,7 @@ 기본 스킨 默认皮肤 - 기본 스킨 + 基本スキン Default Skin Por defecto piel 기본 스킨 @@ -16,8 +16,8 @@ HTML/CSS : Chan-Myung Jeong (http://naradesign.net) - デザイン:ソギジョン (http://blog.naver.com/addcozy) - HTML/CSS:ジョンチャンミョン (http://naradesign.net) + デザイン:Ki-Jeong Seo (http://blog.naver.com/addcozy) + HTML/CSS:Chan-Myung Jeong (http://naradesign.net) Design : Ki-Jeong Seo (http://blog.naver.com/addcozy) From 4408368cd81bf1b31d479937a6d033a090f44cc8 Mon Sep 17 00:00:00 2001 From: guny Date: Thu, 27 Nov 2008 16:46:10 +0000 Subject: [PATCH 020/135] =?UTF-8?q?=EC=A4=91=EA=B5=AD=EC=96=B4=20-=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=EB=B6=80=EB=B6=84=20=EB=B2=88=EC=97=AD=20?= =?UTF-8?q?=EB=B0=8F=20=EC=9D=BC=EB=B6=80=20=EC=98=A4=ED=83=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= 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@5017 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/ldap/conf/info.xml | 2 +- modules/planet/conf/module.xml | 16 ++++++++-------- modules/planet/lang/zh-CN.lang.php | 10 +++++----- modules/planet/skins/xe_planet/skin.xml | 18 +++++++++--------- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/modules/ldap/conf/info.xml b/modules/ldap/conf/info.xml index 1633e2b90..638749b5d 100644 --- a/modules/ldap/conf/info.xml +++ b/modules/ldap/conf/info.xml @@ -29,7 +29,7 @@ accessory zero - zero + zero zero zero diff --git a/modules/planet/conf/module.xml b/modules/planet/conf/module.xml index 5065f0df3..09206a690 100644 --- a/modules/planet/conf/module.xml +++ b/modules/planet/conf/module.xml @@ -3,29 +3,29 @@ 접근 - Access - 访问 + Access + 访问 訪問 アクセス 플래닛 생성 - Create a planet - 生成微博 + Create a planet + 生成微博 建立 プラネット作成 글쓰기 - Write a document - 发布主题 + Write a document + 发布主题 發表 書き込み 관리 - Manager - 管理 + Manager + 管理 管理 管理 diff --git a/modules/planet/lang/zh-CN.lang.php b/modules/planet/lang/zh-CN.lang.php index c5fc27da1..3c08c0c0f 100644 --- a/modules/planet/lang/zh-CN.lang.php +++ b/modules/planet/lang/zh-CN.lang.php @@ -162,10 +162,10 @@ $lang->planet_mobile_number = '手机号'; $lang->msg_success_set_phone_number = '已成功添加手机号。'; - $lang->planet_tagtab = "添加首页Tag标签页"; - $lang->about_planet_tagtab = "用逗号(,)来区分而难多个Tag标签页。"; - $lang->planet_tagtab_after = "뒤 추가 Tag 탭"; - $lang->about_planet_tagtab_after = "기본 태그탭 이후에 여러개의 Tag 탭을 추가할 수 있습니다. 콤마(,)로 여러개를 지정할 수 있습니다"; + $lang->planet_tagtab = "添加Tag标签页"; + $lang->about_planet_tagtab = "默认标签页之前,可以添加多个Tag标签页。同时输入多个标签页请用逗号(,)来区分。"; + $lang->planet_tagtab_after = "追加Tag标签页"; + $lang->about_planet_tagtab_after = "默认标签页之后,可以追加多个Tag标签页。同时输入多个标签页请用逗号(,)来区分。"; $lang->planet_smstag = "添加SMS标签"; $lang->about_planet_smstag = "用SMS发送时自动添加的标签,用逗号(,)来区分多个标签。"; @@ -173,5 +173,5 @@ $lang->about_use_mobile = "可以用手机SMS发送。"; $lang->planet_use_me2day = "绑定me2day"; $lang->about_use_me2day = "发布主题的同时发送到me2day。"; - $lang->msg_search_thisplanet = "이 플래닛에서 검색"; + $lang->msg_search_thisplanet = "在此微博中搜索"; ?> diff --git a/modules/planet/skins/xe_planet/skin.xml b/modules/planet/skins/xe_planet/skin.xml index 10ade019a..cd1986ee8 100644 --- a/modules/planet/skins/xe_planet/skin.xml +++ b/modules/planet/skins/xe_planet/skin.xml @@ -29,37 +29,37 @@ Blue - 蓝色 + 蓝色 藍色 Cyan - 青绿色 + 青绿色 青綠色 青緑 Green - 绿色 + 绿色 綠色 Orange - 橙色 + 橙色 橘色 オレンジ Red - 红色 + 红色 紅色 Gray - 灰色 + 灰色 灰色 グレー @@ -68,19 +68,19 @@ 플래닛 타이틀 - 微博标题 + 微博标题 微型部落格標題 プラネットタイトル 플래닛 메인 로고이미지 - 微博LOGO + 微博LOGO 微型部落格 Logo プラネットメインロゴイメージ 플래닛 한줄공지 - 微博公告(一句) + 微博公告(一句) 微型部落格公告 プラネットお知らせ(一言) From 3cb0a953b724f8d74fc5550e33a42f1736d01968 Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 28 Nov 2008 02:42:44 +0000 Subject: [PATCH 021/135] =?UTF-8?q?referer=EB=AA=A8=EB=93=88=EC=9D=98=20XS?= =?UTF-8?q?S=20=EC=95=85=EC=9A=A9=20=EC=97=AC=EC=A7=80=EA=B0=80=20?= =?UTF-8?q?=EC=9E=88=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95.?= =?UTF-8?q?=20(=EC=B5=9C=EC=98=81=EB=8C=80=EB=8B=98=20=EC=A0=9C=EB=B3=B4)?= 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@5018 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/referer/referer.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/referer/referer.controller.php b/modules/referer/referer.controller.php index e1daabc7c..4baa0d4d9 100644 --- a/modules/referer/referer.controller.php +++ b/modules/referer/referer.controller.php @@ -21,7 +21,7 @@ $oDB = &DB::getInstance(); $oDB -> begin(); - $this->insertRefererLog($referer['host'], $_SERVER["HTTP_REFERER"]); + $this->insertRefererLog($referer['host'], removeHackTag($_SERVER["HTTP_REFERER"])); $this->deleteOlddatedRefererLogs(); $this->updateRefererStatistics($referer['host']); $oDB -> commit(); From 29ff4bb4c4edebdf3ca0c884877d878a13ec39b1 Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 28 Nov 2008 02:47:30 +0000 Subject: [PATCH 022/135] =?UTF-8?q?Cubrid=EC=97=90=EC=84=9C=20order=20by?= =?UTF-8?q?=20count=EC=99=80=20=EA=B0=99=EC=9D=B4=20count=EB=9D=BC?= =?UTF-8?q?=EB=8A=94=20=EC=98=88=EC=95=BD=EC=96=B4=EA=B0=80=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EB=90=98=EC=96=B4=EC=84=9C=20=EC=BF=BC=EB=A6=AC=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=EA=B0=80=20=EB=82=98=EB=8A=94=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=EB=A5=BC=20=EC=88=98=EC=A0=95?= 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@5019 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DBCubrid.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/db/DBCubrid.class.php b/classes/db/DBCubrid.class.php index ebe899788..acabc3dac 100644 --- a/classes/db/DBCubrid.class.php +++ b/classes/db/DBCubrid.class.php @@ -586,7 +586,7 @@ if ($output->order) { foreach($output->order as $key => $val) { - $index_list[] = sprintf('%s %s', $val[0], $val[1]); + $index_list[] = sprintf('%s %s', $val[0]=='count'?'count(*)':$val[0], $val[1]); } if(count($index_list)) $query .= ' order by '.implode(',',$index_list); $query = sprintf('%s for orderby_num() between %d and %d', $query, $start_count + 1, $list_count + $start_count); @@ -606,7 +606,7 @@ if($output->order) { foreach($output->order as $key => $val) { - $index_list[] = sprintf('%s %s', $val[0], $val[1]); + $index_list[] = sprintf('%s %s', $val[0]=='count'?'count(*)':$val[0], $val[1]); } if(count($index_list)) $query .= ' order by '.implode(',',$index_list); } From d254e6d8ae9165a494555f64298b6f0b1484f547 Mon Sep 17 00:00:00 2001 From: haneul Date: Fri, 28 Nov 2008 04:02:48 +0000 Subject: [PATCH 023/135] 17495478 : modified keywords in template file to support multi-language git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5020 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/tccommentnotify/lang/en.lang.php | 1 + modules/tccommentnotify/lang/fr.lang.php | 1 + modules/tccommentnotify/lang/jp.lang.php | 1 + modules/tccommentnotify/lang/ko.lang.php | 1 + modules/tccommentnotify/lang/zh-CN.lang.php | 1 + modules/tccommentnotify/lang/zh-TW.lang.php | 1 + modules/tccommentnotify/tpl/commentnotify_list.html | 10 +++++----- 7 files changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/tccommentnotify/lang/en.lang.php b/modules/tccommentnotify/lang/en.lang.php index 117219e7c..39730314d 100644 --- a/modules/tccommentnotify/lang/en.lang.php +++ b/modules/tccommentnotify/lang/en.lang.php @@ -2,4 +2,5 @@ $lang->commentnotify = 'Comment Notifier'; $lang->msg_checked_comment_is_deleted = '%d comment(s) has(have) been deleted'; $lang->cmd_delete_checked_comment = 'Delete Selected Items'; + $lang->site_name = 'Site Name'; ?> diff --git a/modules/tccommentnotify/lang/fr.lang.php b/modules/tccommentnotify/lang/fr.lang.php index 5c994da81..8596c2685 100644 --- a/modules/tccommentnotify/lang/fr.lang.php +++ b/modules/tccommentnotify/lang/fr.lang.php @@ -2,4 +2,5 @@ $lang->commentnotify = 'Annonceur de Commentaire'; $lang->msg_checked_comment_is_deleted = '%d commentaire(s) a(ont) est(sont) supprimé(s)'; $lang->cmd_delete_checked_comment = 'Supprimer les Item choisis'; + $lang->site_name = 'Site Name'; ?> diff --git a/modules/tccommentnotify/lang/jp.lang.php b/modules/tccommentnotify/lang/jp.lang.php index b89b58a29..e13617017 100644 --- a/modules/tccommentnotify/lang/jp.lang.php +++ b/modules/tccommentnotify/lang/jp.lang.php @@ -2,4 +2,5 @@ $lang->commentnotify = 'コメントお知らせアラート'; $lang->msg_checked_comment_is_deleted = '%d個のアラートメッセージが削除されました。'; $lang->cmd_delete_checked_comment = '選択したコメントを削除'; + $lang->site_name = 'Site Name'; ?> diff --git a/modules/tccommentnotify/lang/ko.lang.php b/modules/tccommentnotify/lang/ko.lang.php index 9d4913abe..6ef5727a0 100644 --- a/modules/tccommentnotify/lang/ko.lang.php +++ b/modules/tccommentnotify/lang/ko.lang.php @@ -2,4 +2,5 @@ $lang->commentnotify = '댓글알리미'; $lang->msg_checked_comment_is_deleted = '%d개의 알림글이 삭제되었습니다'; $lang->cmd_delete_checked_comment = '선택삭제'; + $lang->site_name = '사이트명'; ?> diff --git a/modules/tccommentnotify/lang/zh-CN.lang.php b/modules/tccommentnotify/lang/zh-CN.lang.php index 338bd435e..dc1c37c5e 100644 --- a/modules/tccommentnotify/lang/zh-CN.lang.php +++ b/modules/tccommentnotify/lang/zh-CN.lang.php @@ -2,4 +2,5 @@ $lang->commentnotify = '评论通告'; $lang->msg_checked_comment_is_deleted = '已删除%d个通告。'; $lang->cmd_delete_checked_comment = '删除所选'; + $lang->site_name = 'Site Name'; ?> diff --git a/modules/tccommentnotify/lang/zh-TW.lang.php b/modules/tccommentnotify/lang/zh-TW.lang.php index ef6e382d2..b1dfc643c 100644 --- a/modules/tccommentnotify/lang/zh-TW.lang.php +++ b/modules/tccommentnotify/lang/zh-TW.lang.php @@ -2,4 +2,5 @@ $lang->commentnotify = '評論通知'; $lang->msg_checked_comment_is_deleted = '%d 評論被刪除'; $lang->cmd_delete_checked_comment = '刪除所選項目'; + $lang->site_name = 'Site Name'; ?> diff --git a/modules/tccommentnotify/tpl/commentnotify_list.html b/modules/tccommentnotify/tpl/commentnotify_list.html index 399f7a789..c5318380e 100644 --- a/modules/tccommentnotify/tpl/commentnotify_list.html +++ b/modules/tccommentnotify/tpl/commentnotify_list.html @@ -17,11 +17,11 @@
-
등록일자
-
사이트명
-
이름
-
내용
-
삭제
+
{$lang->regdate}
+
{$lang->site_name}
+
{$lang->nick_name}
+
{$lang->content}
+
{$lang->cmd_delete}
From 10c4a7ee0db3701c54f90ef6617b70b8db763f21 Mon Sep 17 00:00:00 2001 From: araste Date: Fri, 28 Nov 2008 07:32:50 +0000 Subject: [PATCH 024/135] =?UTF-8?q?17497270:=2017497245:=20=EC=98=A4?= =?UTF-8?q?=ED=94=88=EC=95=84=EC=9D=B4=EB=94=94=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=EC=9D=B4=EC=8A=88=20=EC=9D=BC=EA=B4=84=20=ED=95=B4=EA=B2=B0?= 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@5021 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/member/member.controller.php | 15 +++++++++++++-- modules/member/member.view.php | 1 + .../member/skins/default/filter/openid_login.xml | 3 ++- modules/member/skins/default/login_form.html | 5 +++-- .../skins/default/filter/openid_login.xml | 2 +- widgets/login_info/skins/default/login_form.html | 4 ++-- .../skins/xe_official/filter/openid_login.xml | 2 +- .../login_info/skins/xe_official/login_form.html | 4 ++-- 8 files changed, 25 insertions(+), 11 deletions(-) diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index f0df9c090..22c0881e4 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -52,6 +52,12 @@ require_once('./modules/member/openid_lib/libcurlemu.inc.php'); $user_id = Context::get('user_id'); + if (!$user_id) $user_id = Context::get('openid'); + + $referer_url = Context::get('referer_url'); + if (!$referer_url) $referer_url = $_SERVER['HTTP_REFERER']; + if (!$referer_url) + $referer_url = htmlspecialchars_decode(getRequestUri(RELEASE_SSL)); $openid = new SimpleOpenID(); @@ -65,12 +71,17 @@ $error = $openid->GetError(); $this->setError(-1); $this->setMessage($error['description']); + + if (Context::getRequestMethod() == 'POST') + header("location:" . $referer_url); } else { - $goto = urlencode(substr($_SERVER['HTTP_REFERER'],strlen(Context::getRequestUri(RELEASE_SSL)))); + $goto = urlencode($referer_url); $ApprovedURL = Context::getRequestUri(RELEASE_SSL) . "?module=member&act=procMemberOpenIDValidate&goto=" . $goto; $openid->SetApprovedURL($ApprovedURL); $url = $openid->GetRedirectURL(); $this->add('redirect_url', $url); + if (Context::getRequestMethod() == 'POST') + header("location:" . $url); } ob_clean(); } @@ -118,7 +129,7 @@ // 페이지 이동 if(Context::get('goto')){ $goto = Context::get('goto'); - header("location:./" . $goto); + header("location:" . $goto); }else{ header("location:./"); } diff --git a/modules/member/member.view.php b/modules/member/member.view.php index eef077373..1fa34e041 100644 --- a/modules/member/member.view.php +++ b/modules/member/member.view.php @@ -201,6 +201,7 @@ **/ function dispMemberLoginForm() { // 템플릿 파일 지정 + Context::set('referer_url', $_SERVER['HTTP_REFERER']); $this->setTemplateFile('login_form'); } diff --git a/modules/member/skins/default/filter/openid_login.xml b/modules/member/skins/default/filter/openid_login.xml index 61bba2ff2..2557ca8ee 100644 --- a/modules/member/skins/default/filter/openid_login.xml +++ b/modules/member/skins/default/filter/openid_login.xml @@ -1,6 +1,7 @@
- + + diff --git a/modules/member/skins/default/login_form.html b/modules/member/skins/default/login_form.html index f86f47352..f26dfa61e 100644 --- a/modules/member/skins/default/login_form.html +++ b/modules/member/skins/default/login_form.html @@ -46,15 +46,16 @@

{$lang->openid}

-
+ +
{$lang->about_openid}
diff --git a/widgets/login_info/skins/default/filter/openid_login.xml b/widgets/login_info/skins/default/filter/openid_login.xml index 61bba2ff2..bf0ce028c 100644 --- a/widgets/login_info/skins/default/filter/openid_login.xml +++ b/widgets/login_info/skins/default/filter/openid_login.xml @@ -1,6 +1,6 @@
- + diff --git a/widgets/login_info/skins/default/login_form.html b/widgets/login_info/skins/default/login_form.html index db0b3cf5b..10c59e8be 100644 --- a/widgets/login_info/skins/default/login_form.html +++ b/widgets/login_info/skins/default/login_form.html @@ -50,12 +50,12 @@ diff --git a/modules/editor/components/poll_maker/tpl/popup.html b/modules/editor/components/poll_maker/tpl/popup.html index 6247db4d0..4fbd401b8 100644 --- a/modules/editor/components/poll_maker/tpl/popup.html +++ b/modules/editor/components/poll_maker/tpl/popup.html @@ -3,24 +3,9 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + diff --git a/modules/editor/tpl/view_component.html b/modules/editor/tpl/view_component.html index d4fe3cf71..2fa04cc03 100644 --- a/modules/editor/tpl/view_component.html +++ b/modules/editor/tpl/view_component.html @@ -20,7 +20,7 @@
{$lang->regdate}
- {zdate($component->date, 'Y-m-d')} + {zdate(str_replace('-',"",$component->date), 'Y-m-d')}
{$lang->component_license}
diff --git a/modules/issuetracker/skins/xe_issuetracker/extra_var_form.html b/modules/issuetracker/skins/xe_issuetracker/extra_var_form.html index 2f2a8963b..8cfd2760b 100644 --- a/modules/issuetracker/skins/xe_issuetracker/extra_var_form.html +++ b/modules/issuetracker/skins/xe_issuetracker/extra_var_form.html @@ -1,22 +1,5 @@ - - - - - - - - - - - - - - - - - @@ -30,7 +13,7 @@ {@ $val->value = $oIssue->getExtraValue($key)} - + @@ -73,12 +56,27 @@ - -
{zdate($val->value,"Y-m-d")}
- + + + + + + + + + diff --git a/modules/issuetracker/tpl/modify_milestone.html b/modules/issuetracker/tpl/modify_milestone.html index 030ac4f8b..17e84ffbc 100644 --- a/modules/issuetracker/tpl/modify_milestone.html +++ b/modules/issuetracker/tpl/modify_milestone.html @@ -3,23 +3,8 @@ - - - - - - - - - - - - - - - - - + + @@ -29,8 +14,8 @@ - - + + @@ -41,18 +26,12 @@
{$lang->name}
{$lang->deadline}
{$lang->name}
{$lang->deadline}
{$lang->complete}
{$lang->completed_date}
{$lang->is_default}
-
{zdate("Ymd",$milestone->deadline)}
- +
is_completed == 'Y')-->checked /> -
{zdate("Ymd",$milestone->released_date)}
- +
@@ -73,4 +52,18 @@
+ + + diff --git a/modules/issuetracker/tpl/project_setting.html b/modules/issuetracker/tpl/project_setting.html index 9dc352053..6f8ec3d52 100644 --- a/modules/issuetracker/tpl/project_setting.html +++ b/modules/issuetracker/tpl/project_setting.html @@ -10,22 +10,8 @@ - - - - - - - - - - - - - - - - + +
@@ -61,10 +47,20 @@ -
- + + + diff --git a/modules/member/skins/default/modify_info.html b/modules/member/skins/default/modify_info.html index 6b1488292..be96fae52 100644 --- a/modules/member/skins/default/modify_info.html +++ b/modules/member/skins/default/modify_info.html @@ -17,22 +17,9 @@ - - - - - - - - - - - - - - - - + + + profile_image == 'Y' || $member_config->image_name=='Y' || $member_config->image_mark=='Y')-->enctype="multipart/form-data"> @@ -130,13 +117,11 @@ {$lang->birthday} - -
{zdate($member_info->birthday,"Y-m-d")}
+ + +

{$lang->about_birthday}

- @@ -237,11 +222,9 @@ -
{zdate($val->value,"Y-m-d")}
+ + - @@ -257,4 +240,18 @@ {$lang->cmd_cancel}
+ + + diff --git a/modules/member/skins/default/signup_form.html b/modules/member/skins/default/signup_form.html index 612b4a2bd..6bdda5080 100644 --- a/modules/member/skins/default/signup_form.html +++ b/modules/member/skins/default/signup_form.html @@ -3,28 +3,14 @@ - - - - - - - - - - - - - - - - + + -
-

{$lang->cmd_signup}

-
+
+

{$lang->cmd_signup}

+
@@ -60,35 +46,35 @@ {$lang->user_name} * - +

{$lang->about_user_name}

{$lang->nick_name} * - +

{$lang->about_nick_name}

{$lang->email_address} * - +

{$lang->about_email_address}

{$lang->homepage} - +

{$lang->about_homepage}

{$lang->blog} - +

{$lang->about_blog_url}

@@ -96,7 +82,9 @@ {$lang->birthday} -
+ + +

{$lang->about_birthday}

@@ -106,10 +94,6 @@ - - @@ -128,7 +112,7 @@ @@ -244,11 +226,7 @@ -
{zdate($val->value,"Y-m-d")}
- - + @@ -269,3 +247,17 @@ + + + \ No newline at end of file From 755c6a9f3cee1c0b1428ba671d0931f5e79bea9c Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 3 Dec 2008 09:37:02 +0000 Subject: [PATCH 034/135] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5032 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/css/ui.datepicker.css | 213 +++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 common/css/ui.datepicker.css diff --git a/common/css/ui.datepicker.css b/common/css/ui.datepicker.css new file mode 100644 index 000000000..49b00c0dc --- /dev/null +++ b/common/css/ui.datepicker.css @@ -0,0 +1,213 @@ +/* Main Style Sheet for jQuery UI date picker */ +#ui-datepicker-div, .ui-datepicker-inline { + font-family: Arial, Helvetica, sans-serif; + font-size: 14px; + padding: 0; + margin: 0; + background: #ddd; + width: 185px; +} +#ui-datepicker-div { + display: none; + border: 1px solid #777; + z-index: 100; /*must have*/ +} +.ui-datepicker-inline { + float: left; + display: block; + border: 0; +} +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-dialog { + padding: 5px !important; + border: 4px ridge #ddd !important; +} +.ui-datepicker-disabled { + position: absolute; + z-index: 100; + background-color: white; + opacity: 0.5; +} +button.ui-datepicker-trigger { + width: 25px; +} +img.ui-datepicker-trigger { + margin: 2px; + vertical-align: middle; +} +.ui-datepicker-prompt { + float: left; + padding: 2px; + background: #ddd; + color: #000; +} +* html .ui-datepicker-prompt { + width: 185px; +} +.ui-datepicker-control, .ui-datepicker-links, .ui-datepicker-header, .ui-datepicker { + clear: both; + float: left; + width: 100%; + color: #fff; +} +.ui-datepicker-control { + background: #400; + padding: 2px 0px; +} +.ui-datepicker-links { + background: #000; + padding: 2px 0px; +} +.ui-datepicker-control, .ui-datepicker-links { + font-weight: bold; + font-size: 80%; +} +.ui-datepicker-links label { /* disabled links */ + padding: 2px 5px; + color: #888; +} +.ui-datepicker-clear, .ui-datepicker-prev { + float: left; + width: 34%; +} +.ui-datepicker-rtl .ui-datepicker-clear, .ui-datepicker-rtl .ui-datepicker-prev { + float: right; + text-align: right; +} +.ui-datepicker-current { + float: left; + width: 30%; + text-align: center; +} +.ui-datepicker-close, .ui-datepicker-next { + float: right; + width: 34%; + text-align: right; +} +.ui-datepicker-rtl .ui-datepicker-close, .ui-datepicker-rtl .ui-datepicker-next { + float: left; + text-align: left; +} +.ui-datepicker-header { + padding: 1px 0 3px; + background: #333; + text-align: center; + font-weight: bold; + height: 1.3em; +} +.ui-datepicker-header select { + background: #333; + color: #fff; + border: 0px; + font-weight: bold; +} +.ui-datepicker { + background: #ccc; + text-align: center; + font-size: 100%; +} +.ui-datepicker a { + display: block; + width: 100%; +} +.ui-datepicker-title-row { + background: #777; +} +.ui-datepicker-days-row { + background: #eee; + color: #666; +} +.ui-datepicker-week-col { + background: #777; + color: #fff; +} +.ui-datepicker-days-cell { + color: #000; + border: 1px solid #ddd; +} +.ui-datepicker-days-cell a{ + display: block; +} +.ui-datepicker-week-end-cell { + background: #ddd; +} +.ui-datepicker-title-row .ui-datepicker-week-end-cell { + background: #777; +} +.ui-datepicker-days-cell-over { + background: #fff; + border: 1px solid #777; +} +.ui-datepicker-unselectable { + color: #888; +} +.ui-datepicker-today { + background: #fcc !important; +} +.ui-datepicker-current-day { + background: #999 !important; +} +.ui-datepicker-status { + background: #ddd; + width: 100%; + font-size: 80%; + text-align: center; +} + +/* ________ Datepicker Links _______ + +** Reset link properties and then override them with !important */ +#ui-datepicker-div a, .ui-datepicker-inline a { + cursor: pointer; + margin: 0; + padding: 0; + background: none; + color: #000; +} +.ui-datepicker-inline .ui-datepicker-links a { + padding: 0 5px !important; +} +.ui-datepicker-control a, .ui-datepicker-links a { + padding: 2px 5px !important; + color: #eee !important; +} +.ui-datepicker-title-row a { + color: #eee !important; +} +.ui-datepicker-control a:hover { + background: #fdd !important; + color: #333 !important; +} +.ui-datepicker-links a:hover, .ui-datepicker-title-row a:hover { + background: #ddd !important; + color: #333 !important; +} + +/* ___________ MULTIPLE MONTHS _________*/ + +.ui-datepicker-multi .ui-datepicker { + border: 1px solid #777; +} +.ui-datepicker-one-month { + float: left; + width: 185px; +} +.ui-datepicker-new-row { + clear: left; +} + +/* ___________ IE6 IFRAME FIX ________ */ + +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +} From be3e9be9004d43da6bf9db25e591dadd5cba06b7 Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 3 Dec 2008 09:43:27 +0000 Subject: [PATCH 035/135] calendar fix git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5033 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/components/poll_maker/tpl/popup.html | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/editor/components/poll_maker/tpl/popup.html b/modules/editor/components/poll_maker/tpl/popup.html index 4fbd401b8..d319f822e 100644 --- a/modules/editor/components/poll_maker/tpl/popup.html +++ b/modules/editor/components/poll_maker/tpl/popup.html @@ -31,13 +31,17 @@ {@ $no_line_class=""} diff --git a/modules/board/skins/xe_board/style.gallery.html b/modules/board/skins/xe_board/style.gallery.html index b9d7cf277..85c3a1745 100644 --- a/modules/board/skins/xe_board/style.gallery.html +++ b/modules/board/skins/xe_board/style.gallery.html @@ -6,7 +6,7 @@
- +
{@ $no_line_class=""} - {@ $no_line_class=""} + {@ $no_line_class=""}{@ $no_line_class=""} - {@ $no_line_class=""} + {@ $no_line_class=""} {@ $no_line_class=""} diff --git a/modules/board/skins/xe_default/_style.gallery.html b/modules/board/skins/xe_default/_style.gallery.html index 7cc0c0ac0..64e89d547 100644 --- a/modules/board/skins/xe_default/_style.gallery.html +++ b/modules/board/skins/xe_default/_style.gallery.html @@ -4,7 +4,7 @@
- {@ $no_line_class=""} + {@ $no_line_class=""} diff --git a/modules/board/skins/xe_default/_style.list.html b/modules/board/skins/xe_default/_style.list.html index 374444d32..101b15cce 100644 --- a/modules/board/skins/xe_default/_style.list.html +++ b/modules/board/skins/xe_default/_style.list.html @@ -18,7 +18,7 @@
{@ $no_line_class=""} - {@ $no_line_class=""} + {@ $no_line_class=""}{@ $no_line_class=""} - {@ $no_line_class=""} + {@ $no_line_class=""} - + - - + + diff --git a/modules/board/tpl/index.html b/modules/board/tpl/index.html index 0c2571521..6f0323789 100644 --- a/modules/board/tpl/index.html +++ b/modules/board/tpl/index.html @@ -11,7 +11,7 @@ - + - + diff --git a/modules/comment/tpl/declared_list.html b/modules/comment/tpl/declared_list.html index 2963bb1d3..1196f17f1 100644 --- a/modules/comment/tpl/declared_list.html +++ b/modules/comment/tpl/declared_list.html @@ -13,7 +13,7 @@
- + @@ -198,11 +182,7 @@ -
{zdate($val->value,"Y-m-d")}
- - +
{$val->description}
@@ -221,5 +201,16 @@ + diff --git a/modules/member/tpl/insert_member.html b/modules/member/tpl/insert_member.html index 39d1214b5..749e45864 100644 --- a/modules/member/tpl/insert_member.html +++ b/modules/member/tpl/insert_member.html @@ -3,22 +3,8 @@ - - - - - - - - - - - - - - - - + +
@@ -85,12 +71,8 @@
{$lang->birthday}
-
{zdate($member_info->birthday,"Y-m-d")}
+

{$lang->about_birthday}

- -
{$lang->poll_stop_date}
- - + + ', Context::getLang('alert_new_message_arrived'), Context::getRequestUri().'?module=communication&act=dispCommunicationNewMessage'); - + $script = sprintf('', sprintf(Context::getLang('alert_new_message_arrived'), $new_message_count), Context::getRequestUri().'?module=communication&act=dispCommunicationNewMessage'); + Context::addHtmlHeader( $script ); } /** * 기능 수행 : 사용자 이름을 클릭시 요청되는 팝업메뉴의 메뉴에 쪽지 발송, 친구추가등의 링크 추가 - * 조건 : called_position == 'after_module_proc', module = 'member', act = 'getMemberMenu' **/ } elseif($called_position == 'before_module_proc' && $this->module == 'member' && $this->act == 'getMemberMenu') { - // 비로그인 사용자라면 패스 - if(!Context::get('is_logged')) return; $oMemberController = &getController('member'); - - // 로그인된 사용자 정보를 구함 - $logged_info = Context::get('logged_info'); $member_srl = Context::get('target_srl'); $mid = Context::get('cur_mid'); @@ -71,19 +66,19 @@ // 아니라면 쪽지 발송, 친구 등록 추가 } else { // 대상 회원의 정보를 가져옴 - $target_member_info = $this->getMemberInfoByMemberSrl($member_srl); + $target_member_info = $this->getMemberInfoByMemberSrl($member_srl); if(!$target_member_info->member_srl) return; // 로그인된 사용자 정보를 구함 $logged_info = Context::get('logged_info'); - + // 쪽지 발송 메뉴를 만듬 - if( $logged_info->is_admin == 'Y' || $target_member_info->allow_message =='Y' || ($target_member_info->allow_message == 'F' && $oCommunicationModel->isFriend($member_srl))) + if( $logged_info->is_admin == 'Y' || $target_member_info->allow_message =='Y' || ($target_member_info->allow_message == 'F' && $oCommunicationModel->isFriend($member_srl))) $oMemberController->addMemberPopupMenu(getUrl('','module','communication','act','dispCommunicationSendMessage','receiver_srl',$member_srl), 'cmd_send_message', './modules/communication/tpl/images/icon_write_message.gif', 'popup'); - // 친구 등록 메뉴를 만듬 (이미 등록된 친구가 아닐 경우) - if(!$oCommunicationModel->isAddedFriend($member_srl)) + // 친구 등록 메뉴를 만듬 (이미 등록된 친구가 아닐 경우) + if(!$oCommunicationModel->isAddedFriend($member_srl)) $oMemberController->addMemberPopupMenu(getUrl('','module','communication','act','dispCommunicationAddFriend','target_srl',$member_srl), 'cmd_add_friend', './modules/communication/tpl/images/icon_add_friend.gif', 'popup'); } } -?> +?> \ No newline at end of file diff --git a/modules/communication/communication.controller.php b/modules/communication/communication.controller.php index 4343a8883..7ebaa9923 100644 --- a/modules/communication/communication.controller.php +++ b/modules/communication/communication.controller.php @@ -135,7 +135,8 @@ $flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($receiver_srl); FileHandler::makeDir($flag_path); $flag_file = sprintf('%s%s', $flag_path, $receiver_srl); - FileHandler::writeFile($flag_file,'1'); + $flag_count = FileHandler::readFile($flag_file); + FileHandler::writeFile($flag_file, ++$flag_count); $oDB->commit(); From e3717c8dca139fa421903b636126d26e92376fdd Mon Sep 17 00:00:00 2001 From: royallin Date: Thu, 4 Dec 2008 04:22:53 +0000 Subject: [PATCH 041/135] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5039 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/conf/info.xml | 2 +- addons/blogapi/conf/info.xml | 8 ++++---- addons/counter/conf/info.xml | 2 +- addons/lemonpen/conf/info.xml | 2 +- addons/member_communication/conf/info.xml | 2 +- addons/member_communication/lang/zh-TW.lang.php | 2 +- addons/member_extra_info/conf/info.xml | 2 +- addons/openid_delegation_id/conf/info.xml | 2 +- addons/planet_bookmark/conf/info.xml | 4 ++-- addons/planet_todo/conf/info.xml | 4 ++-- addons/rainbow_link/conf/info.xml | 2 +- addons/resize_image/conf/info.xml | 2 +- addons/tccommentnotify/conf/info.xml | 2 +- 13 files changed, 18 insertions(+), 18 deletions(-) diff --git a/addons/autolink/conf/info.xml b/addons/autolink/conf/info.xml index 7e664249d..8d0a95b1b 100644 --- a/addons/autolink/conf/info.xml +++ b/addons/autolink/conf/info.xml @@ -30,7 +30,7 @@ Kommentare beginnen mit http naeyongjung Thema der gemeinsamen String automatisch Link zu hängen Sie mit der Maus über die einzelnen Links und saechang Stadt und auf dem Menü des Add-On Dekoration. - 主題及評論中以http開頭的字串,自動轉換成連結。當滑鼠移到連結上方時,會顯示(新視窗/本頁面)選擇框。 + 是種可將主題和評論內容中的URL網址字串自動轉換成連結的附加功能。 0.1 2008-04-22 diff --git a/addons/blogapi/conf/info.xml b/addons/blogapi/conf/info.xml index 7ed7d9c0f..1c5e9e88e 100644 --- a/addons/blogapi/conf/info.xml +++ b/addons/blogapi/conf/info.xml @@ -51,10 +51,10 @@ Только выбор опции использовать включает поведение RSD тега и api. - 支援 metaWeblog的部落格 API插件。 - 設置成"啟用"時,會使每個模組都顯示 RSD圖示。 - API地址是http://安裝位置/模組名稱/api。 - 將狀態設置成"啟用"時,才可使用 RSD標籤及 API。 + 支援MetaWeblog的部落格API附加功能。 + 設置成"啟用"時,會使每個模組都顯示RSD圖示。 + API網址是 http://安裝位置/模組名稱/api。 + 將狀態設置成"啟用"時,才可使用RSD和API 0.1 2007-02-28 diff --git a/addons/counter/conf/info.xml b/addons/counter/conf/info.xml index 5bf6c39df..da3a0ef56 100644 --- a/addons/counter/conf/info.xml +++ b/addons/counter/conf/info.xml @@ -37,7 +37,7 @@ Для сбора информации необходимо включить этот аддон. - 使用 XE的網站訪問統計模組記錄網站訪問資料。 + 使用XE的網站訪問統計模組記錄網站訪問資料。 將狀態設置成"使用"時,才會紀錄網站訪問資料。 0.1 diff --git a/addons/lemonpen/conf/info.xml b/addons/lemonpen/conf/info.xml index ece3b73d8..f995b1ac5 100644 --- a/addons/lemonpen/conf/info.xml +++ b/addons/lemonpen/conf/info.xml @@ -47,7 +47,7 @@ Por favor, de entrada sid valor que había que hacer después de registrarse en el sitio web LemonPen. Введите замороженный ценности, которые вы получили после регистрации на сайте LemonPen. レモンペンのサイトで発行されたsidを入力してください。 (LemonPen:Openmaru社提供) - 請輸入註冊LemonPen網站時,所給予的sid值。 + 請輸入在LemonPen網站註冊時,所給予的sid值。 diff --git a/addons/member_communication/conf/info.xml b/addons/member_communication/conf/info.xml index 8c4b145e8..ee6ea0d5a 100644 --- a/addons/member_communication/conf/info.xml +++ b/addons/member_communication/conf/info.xml @@ -36,7 +36,7 @@ 쪽지, 친구기능등을 사용하기 위해서는 이 애드온을 사용으로 해주시면 됩니다. - 此插件可啟用短訊和新增好友功能。 + 讓會員擁有短訊和新增好友功能。 0.1 2008-05-28 diff --git a/addons/member_communication/lang/zh-TW.lang.php b/addons/member_communication/lang/zh-TW.lang.php index 1428882df..f2ffd16e8 100644 --- a/addons/member_communication/lang/zh-TW.lang.php +++ b/addons/member_communication/lang/zh-TW.lang.php @@ -1,3 +1,3 @@ alert_new_message_arrived = '您有新訊息。要確認嗎?'; + $lang->alert_new_message_arrived = '您收到%d個新訊息。您想要檢視嗎?'; ?> diff --git a/addons/member_extra_info/conf/info.xml b/addons/member_extra_info/conf/info.xml index 26acc9caa..63af756ba 100644 --- a/addons/member_extra_info/conf/info.xml +++ b/addons/member_extra_info/conf/info.xml @@ -30,7 +30,7 @@ 회원이 등록한 이미지이름, 이미지마크를 사용하기 위해서는 이 애드온을 활성화 시키세요. - 此插件將把用戶資料中的暱稱圖片、用戶圖示、簽名檔等資料顯示到頁面當中。 + 可將用戶資料中的暱稱圖片、用戶圖示、簽名檔等資料顯示到頁面當中。 0.2 2007-02-28 diff --git a/addons/openid_delegation_id/conf/info.xml b/addons/openid_delegation_id/conf/info.xml index ed2133227..a3b3349f2 100644 --- a/addons/openid_delegation_id/conf/info.xml +++ b/addons/openid_delegation_id/conf/info.xml @@ -38,7 +38,7 @@ 可將原本的域名當做OpenID來使用。 - 必須在設置中輸入openid provider相關值後再使用。 + 必須在設置中輸入openid provider相關資料後再使用。 0.1 2007-02-28 diff --git a/addons/planet_bookmark/conf/info.xml b/addons/planet_bookmark/conf/info.xml index 9a0d41784..98e3d22d2 100644 --- a/addons/planet_bookmark/conf/info.xml +++ b/addons/planet_bookmark/conf/info.xml @@ -2,7 +2,7 @@ 플래닛 Bookmark 애드온 微博收藏插件 - Planet 書籤 + 微型部落格書籤 Planet Bookmark アドオン 플래닛 Bookmark 애드온 @@ -11,7 +11,7 @@ XE微博收藏插件。 - Planet 書籤插件 + 微型部落格書籤功能 Planet Bookmark アドオン diff --git a/addons/planet_todo/conf/info.xml b/addons/planet_todo/conf/info.xml index 5d9a973ba..003c765dc 100644 --- a/addons/planet_todo/conf/info.xml +++ b/addons/planet_todo/conf/info.xml @@ -3,7 +3,7 @@ 플래닛 TODO 애드온 Planet TODO 微博TODO插件 - Planet TODO 插件 + 微型部落格 TODO 功能 Planet TODO アドオン 플래닛 TODO 애드온 @@ -15,7 +15,7 @@ XE微博TODO插件。 - Planet TODO 插件 + 微型部落格 TODO 功能 Planet TODO アドオン diff --git a/addons/rainbow_link/conf/info.xml b/addons/rainbow_link/conf/info.xml index 2298004b2..acf4ecdf5 100644 --- a/addons/rainbow_link/conf/info.xml +++ b/addons/rainbow_link/conf/info.xml @@ -37,7 +37,7 @@ 將rainbow.js新增到header,讓連結顯示成彩虹色。 - 此插件的rainbow.js檔案版權屬於 <a href="http://www.dynamicdrive.com" target="_blank">Dynamicdrive.com</a> + rainbow.js檔案版權屬於 <a href="http://www.dynamicdrive.com" target="_blank">Dynamicdrive.com</a> 0.1 2007-02-28 diff --git a/addons/resize_image/conf/info.xml b/addons/resize_image/conf/info.xml index b67dee8f1..2b66623f1 100644 --- a/addons/resize_image/conf/info.xml +++ b/addons/resize_image/conf/info.xml @@ -30,7 +30,7 @@ Body Bild eingefügt im Inneren des Körpers zu passen die Größe des Originals zeigen, wenn ich darauf klicke auf das Add-ons. - 自動調整文章内的圖片大小,點擊會顯示原始大小的插件。 + 自動調整文章内的圖片大小,點擊圖片後會顯示原始大小。 0.1 2008-04-22 diff --git a/addons/tccommentnotify/conf/info.xml b/addons/tccommentnotify/conf/info.xml index 0c8a405bd..b8fbb6065 100644 --- a/addons/tccommentnotify/conf/info.xml +++ b/addons/tccommentnotify/conf/info.xml @@ -9,7 +9,7 @@ コメントお知らせアラートのアドオンです。 联动评论通告模块的插件。 This addon enables Comment Notifier module. - 此插件為評論通知模組。 + 是種評論通知模組。 0.2 2008-06-02 From 8bcc3413abd3623008835492bf903a496fb9eb15 Mon Sep 17 00:00:00 2001 From: ngleader Date: Thu, 4 Dec 2008 04:39:24 +0000 Subject: [PATCH 042/135] =?UTF-8?q?=EA=B8=B0=EC=A1=B4=20calender=20functio?= =?UTF-8?q?n=20=EC=B6=94=EA=B0=80?= 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@5040 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/ui.datepicker.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/common/js/ui.datepicker.js b/common/js/ui.datepicker.js index 1c64ef641..cc184987d 100644 --- a/common/js/ui.datepicker.js +++ b/common/js/ui.datepicker.js @@ -163,7 +163,7 @@ function Datepicker() { altFormat: '', // The date format to use for the alternate field constrainInput: true // The input is constrained by the current date format }; -// $.extend(this._defaults, this.regional['']); + $.extend(this._defaults, this.regional['']); this.dpDiv = $(''); } @@ -1784,3 +1784,23 @@ $.datepicker.uuid = new Date().getTime(); $.datepicker.version = "@VERSION"; })(jQuery); + + + +var DyCalendar={ setup : + function(option){ + (function($){ + var date = $("#"+option.displayArea).html(); + $("#"+option.displayArea).after($('')).remove(); + var opt ={ + gotoCurrent: false + ,yearRange:'-100:+10' + ,onSelect : function(){ + $("#"+option.inputField).val(this.value.replace(/-/g,"")); + } + }; + $("#"+option.displayArea+"__input__").datepicker(opt); + })(jQuery); + } + +}; \ No newline at end of file From d0526b90c05545d40bbe040a85f735599b0b0873 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 4 Dec 2008 06:18:34 +0000 Subject: [PATCH 043/135] =?UTF-8?q?editor=20default=EC=8A=A4=ED=82=A8?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=97=90=EB=94=94=ED=84=B0=20=EA=B3=B5?= =?UTF-8?q?=EA=B0=84=EC=9D=B4=20=EC=9D=B4=EC=83=81=ED=95=98=EA=B2=8C=20?= =?UTF-8?q?=EA=B2=B9=EC=B9=98=EB=8A=94=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= 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@5041 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/skins/default/css/editor.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/editor/skins/default/css/editor.css b/modules/editor/skins/default/css/editor.css index 614e8afdb..521aa716a 100644 --- a/modules/editor/skins/default/css/editor.css +++ b/modules/editor/skins/default/css/editor.css @@ -222,7 +222,7 @@ a.skipToolBox:active span{ width:auto; height:auto; padding:3px 15px; font-weigh /* Editor Resize Bar */ .xeEditor .textAreaDragIndicator{ border-top:1px solid; border-bottom:1px solid; clear:both; margin-bottom:5px;} .xeEditor .textAreaDragIndicator button{ width:100%; height:9px; border:none; cursor:n-resize; background-repeat:no-repeat; background-position:center center; } -.xeEditor .mask{ position:relative; width:100%;height:500px;margin-top:-500px;bottom:0; display:none; } +.xeEditor .mask{ position:absolute; width:100%;height:500px;margin-top:-500px;bottom:0; display:none; } /* File Uploader */ .xeEditor .fileUploader{ clear:both; position:relative; padding-top:5px; *zoom:1; *margin-bottom:5px;} From 901a7daafd76376113c20fad91b2720abadf1d58 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 4 Dec 2008 09:26:48 +0000 Subject: [PATCH 044/135] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=20=EC=9D=BC=EB=B6=80=20=EC=88=98=EC=A0=95?= 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@5042 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/lemonpen/conf/info.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/lemonpen/conf/info.xml b/addons/lemonpen/conf/info.xml index f995b1ac5..8cbb6cc2f 100644 --- a/addons/lemonpen/conf/info.xml +++ b/addons/lemonpen/conf/info.xml @@ -46,7 +46,7 @@ Bitte geben Sie Ihre SID-Wert ein, die Sie nach Registrierung auf der Website LemonPen. Por favor, de entrada sid valor que había que hacer después de registrarse en el sitio web LemonPen. Введите замороженный ценности, которые вы получили после регистрации на сайте LemonPen. - レモンペンのサイトで発行されたsidを入力してください。 (LemonPen:Openmaru社提供) + レモンペンのサイトから発行されたsidを入力して下さい。 (LemonPen:Openmaru社提供) 請輸入在LemonPen網站註冊時,所給予的sid值。 From 644cea0d5d3baa826547a07986aa0b9fea5905de Mon Sep 17 00:00:00 2001 From: royallin Date: Sat, 6 Dec 2008 07:56:10 +0000 Subject: [PATCH 045/135] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5043 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/addon/conf/info.xml | 4 ++-- modules/addon/lang/zh-TW.lang.php | 10 +++++----- modules/board/lang/zh-TW.lang.php | 8 ++++---- modules/member/lang/zh-TW.lang.php | 24 ++++++++++++------------ 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/modules/addon/conf/info.xml b/modules/addon/conf/info.xml index 554d6da28..1f4eeb1d2 100644 --- a/modules/addon/conf/info.xml +++ b/modules/addon/conf/info.xml @@ -7,7 +7,7 @@ アドオン Additions Аддоны - 插件 + 附加功能 애드온을 등록하거나 사용/미사용을 설정하는 애드온 관리 모듈입니다. This module is for maintaining addons which can toggle use and disuse states. Este Módulo es para agregar Addons, como también el manejo de ellos. @@ -15,7 +15,7 @@ アドオンの「登録、使用、未使用」などを設定する管理モジュールです。 Ce module est pour les Additions de maintien qui peuvent basculer des états d'utilisation et de désuétude. Этот модуль служит для управления аддонами, использование которых Вы можете включать и выключать. - 登錄或啟用/禁用插件的管理模組。 + 設定附加功能「登錄、啟用、禁用」的管理模組。 0.1 2007-02-28 manager diff --git a/modules/addon/lang/zh-TW.lang.php b/modules/addon/lang/zh-TW.lang.php index c75683d74..abc77ebc7 100644 --- a/modules/addon/lang/zh-TW.lang.php +++ b/modules/addon/lang/zh-TW.lang.php @@ -5,13 +5,13 @@ * @brief 正體中文語言 **/ - $lang->addon = "插件"; + $lang->addon = "附加功能"; - $lang->addon_info = '插件資訊'; - $lang->addon_maker = '插件作者'; + $lang->addon_info = '資料'; + $lang->addon_maker = '作者'; $lang->addon_license = '版權'; $lang->addon_history = '更新紀錄'; - $lang->about_addon_mid = "可以指定使用插件的對象。
(全部解除表示可用在所有對象。)"; - $lang->about_addon = '插件是附加延伸的功能,而不是輸出結果組件。
啟用/禁用插件,為網站提供強大的功能。'; + $lang->about_addon_mid = "可以指定使用附加功能的目標。
(全部不選取表示可用在所有目標。)"; + $lang->about_addon = '附加功能是一種附加延伸的功能,而不是輸出結果組件。
啟用/禁用插件,為網站提供強大的功能。'; ?> diff --git a/modules/board/lang/zh-TW.lang.php b/modules/board/lang/zh-TW.lang.php index a5577dce6..9f8013160 100644 --- a/modules/board/lang/zh-TW.lang.php +++ b/modules/board/lang/zh-TW.lang.php @@ -5,9 +5,9 @@ * @brief 討論板(board) 模組語言 **/ - $lang->board = "討論板"; + $lang->board = '討論板'; - $lang->except_notice = "公告選項"; + $lang->except_notice = '公告選項'; $lang->cmd_manage_menu = '選單管理'; $lang->cmd_make_child = '新增子分類'; @@ -33,8 +33,8 @@ $lang->about_category_group_srls = '被選擇的用戶組才可以檢視此分類。'; $lang->about_layout_setup = '可直接編輯部落格版面設計原始碼。可把控件原始碼插入到您喜歡的位置。'; $lang->about_board_category = '可以新增/刪除分類項目
分類有異常情況時,可以嘗試重新建立暫存檔。'; - $lang->about_except_notice = "設置公告列表項目,不再重複顯示到普通列表當中。"; - $lang->about_board = "可建立及管理討論板的模組。"; + $lang->about_except_notice = '設置公告列表項目,不再重複顯示到普通列表當中。'; + $lang->about_board = '可建立及管理討論板的模組。'; $lang->about_consultation = "咨詢功能是指除有管理權限的會員以外,其他會員只能瀏覽自己發表的主題。\n使用咨詢功能時系統將自動禁止非會員的發表主題權限。"; $lang->about_admin_mail = '有新的主題或評論時,將自動發電子郵件來通知管理員。
多數電子郵件由逗號(,)區隔。'; ?> \ No newline at end of file diff --git a/modules/member/lang/zh-TW.lang.php b/modules/member/lang/zh-TW.lang.php index 39b7324f9..d50458b6c 100644 --- a/modules/member/lang/zh-TW.lang.php +++ b/modules/member/lang/zh-TW.lang.php @@ -40,7 +40,7 @@ $lang->enable_openid = '支援 OpenID'; $lang->enable_join = '允許會員註冊'; $lang->enable_confirm = '使用郵件認證'; - $lang->enable_ssl = '使用 SSL功能'; + $lang->enable_ssl = '使用 SSL 功能'; $lang->security_sign_in = '使用安全登入'; $lang->limit_day = '認證限制'; $lang->limit_date = '限制日期'; @@ -144,10 +144,10 @@ $lang->msg_user_not_confirmed = '您的註冊資料還沒有被確認,請確認您的電子郵箱。'; $lang->msg_user_limited = '您輸入的帳號%s以後才可以開始使用。'; - $lang->about_user_id = '帳號必須由 3~20字以內的英文+數字組成,第一個字必須是英文。'; - $lang->about_password = '密碼必須在 6~20字以內。'; - $lang->about_user_name = '姓名必須是 2~20字以內。'; - $lang->about_nick_name = '暱稱必須是 2~20字以內。'; + $lang->about_user_id = '帳號必須由 3~20 字以內的英文+數字組成,第一個字必須是英文。'; + $lang->about_password = '密碼必須在 6~20 字以內。'; + $lang->about_user_name = '姓名必須是 2~20 字以內。'; + $lang->about_nick_name = '暱稱必須是 2~20 字以內。'; $lang->about_email_address = '電子郵件地址除郵件認證外,當修改密碼或忘記密碼時也可以使用。'; $lang->about_homepage = '請輸入您的網址。'; $lang->about_blog_url = '請輸入部落格網址。'; @@ -166,15 +166,15 @@ $lang->about_form_description = '說明欄裡輸入的內容,在註冊時會顯示。'; $lang->about_required = '註冊時成為必填項目。'; - $lang->about_enable_openid = '想要網站支援 OpenID時,請勾選此項。'; + $lang->about_enable_openid = '想要網站支援 OpenID 時,請勾選此項。'; $lang->about_enable_join = '選擇此項後,用戶才可以註冊。'; $lang->about_enable_confirm = '為確認會員註冊資料,會向會員輸入的郵件地址發送註冊認證郵件。'; - $lang->about_enable_ssl = '如主機提供 SSL認證服務,新會員註冊/修改會員資料/登入等資料的傳送將使用 SSL(https)認證。'; + $lang->about_enable_ssl = '如主機提供 SSL 認證服務,新會員註冊/修改會員資料/登入等資料的傳送將使用 SSL(https) 認證。'; $lang->about_limit_day = '註冊會員後的認證有效期限。'; $lang->about_limit_date = '直到指定日期,否則該帳號都無法登入。'; - $lang->about_after_login_url = '可以指定登入後的頁面轉向 URL(留空為目前頁面)。'; - $lang->about_after_logout_url = '可以指定登出登錄後的頁面轉向url(留空為目前頁面)。'; - $lang->about_redirect_url = '請輸入註冊會員後的頁面轉向 URL。(留空為返回前頁)'; + $lang->about_after_login_url = '可以指定登入後的頁面轉向網址(留空為目前頁面)。'; + $lang->about_after_logout_url = '可以指定登出登錄後的頁面轉向網址(留空為目前頁面)。'; + $lang->about_redirect_url = '請輸入註冊會員後的頁面轉向網址。(留空為返回前頁)'; $lang->about_agreement = '沒有會員條款時不顯示。'; $lang->about_image_name = '用戶暱稱可以用圖片替代。'; @@ -185,8 +185,8 @@ $lang->about_member_default = '將成為註冊會員時的預設用戶組。'; - $lang->about_openid = '用 OpenID註冊時,該網站只儲存帳號和郵件等基本資料,密碼和認證處理是在提供 OpenID服務的網站中得到解決。'; - $lang->about_openid_leave = '刪除 OpenID就等於永久刪除站內會員的資料。
被刪除後,再重新登錄就等於新會員註冊,因此對以前自己寫的主題將失去其權限。'; + $lang->about_openid = '用 OpenID 註冊時,該網站只儲存帳號和郵件等基本資料,密碼和認證處理是在提供 OpenID 服務的網站中得到解決。'; + $lang->about_openid_leave = '刪除 OpenID 就等於永久刪除站內會員的資料。
被刪除後,再重新登錄就等於新會員註冊,因此對以前自己寫的主題將失去其權限。'; $lang->about_find_member_account = '帳號/密碼將發送到您註冊時,所輸入的電子郵件當中。
輸入註冊時的電子郵件地址後,請按「查詢帳號/密碼」按鈕。
'; $lang->about_member = "可以新增/修改/刪除會員及管理用戶組或註冊表單的會員管理模組。\n此模組不僅可以建立預設用戶組以外的其他用戶組來管理會員,並且通過註冊表單的管理獲得除會員基本資料以外的延伸資料。"; From 6487d18cfb3075af6d09c7b8d1fb6e1c932d72b7 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 9 Dec 2008 00:35:50 +0000 Subject: [PATCH 046/135] =?UTF-8?q?17523341=20*=20=ED=85=9C=ED=94=8C?= =?UTF-8?q?=EB=A6=BF=20=ED=83=9C=EA=B7=B8=EC=97=90=20'img'=EA=B0=80=20?= =?UTF-8?q?=EB=93=A4=EC=96=B4=EA=B0=88=20=EB=95=8C=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20(=EC=A0=95=EA=B7=9C=EC=8B=9D=20=EC=98=A4?= =?UTF-8?q?=EB=A5=98)?= 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@5044 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/template/TemplateHandler.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index 452946a33..aff0abe26 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -104,7 +104,7 @@ //$buff = preg_replace_callback('!<\!--#include\(([^\)]*?)\)-->!is', array($this, '_compileIncludeToCode'), $buff); // 이미지 태그 img의 src의 값이 http:// 나 / 로 시작하지 않으면 root경로부터 시작하도록 변경 - $buff = preg_replace_callback('/(img|input)([^>]*)src=[\'"]{1}(?!http)(.*?)[\'"]{1}/is', array($this, '_compileImgPath'), $buff); + $buff = preg_replace_callback('/<(img|input)([^>]*)src=[\'"]{1}(?!http)(.*?)[\'"]{1}.+>/is', array($this, '_compileImgPath'), $buff); // 변수를 변경 $buff = preg_replace_callback('/\{[^@^ ]([^\{\}\n]+)\}/i', array($this, '_compileVarToContext'), $buff); From fb9f5339cc310ca22a292fb809b1e831c78e7012 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 9 Dec 2008 00:41:09 +0000 Subject: [PATCH 047/135] =?UTF-8?q?=EC=97=90=EB=94=94=ED=84=B0=20=EB=AF=B8?= =?UTF-8?q?=EB=A6=AC=EB=B3=B4=EA=B8=B0=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= 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@5045 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/tpl/js/editor.js | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/editor/tpl/js/editor.js b/modules/editor/tpl/js/editor.js index 804cd33c5..1d1bcb886 100755 --- a/modules/editor/tpl/js/editor.js +++ b/modules/editor/tpl/js/editor.js @@ -448,6 +448,7 @@ function editorChangeMode(mode, editor_sequence) { if(!fo_obj) { fo_obj = xCreateElement('form'); fo_obj.id = "preview_form"; + fo_obj.method = "post"; fo_obj.action = request_uri; fo_obj.target = "editor_preview_"+editor_sequence; xInnerHtml(fo_obj,''); From 97b98ecdacb85ea8a1f1d138eb8f114019c1cbd9 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 9 Dec 2008 00:43:49 +0000 Subject: [PATCH 048/135] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5046 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/template/TemplateHandler.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/template/TemplateHandler.class.php b/classes/template/TemplateHandler.class.php index aff0abe26..16c1984b7 100644 --- a/classes/template/TemplateHandler.class.php +++ b/classes/template/TemplateHandler.class.php @@ -104,7 +104,7 @@ //$buff = preg_replace_callback('!<\!--#include\(([^\)]*?)\)-->!is', array($this, '_compileIncludeToCode'), $buff); // 이미지 태그 img의 src의 값이 http:// 나 / 로 시작하지 않으면 root경로부터 시작하도록 변경 - $buff = preg_replace_callback('/<(img|input)([^>]*)src=[\'"]{1}(?!http)(.*?)[\'"]{1}.+>/is', array($this, '_compileImgPath'), $buff); + $buff = preg_replace_callback('/<(img|input)([^>]*)src=[\'"]{1}(?!http)(.*?)[\'"]{1}/is', array($this, '_compileImgPath'), $buff); // 변수를 변경 $buff = preg_replace_callback('/\{[^@^ ]([^\{\}\n]+)\}/i', array($this, '_compileVarToContext'), $buff); From aca1266b33462168fff58e0c58dbe6067ab169af Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 9 Dec 2008 02:17:58 +0000 Subject: [PATCH 049/135] =?UTF-8?q?17523934=20*=20XE.setCheckedAll()=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=20=20*=20=EC=95=BD=EA=B0=84=EC=9D=98=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= 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@5047 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 247 +++++++++++++++++++++++++------------------- 1 file changed, 143 insertions(+), 104 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index d89dd1587..b3a8aa9ff 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -4,9 +4,52 @@ * @brief 몇가지 유용한 & 기본적으로 자주 사용되는 자바스크립트 함수들 모음 **/ - +/* jQuery 참조변수($) 제거 */ if(jQuery) jQuery.noConflict(); +/** + * @brief XE 공용 유틸리티 함수 + * @namespace XE + */ +;(function($) { +window.XE = { + /** + * @brief 특정 name을 가진 체크박스들의 checked 속성 변경 + * @param [itemName='cart' [,checked=true]] | [checked] + */ + setCheckedAll : function() { + var itemName='cart', checked=true; + + switch(arguments.length) { + case 1: + if(typeof(arguments[0]) == "string" && arguments[0] != 'toggle') { + itemName = arguments[0]; + } else { + checked = arguments[0]; + } + break; + case 2: + itemName = arguments[0]; + checked = arguments[1]; + } + + if(checked == 'toggle') { + $('[name='+itemName+']').each(function() { + if($(this).attr('checked')) { + $(this).attr('checked', false); + } else { + $(this).attr('checked', true); + } + }); + } else { + $('[name='+itemName+']').attr('checked', checked); + } + } +} +}) (jQuery); + + + /** * @brief location.href에서 특정 key의 값을 return **/ @@ -65,46 +108,6 @@ String.prototype.setQuery = function(key, val) { return encodeURI(uri); } -/** - * @breif replace outerHTML - **/ -function replaceOuterHTML(obj, html) { - if(obj.outerHTML) { - obj.outerHTML = html; - } else { - var dummy = xCreateElement("div"); - xInnerHtml(dummy, html); - var parent = obj.parentNode; - while(dummy.firstChild) { - parent.insertBefore(dummy.firstChild, obj); - } - parent.removeChild(obj); - } -} - -/** - * @breif get outerHTML - **/ -function getOuterHTML(obj) { - if(obj.outerHTML) return obj.outerHTML; - var dummy = xCreateElement("div"); - dummy.insertBefore(obj, dummy.lastChild); - return xInnerHtml(dummy); -} - -/** - * @brief xSleep(micro time) - **/ -function xSleep(sec) { - sec = sec / 1000; - var now = new Date(); - var sleep = new Date(); - while( sleep.getTime() - now.getTime() < sec) { - sleep = new Date(); - } -} - - /** * @brief string prototype으로 trim 함수 추가 **/ @@ -112,6 +115,7 @@ String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } + /** * @brief 주어진 인자가 하나라도 defined되어 있지 않으면 false return **/ @@ -144,7 +148,7 @@ function winopen(url, target, attribute) { } /** - * @brief 팝업으로만 띄우기 + * @brief 팝업으로만 띄우기 * common/tpl/popup_layout.html이 요청되는 XE내의 팝업일 경우에 사용 **/ function popopen(url, target) { @@ -229,7 +233,7 @@ objectExtend = function() { // Recurse if we're merging object values if ( deep && copy && typeof copy == "object" && !copy.nodeType ) - target[ name ] = objectExtend( deep, + target[ name ] = objectExtend( deep, // Never move original objects, clone them src || ( copy.length != null ? [ ] : { } ) , copy ); @@ -269,7 +273,7 @@ function displayMultimedia(src, width, height, options) { var html = ""; if(/\.swf/i.test(src)) { - clsid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'; + clsid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'; codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0"; html = ''; html += ''; @@ -290,50 +294,7 @@ function displayMultimedia(src, width, height, options) { } /** - * @brief 에디터에서 사용되는 내용 여닫는 코드 (고정, zbxe용) - **/ -function zbxe_folder_open(id) { - var open_text_obj = xGetElementById("folder_open_"+id); - var close_text_obj = xGetElementById("folder_close_"+id); - var folder_obj = xGetElementById("folder_"+id); - open_text_obj.style.display = "none"; - close_text_obj.style.display = "block"; - folder_obj.style.display = "block"; -} - -function zbxe_folder_close(id) { - var open_text_obj = xGetElementById("folder_open_"+id); - var close_text_obj = xGetElementById("folder_close_"+id); - var folder_obj = xGetElementById("folder_"+id); - open_text_obj.style.display = "block"; - close_text_obj.style.display = "none"; - folder_obj.style.display = "none"; -} - - -/** - * @brief 에디터에서 사용하되 내용 여닫는 코드 (zb5beta beta 호환용으로 남겨 놓음) - **/ -function svc_folder_open(id) { - var open_text_obj = xGetElementById("_folder_open_"+id); - var close_text_obj = xGetElementById("_folder_close_"+id); - var folder_obj = xGetElementById("_folder_"+id); - open_text_obj.style.display = "none"; - close_text_obj.style.display = "block"; - folder_obj.style.display = "block"; -} - -function svc_folder_close(id) { - var open_text_obj = xGetElementById("_folder_open_"+id); - var close_text_obj = xGetElementById("_folder_close_"+id); - var folder_obj = xGetElementById("_folder_"+id); - open_text_obj.style.display = "block"; - close_text_obj.style.display = "none"; - folder_obj.style.display = "none"; -} - -/** - * @brief 팝업의 경우 내용에 맞춰 현 윈도우의 크기를 조절해줌 + * @brief 팝업의 경우 내용에 맞춰 현 윈도우의 크기를 조절해줌 * 팝업의 내용에 맞게 크기를 늘리는 것은... 쉽게 되지는 않음.. ㅡ.ㅜ * popup_layout 에서 window.onload 시 자동 요청됨. **/ @@ -365,7 +326,7 @@ function setFixedPopupSize() { else w += 6; } window.resizeTo(w,h); - + var h1 = xHeight(window.document.body); window.resizeBy(0,h-h1); @@ -464,17 +425,17 @@ function chkPopupMenu(evt) { } -function GetObjTop(obj) { - if(obj.offsetParent == document.body) return xOffsetTop(obj); - else return xOffsetTop(obj) + GetObjTop(obj.offsetParent); -} -function GetObjLeft(obj) { - if(obj.offsetParent == document.body) return xOffsetLeft(obj); - else return xOffsetLeft(obj) + GetObjLeft(obj.offsetParent); -} +function GetObjTop(obj) { + if(obj.offsetParent == document.body) return xOffsetTop(obj); + else return xOffsetTop(obj) + GetObjTop(obj.offsetParent); +} +function GetObjLeft(obj) { + if(obj.offsetParent == document.body) return xOffsetLeft(obj); + else return xOffsetLeft(obj) + GetObjLeft(obj.offsetParent); +} function displayPopupMenu(ret_obj, response_tags, params) { - + var target_srl = params["target_srl"]; var menu_id = params["menu_id"]; var menus = ret_obj['menus']; @@ -529,7 +490,7 @@ function displayPopupMenu(ret_obj, response_tags, params) { if(xWidth(area)+xLeft(area)>xClientWidth()+xScrollLeft()) xLeft(area, xClientWidth()-xWidth(area)+xScrollLeft()); if(xHeight(area)+xTop(area)>xClientHeight()+xScrollTop()) xTop(area, xClientHeight()-xHeight(area)+xScrollTop()); area.style.visibility = "visible"; - } + } } /** @@ -553,7 +514,7 @@ function completeMessage(ret_obj) { } /** - * @brief 날짜 선택 (달력 열기) + * @brief 날짜 선택 (달력 열기) **/ function open_calendar(fo_id, day_str, callback_func) { if(typeof(day_str)=="undefined") day_str = ""; @@ -666,7 +627,7 @@ function viewSkinInfo(module, skin) { } /* 체크박스 선택 */ -function checkboxSelectAll(form, name, option){ +function checkboxSelectAll(form, name, option){ var value; var fo_obj = xGetElementById(form); for ( var i = 0 ; i < fo_obj.length ; i++ ){ @@ -891,9 +852,9 @@ if(xIE4Up) { } if(!disabled_exists) continue; - + sels[i].oldonchange = sels[i].onchange; - sels[i].onchange = function() { + sels[i].onchange = function() { if(this.options[this.selectedIndex].disabled) { this.selectedIndex = first_enable[i]; @@ -920,7 +881,7 @@ function toggleSecuritySignIn() { var href = location.href; if(/https:\/\//i.test(href)) location.href = href.replace(/^https/i,'http'); else location.href = href.replace(/^http/i,'https'); -} +} /* 하위호환성 문제 */ if(typeof(resizeImageContents) == 'undefined') @@ -931,3 +892,81 @@ if(typeof(resizeImageContents) == 'undefined') function reloadDocument() { location.reload(); } + + + +/* -------------------------- + * XE 2.0에서 제거될 함수 + * This feature has been DEPRECATED and REMOVED as of XE 2.0. + * -------------------------- */ +/** + * @brief 에디터에서 사용되는 내용 여닫는 코드 (고정, zbxe용) + * This feature has been DEPRECATED and REMOVED as of XE 2.0. + **/ +function zbxe_folder_open(id) { + jQuery("#folder_open_"+id).hide(); + jQuery("#folder_close_"+id).show(); + jQuery("#folder_"+id).show(); +} +function zbxe_folder_close(id) { + jQuery("#folder_open_"+id).show(); + jQuery("#folder_close_"+id).hide(); + jQuery("#folder_"+id).hide(); +} + +/** + * @brief 에디터에서 사용하되 내용 여닫는 코드 (zb5beta beta 호환용으로 남겨 놓음) + * This feature has been DEPRECATED and REMOVED as of XE 2.0. + **/ +function svc_folder_open(id) { + jQuery("#_folder_open_"+id).hide(); + jQuery("#_folder_close_"+id).show(); + jQuery("#_folder_"+id).show(); +} +function svc_folder_close(id) { + jQuery("#_folder_open_"+id).show(); + jQuery("#_folder_close_"+id).hide(); + jQuery("#_folder_"+id).hide(); +} + +/** + * @breif replace outerHTML + * This feature has been DEPRECATED and REMOVED as of XE 2.0. + **/ +function replaceOuterHTML(obj, html) { + if(obj.outerHTML) { + obj.outerHTML = html; + } else { + var dummy = xCreateElement("div"); + xInnerHtml(dummy, html); + var parent = obj.parentNode; + while(dummy.firstChild) { + parent.insertBefore(dummy.firstChild, obj); + } + parent.removeChild(obj); + } +} + +/** + * @breif get outerHTML + * This feature has been DEPRECATED and REMOVED as of XE 2.0. + **/ +function getOuterHTML(obj) { + if(obj.outerHTML) return obj.outerHTML; + var dummy = xCreateElement("div"); + dummy.insertBefore(obj, dummy.lastChild); + return xInnerHtml(dummy); +} + +/** + * @brief xSleep(micro time) + * This feature has been DEPRECATED and REMOVED as of XE 2.0. + **/ +function xSleep(sec) { + sec = sec / 1000; + var now = new Date(); + var sleep = new Date(); + while( sleep.getTime() - now.getTime() < sec) { + sleep = new Date(); + } +} \ No newline at end of file From 6f1f831dda7d5cb2690d3539d059b146cd8fa5f0 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 9 Dec 2008 03:16:42 +0000 Subject: [PATCH 050/135] =?UTF-8?q?17523934=20*=20XE.setCheckedAll()=20?= =?UTF-8?q?=EC=9D=B8=EC=88=98=20=EB=B3=80=EA=B2=BD=20=20=20*=20clickCheckB?= =?UTF-8?q?oxAll()=20=EB=8C=80=EC=B2=B4=ED=95=98=EA=B8=B0=20=EC=9C=84?= =?UTF-8?q?=ED=95=A8?= 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@5048 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index b3a8aa9ff..7672d639c 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -15,34 +15,36 @@ if(jQuery) jQuery.noConflict(); window.XE = { /** * @brief 특정 name을 가진 체크박스들의 checked 속성 변경 - * @param [itemName='cart' [,checked=true]] | [checked] + * @param [itemName='cart',][options={checked:true, doClick:false}] */ setCheckedAll : function() { - var itemName='cart', checked=true; + var itemName='cart', options={checked:true, doClick:false}; switch(arguments.length) { case 1: - if(typeof(arguments[0]) == "string" && arguments[0] != 'toggle') { + if(typeof(arguments[0]) == "string") { itemName = arguments[0]; } else { - checked = arguments[0]; + options = $.extend(options, arguments[0] || {}); } break; case 2: itemName = arguments[0]; - checked = arguments[1]; + options = $.extend(options, arguments[1] || {}); } - if(checked == 'toggle') { - $('[name='+itemName+']').each(function() { + var obj = $('[name='+itemName+']'); + + if(options.checked == 'toggle') { + obj.each(function() { if($(this).attr('checked')) { - $(this).attr('checked', false); + (options.doClick == true) ? $(this).click() : $(this).attr('checked', false); } else { - $(this).attr('checked', true); + (options.doClick == true) ? $(this).click() : $(this).attr('checked', true); } }); } else { - $('[name='+itemName+']').attr('checked', checked); + (options.doClick == true) ? obj.click() : obj.attr('checked', options.checked); } } } From 8d61cd768dffde14c04284bc0821c3c824a5d797 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 9 Dec 2008 03:41:11 +0000 Subject: [PATCH 051/135] =?UTF-8?q?17523934=20*=20XE.setCheckedAll()=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=EB=AA=85=20=EB=B3=80=EA=B2=BD=20XE.checkboxT?= =?UTF-8?q?oggleAll()=20=20=20*=20checked=20=EA=B8=B0=EB=B3=B8=20=EA=B0=92?= =?UTF-8?q?=20'toggle'=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= 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@5049 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index 7672d639c..b2a570e1b 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -17,8 +17,8 @@ window.XE = { * @brief 특정 name을 가진 체크박스들의 checked 속성 변경 * @param [itemName='cart',][options={checked:true, doClick:false}] */ - setCheckedAll : function() { - var itemName='cart', options={checked:true, doClick:false}; + checkboxToggleAll : function() { + var itemName='cart', options={checked:'toggle', doClick:false}; switch(arguments.length) { case 1: @@ -33,7 +33,7 @@ window.XE = { options = $.extend(options, arguments[1] || {}); } - var obj = $('[name='+itemName+']'); + var obj = $('input[name='+itemName+']:checkbox'); if(options.checked == 'toggle') { obj.each(function() { From 7f2c857505dea44270602e486b588523a8c51d92 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 9 Dec 2008 03:50:31 +0000 Subject: [PATCH 052/135] =?UTF-8?q?issueTracker=EC=9D=98=20=EC=AA=BD?= =?UTF-8?q?=EC=A7=80=20=EB=B0=9C=EC=86=A1=20=EC=98=A4=EB=A5=98=20=EB=95=8C?= =?UTF-8?q?=EB=AC=B8=EC=97=90=20=ED=9E=88=EC=8A=A4=ED=86=A0=EB=A6=AC?= =?UTF-8?q?=EA=B0=80=20=EC=A0=80=EC=9E=A5=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8D=98=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= 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@5050 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 4 ++-- .../issuetracker/issuetracker.controller.php | 22 +++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index b2a570e1b..4f7c3e27a 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -88,7 +88,7 @@ String.prototype.setQuery = function(key, val) { for(var i in args) { if( !args.hasOwnProperty(i) ) continue; var arg = args[i]; - if(!arg.toString().trim()) continue; + if(!arg || !arg.toString().trim()) continue; q_list[q_list.length] = i+'='+arg; } @@ -971,4 +971,4 @@ function xSleep(sec) { while( sleep.getTime() - now.getTime() < sec) { sleep = new Date(); } -} \ No newline at end of file +} diff --git a/modules/issuetracker/issuetracker.controller.php b/modules/issuetracker/issuetracker.controller.php index 2773b4e83..c2e083ba0 100644 --- a/modules/issuetracker/issuetracker.controller.php +++ b/modules/issuetracker/issuetracker.controller.php @@ -305,18 +305,18 @@ if($change_args!==null) { // 이슈 상태 변경시 보고자에게 쪽지 발송 if($oIssue->get('member_srl') && $oIssue->useNotify()) { - // 현재 로그인한 사용자와 글을 쓴 사용자를 비교하여 동일하면 return - if($logged_info->member_srl == $oIssue->get('member_srl')) return; + // 현재 로그인한 사용자와 글을 쓴 사용자를 비교하여 동일하지 않으면 진행 + if($logged_info->member_srl != $oIssue->get('member_srl')) { + // 변수 정리 + $title = '['.Context::getLang('cmd_resolve_as').'-'.$status_lang[$change_args->status].'] '.$oIssue->getTitleText(); + $content = sprintf('%s

from : %s', nl2br($args->content), $oIssue->getPermanentUrl(), $oIssue->getPermanentUrl()); + $receiver_srl = $oIssue->get('member_srl'); + $sender_member_srl = $logged_info->member_srl; - // 변수 정리 - $title = '['.Context::getLang('cmd_resolve_as').'-'.$status_lang[$change_args->status].'] '.$oIssue->getTitleText(); - $content = sprintf('%s

from : %s', nl2br($args->content), $oIssue->getPermanentUrl(), $oIssue->getPermanentUrl()); - $receiver_srl = $oIssue->get('member_srl'); - $sender_member_srl = $logged_info->member_srl; - - // 쪽지 발송 - $oCommunicationController = &getController('communication'); - $oCommunicationController->sendMessage($sender_member_srl, $receiver_srl, $title, $content, false); + // 쪽지 발송 + $oCommunicationController = &getController('communication'); + $oCommunicationController->sendMessage($sender_member_srl, $receiver_srl, $title, $content, false); + } } $change_args->target_srl = $target_srl; From cc088e7e3b1a1c6a1a0a15562f44655e3139b211 Mon Sep 17 00:00:00 2001 From: bnu Date: Tue, 9 Dec 2008 05:31:14 +0000 Subject: [PATCH 053/135] =?UTF-8?q?17523934=20*=20=EC=B2=B4=ED=81=AC?= =?UTF-8?q?=EB=B0=95=EC=8A=A4=20=ED=86=A0=EA=B8=80/=EC=A0=84=EC=B2=B4?= =?UTF-8?q?=EC=84=A0=ED=83=9D/=EC=A0=84=EC=B2=B4=ED=95=B4=EC=A0=9C=20XE.ch?= =?UTF-8?q?eckboxToggleAll()=EB=A1=9C=20=EA=B5=90=EC=B2=B4?= 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@5051 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 75 ++++++++++--------- modules/addon/tpl/setup_addon.html | 4 +- modules/board/skins/xe_board/style.forum.html | 2 +- .../board/skins/xe_board/style.gallery.html | 2 +- modules/board/skins/xe_board/style.list.html | 2 +- .../board/skins/xe_board/style.webzine.html | 2 +- .../board/skins/xe_default/_style.forum.html | 2 +- .../skins/xe_default/_style.gallery.html | 2 +- .../board/skins/xe_default/_style.list.html | 2 +- .../skins/xe_default/_style.webzine.html | 2 +- modules/board/tpl/category_info.html | 2 +- modules/board/tpl/grant_list.html | 4 +- modules/board/tpl/index.html | 2 +- modules/board/tpl/js/board_admin.js | 24 ------ modules/comment/tpl/comment_list.html | 6 +- modules/comment/tpl/declared_list.html | 6 +- .../communication/skins/default/friends.html | 2 +- .../communication/skins/default/messages.html | 2 +- modules/document/tpl/checked_list.html | 2 +- modules/document/tpl/declared_list.html | 2 +- modules/document/tpl/document_list.html | 2 +- modules/editor/tpl/setup_component.html | 4 +- modules/file/tpl/file_list.html | 7 +- modules/file/tpl/js/file_admin.js | 6 -- .../skins/xe_official/board_grant_list.html | 4 +- .../homepage/skins/xe_official/js/homepage.js | 24 ------ .../skins/xe_official/page_insert.html | 4 +- modules/integration_search/tpl/index.html | 6 +- .../tpl/js/integration_search_admin.js | 26 ------- modules/issuetracker/tpl/grant_list.html | 4 +- modules/issuetracker/tpl/js/issue_admin.js | 24 ------ modules/lifepod/tpl/grant_list.html | 4 +- modules/lifepod/tpl/js/lifepod_admin.js | 24 ------ modules/lifepod/tpl/js/springnote_admin.js | 26 ------- modules/member/tpl/member_list.html | 2 +- modules/opage/tpl/js/opage_admin.js | 26 ------- modules/opage/tpl/opage_insert.html | 4 +- modules/page/tpl/js/page_admin.js | 25 ------- modules/page/tpl/page_info.html | 4 +- modules/page/tpl/page_insert.html | 4 +- modules/planet/tpl/js/planet.js | 24 ------ modules/planet/tpl/setup.html | 4 +- modules/poll/tpl/poll_list.html | 6 +- modules/springnote/tpl/grant_list.html | 4 +- modules/springnote/tpl/js/springnote_admin.js | 24 ------ .../tpl/commentnotify_list.html | 6 +- modules/trackback/tpl/trackback_list.html | 6 +- modules/widget/tpl/widget_generate_code.html | 2 +- .../tpl/widget_generate_code_in_page.html | 2 +- 49 files changed, 103 insertions(+), 352 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index 4f7c3e27a..a781244c7 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -18,7 +18,7 @@ window.XE = { * @param [itemName='cart',][options={checked:true, doClick:false}] */ checkboxToggleAll : function() { - var itemName='cart', options={checked:'toggle', doClick:false}; + var itemName='cart', options={wrapId:'', checked:'toggle', doClick:false}; switch(arguments.length) { case 1: @@ -33,15 +33,14 @@ window.XE = { options = $.extend(options, arguments[1] || {}); } - var obj = $('input[name='+itemName+']:checkbox'); + if(options.doClick == true) options.checked = null; + if(options.wrapId) options.wrapId ='#'+options.wrapId+' '; + + var obj = $(options.wrapId+'input[name='+itemName+']:checkbox'); if(options.checked == 'toggle') { obj.each(function() { - if($(this).attr('checked')) { - (options.doClick == true) ? $(this).click() : $(this).attr('checked', false); - } else { - (options.doClick == true) ? $(this).click() : $(this).attr('checked', true); - } + $(this).attr('checked', ($(this).attr('checked')) ? false : true); }); } else { (options.doClick == true) ? obj.click() : obj.attr('checked', options.checked); @@ -628,35 +627,7 @@ function viewSkinInfo(module, skin) { popopen("./?module=module&act=dispModuleSkinInfo&selected_module="+module+"&skin="+skin, 'SkinInfo'); } -/* 체크박스 선택 */ -function checkboxSelectAll(form, name, option){ - var value; - var fo_obj = xGetElementById(form); - for ( var i = 0 ; i < fo_obj.length ; i++ ){ - if(typeof(option) == "undefined") { - var select_mode = fo_obj[i].checked; - if ( select_mode == 0 ){ - value = true; - select_mode = 1; - }else{ - value = false; - select_mode = 0; - } - } - else if(option == true) value = true - else if(option == false) value = false - if(fo_obj[i].name == name) fo_obj[i].checked = value; - } -} - -/* 체크박스를 실행 */ -function clickCheckBoxAll(form, name) { - var fo_obj = xGetElementById(form); - for ( var i = 0 ; i < fo_obj.length ; i++ ){ - if(fo_obj[i].name == name) fo_obj[i].click(); - } -} /* 관리자가 문서를 관리하기 위해서 선택시 세션에 넣음 */ var addedDocument = new Array(); @@ -972,3 +943,37 @@ function xSleep(sec) { sleep = new Date(); } } + +/* 체크박스를 실행 + * This feature has been DEPRECATED and REMOVED as of XE 2.0. + */ +function clickCheckBoxAll(form, name) { + var fo_obj = xGetElementById(form); + for ( var i = 0; i < fo_obj.length; i++){ + if(fo_obj[i].name == name) fo_obj[i].click(); + } +} + +/* 체크박스 선택 + * This feature has been DEPRECATED and REMOVED as of XE 2.0. + */ +function checkboxSelectAll(form, name, option){ + var value; + var fo_obj = xGetElementById(form); + for ( var i = 0 ; i < fo_obj.length ; i++ ){ + if(typeof(option) == "undefined") { + var select_mode = fo_obj[i].checked; + if ( select_mode == 0 ){ + value = true; + select_mode = 1; + }else{ + value = false; + select_mode = 0; + } + } + else if(option == true) value = true + else if(option == false) value = false + + if(fo_obj[i].name == name) fo_obj[i].checked = value; + } +} \ No newline at end of file diff --git a/modules/addon/tpl/setup_addon.html b/modules/addon/tpl/setup_addon.html index 5caa6a0ad..a3755e6c5 100644 --- a/modules/addon/tpl/setup_addon.html +++ b/modules/addon/tpl/setup_addon.html @@ -68,13 +68,13 @@
{$lang->module} - +

{$lang->about_addon_mid}

- + {$modules->title} diff --git a/modules/board/skins/xe_board/style.forum.html b/modules/board/skins/xe_board/style.forum.html index 19881dea2..4741e08fe 100644 --- a/modules/board/skins/xe_board/style.forum.html +++ b/modules/board/skins/xe_board/style.forum.html @@ -7,7 +7,7 @@
- +
{$lang->no}
diff --git a/modules/board/skins/xe_board/style.webzine.html b/modules/board/skins/xe_board/style.webzine.html index 5eacee08d..2c3620396 100644 --- a/modules/board/skins/xe_board/style.webzine.html +++ b/modules/board/skins/xe_board/style.webzine.html @@ -16,7 +16,7 @@
{$lang->no}
diff --git a/modules/board/skins/xe_default/_style.forum.html b/modules/board/skins/xe_default/_style.forum.html index b622de972..6213b74e9 100644 --- a/modules/board/skins/xe_default/_style.forum.html +++ b/modules/board/skins/xe_default/_style.forum.html @@ -7,7 +7,7 @@
- +
{$lang->no} diff --git a/modules/board/skins/xe_default/_style.webzine.html b/modules/board/skins/xe_default/_style.webzine.html index f0e2473e7..500dcc9e0 100644 --- a/modules/board/skins/xe_default/_style.webzine.html +++ b/modules/board/skins/xe_default/_style.webzine.html @@ -18,7 +18,7 @@
{$lang->no} diff --git a/modules/board/tpl/category_info.html b/modules/board/tpl/category_info.html index 83ceb74b0..b51096933 100644 --- a/modules/board/tpl/category_info.html +++ b/modules/board/tpl/category_info.html @@ -23,7 +23,7 @@
{$lang->category_group_srls}
{$lang->category_group_srls}
group_srls)&&in_array($key, $category_info->group_srls))-->checked="checked" class="checkbox" />
diff --git a/modules/board/tpl/grant_list.html b/modules/board/tpl/grant_list.html index 02fa952bc..36f90bbbe 100644 --- a/modules/board/tpl/grant_list.html +++ b/modules/board/tpl/grant_list.html @@ -24,8 +24,8 @@
{$lang->cmd_select_all}{$lang->cmd_unselect_all}{$lang->cmd_select_all}{$lang->cmd_unselect_all}
{$lang->no}
diff --git a/modules/board/tpl/js/board_admin.js b/modules/board/tpl/js/board_admin.js index 5a379af6a..14356cb52 100644 --- a/modules/board/tpl/js/board_admin.js +++ b/modules/board/tpl/js/board_admin.js @@ -57,30 +57,6 @@ function completeUpdateCategory(ret_obj) { } /* 권한 관련 */ -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i
{$lang->no}
- {$lang->cmd_unselect_all} - {$lang->cmd_reverse_all} + {$lang->cmd_unselect_all} + {$lang->cmd_reverse_all}
- + @@ -37,8 +37,8 @@ diff --git a/modules/communication/skins/default/friends.html b/modules/communication/skins/default/friends.html index f68e5b451..322de3082 100644 --- a/modules/communication/skins/default/friends.html +++ b/modules/communication/skins/default/friends.html @@ -25,7 +25,7 @@
{$lang->comment}
{$lang->user_name}
{$lang->date}
{$lang->cmd_cancel_declare} - {$lang->cmd_select_all} - {$lang->cmd_reverse_all} + {$lang->cmd_select_all} + {$lang->cmd_reverse_all}
- +
- + - + diff --git a/modules/document/tpl/document_list.html b/modules/document/tpl/document_list.html index 6e9eb5ef8..d1232ed49 100644 --- a/modules/document/tpl/document_list.html +++ b/modules/document/tpl/document_list.html @@ -16,7 +16,7 @@ - + - + diff --git a/modules/file/tpl/js/file_admin.js b/modules/file/tpl/js/file_admin.js index 92eff1785..e69de29bb 100644 --- a/modules/file/tpl/js/file_admin.js +++ b/modules/file/tpl/js/file_admin.js @@ -1,6 +0,0 @@ -function doCheckAll() { - var fo_obj = xGetElementById('fo_list'); - for(var i=0;i{$v->title} - - + + diff --git a/modules/homepage/skins/xe_official/js/homepage.js b/modules/homepage/skins/xe_official/js/homepage.js index 6d7d878da..8daa47a61 100644 --- a/modules/homepage/skins/xe_official/js/homepage.js +++ b/modules/homepage/skins/xe_official/js/homepage.js @@ -544,30 +544,6 @@ function completeDeleteGroup(ret_obj) { } -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i{$v->title} - - + + diff --git a/modules/integration_search/tpl/index.html b/modules/integration_search/tpl/index.html index c2b32bb3c..96bcf0da1 100644 --- a/modules/integration_search/tpl/index.html +++ b/modules/integration_search/tpl/index.html @@ -22,7 +22,7 @@ - + @@ -40,7 +40,7 @@ @@ -51,5 +51,5 @@ -
{$lang->receiver} diff --git a/modules/document/tpl/checked_list.html b/modules/document/tpl/checked_list.html index 397c75420..84f60cba7 100644 --- a/modules/document/tpl/checked_list.html +++ b/modules/document/tpl/checked_list.html @@ -14,7 +14,7 @@
- {$lang->cmd_select} + {$lang->cmd_select}
  • {$document->getNickName()}
    {$document->getTitle()}
  • diff --git a/modules/document/tpl/declared_list.html b/modules/document/tpl/declared_list.html index 837de2393..a932424f6 100644 --- a/modules/document/tpl/declared_list.html +++ b/modules/document/tpl/declared_list.html @@ -16,7 +16,7 @@
{$lang->no}
{$lang->title}
{$lang->user_name}
{$lang->cmd_declare}
{$lang->no}
{$lang->module} - +

{$lang->about_component_mid}

- + {$modules->title} diff --git a/modules/file/tpl/file_list.html b/modules/file/tpl/file_list.html index e68563fa5..a819db452 100644 --- a/modules/file/tpl/file_list.html +++ b/modules/file/tpl/file_list.html @@ -1,5 +1,4 @@ - @@ -15,7 +14,7 @@
{$lang->no}
- {$lang->cmd_unselect_all} - {$lang->cmd_reverse_all} + {$lang->cmd_unselect_all} + {$lang->cmd_reverse_all}
{$lang->cmd_select_all}{$lang->cmd_unselect_all}{$lang->cmd_select_all}{$lang->cmd_unselect_all}
{$lang->cmd_select_all}{$lang->cmd_unselect_all}{$lang->cmd_select_all}{$lang->cmd_unselect_all}
{$lang->about_target_module} {$lang->about_target_module}
{$val->module} - target_mid))-->checked="checked" /> + target_mid))-->checked="checked" />
+
diff --git a/modules/integration_search/tpl/js/integration_search_admin.js b/modules/integration_search/tpl/js/integration_search_admin.js index b2bf3b494..3e2ba967a 100644 --- a/modules/integration_search/tpl/js/integration_search_admin.js +++ b/modules/integration_search/tpl/js/integration_search_admin.js @@ -3,29 +3,3 @@ * @author zero (zero@nzeo.com) * @brief integration_search 모듈의 관리자용 javascript **/ - -/* 권한 관련 */ -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i{$v->title} - {$lang->cmd_select_all} - {$lang->cmd_unselect_all} + {$lang->cmd_select_all} + {$lang->cmd_unselect_all} diff --git a/modules/issuetracker/tpl/js/issue_admin.js b/modules/issuetracker/tpl/js/issue_admin.js index 31cadcda9..423a72758 100644 --- a/modules/issuetracker/tpl/js/issue_admin.js +++ b/modules/issuetracker/tpl/js/issue_admin.js @@ -95,30 +95,6 @@ function completeUpdateCategory(ret_obj) { } /* 권한 관련 */ -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i{$v->title} - {$lang->cmd_select_all} - {$lang->cmd_unselect_all} + {$lang->cmd_select_all} + {$lang->cmd_unselect_all} diff --git a/modules/lifepod/tpl/js/lifepod_admin.js b/modules/lifepod/tpl/js/lifepod_admin.js index 1486c17f0..64e6e1d93 100644 --- a/modules/lifepod/tpl/js/lifepod_admin.js +++ b/modules/lifepod/tpl/js/lifepod_admin.js @@ -33,30 +33,6 @@ function completeDeleteLifepod(ret_obj) { } /* 권한 관련 */ -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i
{$lang->no}
-
+
{$lang->user_id}
{$lang->user_name}
{$lang->nick_name}
diff --git a/modules/opage/tpl/js/opage_admin.js b/modules/opage/tpl/js/opage_admin.js index 9c4ee1c60..4f94966de 100644 --- a/modules/opage/tpl/js/opage_admin.js +++ b/modules/opage/tpl/js/opage_admin.js @@ -47,29 +47,3 @@ function doChangeCategory(fo_obj) { } return true; } - -/* 권한 관련 */ -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i{$v->title} - {$lang->cmd_select_all} - {$lang->cmd_unselect_all} + {$lang->cmd_select_all} + {$lang->cmd_unselect_all} diff --git a/modules/page/tpl/js/page_admin.js b/modules/page/tpl/js/page_admin.js index fb95953f6..6fef7bd58 100644 --- a/modules/page/tpl/js/page_admin.js +++ b/modules/page/tpl/js/page_admin.js @@ -79,28 +79,3 @@ function completeRemoveWidgetCache(ret_obj) { alert(message); location.reload(); } - -/* 권한 관련 */ -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i{$v->title} - {$lang->cmd_select_all} - {$lang->cmd_unselect_all} + {$lang->cmd_select_all} + {$lang->cmd_unselect_all} diff --git a/modules/page/tpl/page_insert.html b/modules/page/tpl/page_insert.html index 6167d4269..0333544aa 100644 --- a/modules/page/tpl/page_insert.html +++ b/modules/page/tpl/page_insert.html @@ -69,8 +69,8 @@ - {$lang->cmd_select_all} - {$lang->cmd_unselect_all} + {$lang->cmd_select_all} + {$lang->cmd_unselect_all} diff --git a/modules/planet/tpl/js/planet.js b/modules/planet/tpl/js/planet.js index c53ed77b0..e3cf9b3b0 100644 --- a/modules/planet/tpl/js/planet.js +++ b/modules/planet/tpl/js/planet.js @@ -18,30 +18,6 @@ function completeInsertConfig(ret_obj, response_tags) { } /* 권한 관련 */ -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i{$v->title} - {$lang->cmd_select_all} - {$lang->cmd_unselect_all} + {$lang->cmd_select_all} + {$lang->cmd_unselect_all} diff --git a/modules/poll/tpl/poll_list.html b/modules/poll/tpl/poll_list.html index 7fcdd8ef6..7de2f5c50 100644 --- a/modules/poll/tpl/poll_list.html +++ b/modules/poll/tpl/poll_list.html @@ -16,7 +16,7 @@
{$lang->no}
-
+
{$lang->title}
{$lang->poll_checkcount}
{$lang->poll_join_count}
@@ -41,8 +41,8 @@ diff --git a/modules/springnote/tpl/grant_list.html b/modules/springnote/tpl/grant_list.html index 2386e00fc..8ac945af0 100644 --- a/modules/springnote/tpl/grant_list.html +++ b/modules/springnote/tpl/grant_list.html @@ -24,8 +24,8 @@ - {$lang->cmd_select_all} - {$lang->cmd_unselect_all} + {$lang->cmd_select_all} + {$lang->cmd_unselect_all} diff --git a/modules/springnote/tpl/js/springnote_admin.js b/modules/springnote/tpl/js/springnote_admin.js index d6921ef37..0ff6adf4a 100644 --- a/modules/springnote/tpl/js/springnote_admin.js +++ b/modules/springnote/tpl/js/springnote_admin.js @@ -33,30 +33,6 @@ function completeDeleteSpringnote(ret_obj) { } /* 권한 관련 */ -function doSelectAll(obj, key) { - var fo_obj = obj.parentNode; - while(fo_obj.nodeName != 'FORM') { - fo_obj = fo_obj.parentNode; - } - - for(var i=0;i -
+
{$lang->regdate}
{$lang->site_name}
{$lang->nick_name}
@@ -49,8 +49,8 @@ - {$lang->cmd_unselect_all} - {$lang->cmd_reverse_all} + {$lang->cmd_unselect_all} + {$lang->cmd_reverse_all} diff --git a/modules/trackback/tpl/trackback_list.html b/modules/trackback/tpl/trackback_list.html index b5c5a5031..fe6bad7c8 100644 --- a/modules/trackback/tpl/trackback_list.html +++ b/modules/trackback/tpl/trackback_list.html @@ -34,7 +34,7 @@
{$lang->no}
-
+
diff --git a/modules/widget/tpl/widget_generate_code.html b/modules/widget/tpl/widget_generate_code.html index e7457cee7..a98ae2374 100644 --- a/modules/widget/tpl/widget_generate_code.html +++ b/modules/widget/tpl/widget_generate_code.html @@ -58,7 +58,7 @@
{$var->name} - +
diff --git a/modules/widget/tpl/widget_generate_code_in_page.html b/modules/widget/tpl/widget_generate_code_in_page.html index 099fab1db..eeb519aa1 100644 --- a/modules/widget/tpl/widget_generate_code_in_page.html +++ b/modules/widget/tpl/widget_generate_code_in_page.html @@ -70,7 +70,7 @@
{$var->name} - +
From 202f6392a86f4c1fda8eb3752570e1310f4ea2da Mon Sep 17 00:00:00 2001 From: bnu Date: Wed, 10 Dec 2008 02:37:30 +0000 Subject: [PATCH 054/135] =?UTF-8?q?17523934=20*=20r5047=20=EC=9D=B4?= =?UTF-8?q?=EC=A0=84=EC=9C=BC=EB=A1=9C=20=EB=90=98=EB=8F=8C=EB=A6=AC?= =?UTF-8?q?=EA=B3=A0=20=EB=8B=A4=EC=8B=9C=20=EC=A0=95=EB=A6=AC?= 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@5052 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 615 ++++++++++++++++++++------------------------ 1 file changed, 283 insertions(+), 332 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index a781244c7..a87a97d43 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -50,6 +50,18 @@ window.XE = { }) (jQuery); +/* jQuery(document).ready() */ +jQuery(function($) { + /* 팝업메뉴 레이어 생성 */ + if(!$('#popup_menu_area').length) { + var menuObj = $('
') + .attr('id', 'popup_menu_area') + .css({visibility:'hidden', zIndex:9999}); + $(document.body).append(menuObj); + } +}); + + /** * @brief location.href에서 특정 key의 값을 return @@ -87,7 +99,7 @@ String.prototype.setQuery = function(key, val) { for(var i in args) { if( !args.hasOwnProperty(i) ) continue; var arg = args[i]; - if(!arg || !arg.toString().trim()) continue; + if(!arg.toString().trim()) continue; q_list[q_list.length] = i+'='+arg; } @@ -116,6 +128,45 @@ String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } +/** + * @breif replace outerHTML + **/ +function replaceOuterHTML(obj, html) { + if(obj.outerHTML) { + obj.outerHTML = html; + } else { + var dummy = xCreateElement("div"); + xInnerHtml(dummy, html); + var parent = obj.parentNode; + while(dummy.firstChild) { + parent.insertBefore(dummy.firstChild, obj); + } + parent.removeChild(obj); + } +} + +/** + * @breif get outerHTML + **/ +function getOuterHTML(obj) { + if(obj.outerHTML) return obj.outerHTML; + var dummy = xCreateElement("div"); + dummy.insertBefore(obj, dummy.lastChild); + return xInnerHtml(dummy); +} + +/** + * @brief xSleep(micro time) + **/ +function xSleep(sec) { + sec = sec / 1000; + var now = new Date(); + var sleep = new Date(); + while( sleep.getTime() - now.getTime() < sec) { + sleep = new Date(); + } +} + /** * @brief 주어진 인자가 하나라도 defined되어 있지 않으면 false return @@ -183,71 +234,7 @@ function move_url(url, open_wnidow) { return false; } -/** - * @brief 특정 Element의 display 옵션 토글 - **/ -function toggleDisplay(obj, display_type) { - var obj = xGetElementById(obj); - if(!obj) return; - if(!obj.style.display || obj.style.display != 'none') { - obj.style.display = 'none'; - } else { - if(display_type) obj.style.display = display_type; - else obj.style.display = ''; - } -} -/* jQuery의 extend. */ -/* TODO:jQuery 등 자바스크립트 프레임웍 차용시 대체 가능하면 제거 대상 */ -objectExtend = function() { - // copy reference to target object - var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options; - - // Handle a deep copy situation - if ( target.constructor == Boolean ) { - deep = target; - target = arguments[1] || {}; - // skip the boolean and the target - i = 2; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target != "object" && typeof target != "function" ) - target = {}; - - // extend jQuery itself if only one argument is passed - if ( length == i ) { - target = this; - --i; - } - - for ( ; i < length; i++ ) - // Only deal with non-null/undefined values - if ( (options = arguments[ i ]) != null ) - // Extend the base object - for ( var name in options ) { - var src = target[ name ], copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) - continue; - - // Recurse if we're merging object values - if ( deep && copy && typeof copy == "object" && !copy.nodeType ) - target[ name ] = objectExtend( deep, - // Never move original objects, clone them - src || ( copy.length != null ? [ ] : { } ) - , copy ); - - // Don't bring in undefined values - else if ( copy !== undefined ) - target[ name ] = copy; - - } - - // Return the modified object - return target; -}; /** * @brief 멀티미디어 출력용 (IE에서 플래쉬/동영상 주변에 점선 생김 방지용) @@ -259,15 +246,13 @@ function displayMultimedia(src, width, height, options) { wmode : 'transparent', allowScriptAccess : 'sameDomain', quality : 'high', - flashvars : '' + flashvars : '', + autostart : false }; - if(options) { - var autostart = (options.autostart) ? 'true' : 'false'; - delete(options.autostart); - } - - var params = objectExtend(defaults, options || {}); + var params = jQuery.extend(defaults, options || {}); + var autostart = (params.autostart && params.autostart != 'false') ? 'true' : 'false'; + delete(params.autostart); var clsid = ""; var codebase = ""; @@ -294,6 +279,22 @@ function displayMultimedia(src, width, height, options) { document.writeln(html); } +/** + * @brief 에디터에서 사용되는 내용 여닫는 코드 (고정, zbxe용) + **/ +function zbxe_folder_open(id) { + jQuery("#folder_open_"+id).hide(); + jQuery("#folder_close_"+id).show(); + jQuery("#folder_"+id).show(); +} +function zbxe_folder_close(id) { + jQuery("#folder_open_"+id).show(); + jQuery("#folder_close_"+id).hide(); + jQuery("#folder_"+id).hide(); +} + + + /** * @brief 팝업의 경우 내용에 맞춰 현 윈도우의 크기를 조절해줌 * 팝업의 내용에 맞게 크기를 늘리는 것은... 쉽게 되지는 않음.. ㅡ.ㅜ @@ -334,165 +335,7 @@ function setFixedPopupSize() { window.scrollTo(0,0); } -/** - * @brief 이름, 게시글등을 클릭하였을 경우 팝업 메뉴를 보여주는 함수 - **/ -xAddEventListener(window, 'load', createPopupMenu); -xAddEventListener(document, 'click', chkPopupMenu); -var loaded_popup_menus = new Array(); - -/* 멤버 팝업 메뉴 레이어를 생성하는 함수 (문서 출력이 완료되었을때 동작) */ -function createPopupMenu(evt) { - var area = xGetElementById("popup_menu_area"); - if(area) return; - area = xCreateElement("div"); - area.id = "popup_menu_area"; - area.style.visibility = 'hidden'; - area.style.zIndex = 9999; - document.body.appendChild(area); -} - -/* 클릭 이벤트 발생시 이벤트가 일어난 대상을 검사하여 적절한 규칙에 맞으면 처리 */ -function chkPopupMenu(evt) { - - // 이전에 호출되었을지 모르는 팝업메뉴 숨김 - var area = xGetElementById("popup_menu_area"); - if(!area) return; - - if(area.style.visibility != "hidden") area.style.visibility = "hidden"; - - // 이벤트 대상이 없으면 무시 - var e = new xEvent(evt); - - if(!e) return; - - // 대상의 객체 구함 - var obj = e.target; - if(!obj) return; - - - // obj의 nodeName이 div나 span이 아니면 나올대까지 상위를 찾음 - if(obj && obj.nodeName != 'DIV' && obj.nodeName != 'SPAN' && obj.nodeName != 'A') obj = obj.parentNode; - if(!obj || (obj.nodeName != 'DIV' && obj.nodeName != 'SPAN' && obj.nodeName != 'A')) return; - - // 객체의 className값을 구함 - var class_name = obj.className; - if(!class_name) return; - // className을 분리 - var class_name_list = class_name.split(' '); - - var menu_id = ''; - var menu_id_regx = /^([a-zA-Z]+)_([0-9]+)$/; - - - for(var i=0,c=class_name_list.length;i0 ? e.pageX : GetObjLeft(obj); - params["page_y"] = e.pageY >0 ? e.pageY : GetObjTop(obj)+ xHeight(obj); - - var response_tags = new Array("error","message","menus"); - - if(loaded_popup_menus[menu_id]) { - displayPopupMenu(params, response_tags, params); - return; - } - show_waiting_message = false; - exec_xml(module_name, action_name, params, displayPopupMenu, response_tags, params); - show_waiting_message = true; - -} - -function GetObjTop(obj) { - if(obj.offsetParent == document.body) return xOffsetTop(obj); - else return xOffsetTop(obj) + GetObjTop(obj.offsetParent); -} -function GetObjLeft(obj) { - if(obj.offsetParent == document.body) return xOffsetLeft(obj); - else return xOffsetLeft(obj) + GetObjLeft(obj.offsetParent); -} - -function displayPopupMenu(ret_obj, response_tags, params) { - - var target_srl = params["target_srl"]; - var menu_id = params["menu_id"]; - var menus = ret_obj['menus']; - var html = ""; - - if(loaded_popup_menus[menu_id]) { - html = loaded_popup_menus[menu_id]; - - } else { - if(menus) { - var item = menus['item']; - if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item); - if(item.length) { - for(var i=0;i'+str+' '; - } - } - } - loaded_popup_menus[menu_id] = html; - } - - // 레이어 출력 - if(html) { - var area = xGetElementById("popup_menu_area"); - xInnerHtml(area, '
    '+html+'
'); - xLeft(area, params["page_x"]); - xTop(area, params["page_y"]); - if(xWidth(area)+xLeft(area)>xClientWidth()+xScrollLeft()) xLeft(area, xClientWidth()-xWidth(area)+xScrollLeft()); - if(xHeight(area)+xTop(area)>xClientHeight()+xScrollTop()) xTop(area, xClientHeight()-xHeight(area)+xScrollTop()); - area.style.visibility = "visible"; - } -} /** * @brief 추천/비추천,스크랩,신고기능등 특정 srl에 대한 특정 module/action을 호출하는 함수 @@ -514,19 +357,7 @@ function completeMessage(ret_obj) { location.reload(); } -/** - * @brief 날짜 선택 (달력 열기) - **/ -function open_calendar(fo_id, day_str, callback_func) { - if(typeof(day_str)=="undefined") day_str = ""; - var url = "./common/tpl/calendar.php?"; - if(fo_id) url+="fo_id="+fo_id; - if(day_str) url+="&day_str="+day_str; - if(callback_func) url+="&callback_func="+callback_func; - - popopen(url, 'Calendar'); -} /* 언어코드 (lang_type) 쿠키값 변경 */ function doChangeLangType(obj) { @@ -628,7 +459,6 @@ function viewSkinInfo(module, skin) { } - /* 관리자가 문서를 관리하기 위해서 선택시 세션에 넣음 */ var addedDocument = new Array(); function doAddDocumentCart(obj) { @@ -856,107 +686,33 @@ function toggleSecuritySignIn() { else location.href = href.replace(/^http/i,'https'); } -/* 하위호환성 문제 */ -if(typeof(resizeImageContents) == 'undefined') -{ - function resizeImageContents() {} -} - function reloadDocument() { location.reload(); } -/* -------------------------- - * XE 2.0에서 제거될 함수 - * This feature has been DEPRECATED and REMOVED as of XE 2.0. - * -------------------------- */ -/** - * @brief 에디터에서 사용되는 내용 여닫는 코드 (고정, zbxe용) - * This feature has been DEPRECATED and REMOVED as of XE 2.0. - **/ -function zbxe_folder_open(id) { - jQuery("#folder_open_"+id).hide(); - jQuery("#folder_close_"+id).show(); - jQuery("#folder_"+id).show(); -} -function zbxe_folder_close(id) { - jQuery("#folder_open_"+id).show(); - jQuery("#folder_close_"+id).hide(); - jQuery("#folder_"+id).hide(); + + + +/* ---------------------------------------------- + * 하위호환용으로 남겨 놓음 + * ------------------------------------------- */ + +if(typeof(resizeImageContents) == 'undefined') { + function resizeImageContents() {} } +objectExtend = jQuery.extend; + /** - * @brief 에디터에서 사용하되 내용 여닫는 코드 (zb5beta beta 호환용으로 남겨 놓음) - * This feature has been DEPRECATED and REMOVED as of XE 2.0. + * @brief 특정 Element의 display 옵션 토글 **/ -function svc_folder_open(id) { - jQuery("#_folder_open_"+id).hide(); - jQuery("#_folder_close_"+id).show(); - jQuery("#_folder_"+id).show(); -} -function svc_folder_close(id) { - jQuery("#_folder_open_"+id).show(); - jQuery("#_folder_close_"+id).hide(); - jQuery("#_folder_"+id).hide(); +function toggleDisplay(obj) { + jQuery('#'+obj).toggle(); } -/** - * @breif replace outerHTML - * This feature has been DEPRECATED and REMOVED as of XE 2.0. - **/ -function replaceOuterHTML(obj, html) { - if(obj.outerHTML) { - obj.outerHTML = html; - } else { - var dummy = xCreateElement("div"); - xInnerHtml(dummy, html); - var parent = obj.parentNode; - while(dummy.firstChild) { - parent.insertBefore(dummy.firstChild, obj); - } - parent.removeChild(obj); - } -} - -/** - * @breif get outerHTML - * This feature has been DEPRECATED and REMOVED as of XE 2.0. - **/ -function getOuterHTML(obj) { - if(obj.outerHTML) return obj.outerHTML; - var dummy = xCreateElement("div"); - dummy.insertBefore(obj, dummy.lastChild); - return xInnerHtml(dummy); -} - -/** - * @brief xSleep(micro time) - * This feature has been DEPRECATED and REMOVED as of XE 2.0. - **/ -function xSleep(sec) { - sec = sec / 1000; - var now = new Date(); - var sleep = new Date(); - while( sleep.getTime() - now.getTime() < sec) { - sleep = new Date(); - } -} - -/* 체크박스를 실행 - * This feature has been DEPRECATED and REMOVED as of XE 2.0. - */ -function clickCheckBoxAll(form, name) { - var fo_obj = xGetElementById(form); - for ( var i = 0; i < fo_obj.length; i++){ - if(fo_obj[i].name == name) fo_obj[i].click(); - } -} - -/* 체크박스 선택 - * This feature has been DEPRECATED and REMOVED as of XE 2.0. - */ +/* 체크박스 선택 */ function checkboxSelectAll(form, name, option){ var value; var fo_obj = xGetElementById(form); @@ -976,4 +732,199 @@ function checkboxSelectAll(form, name, option){ if(fo_obj[i].name == name) fo_obj[i].checked = value; } +} + +/* 체크박스를 실행 */ +function clickCheckBoxAll(form, name) { + var fo_obj = xGetElementById(form); + for ( var i = 0 ; i < fo_obj.length ; i++ ){ + if(fo_obj[i].name == name) fo_obj[i].click(); + } +} + +/** + * @brief 에디터에서 사용하되 내용 여닫는 코드 (zb5beta beta 호환용으로 남겨 놓음) + **/ +function svc_folder_open(id) { + jQuery("#_folder_open_"+id).hide(); + jQuery("#_folder_close_"+id).show(); + jQuery("#_folder_"+id).show(); +} +function svc_folder_close(id) { + jQuery("#_folder_open_"+id).show(); + jQuery("#_folder_close_"+id).hide(); + jQuery("#_folder_"+id).hide(); +} + +/** + * @brief 날짜 선택 (달력 열기) + **/ +function open_calendar(fo_id, day_str, callback_func) { + if(typeof(day_str)=="undefined") day_str = ""; + + var url = "./common/tpl/calendar.php?"; + if(fo_id) url+="fo_id="+fo_id; + if(day_str) url+="&day_str="+day_str; + if(callback_func) url+="&callback_func="+callback_func; + + popopen(url, 'Calendar'); +} + +/** + * @brief 이름, 게시글등을 클릭하였을 경우 팝업 메뉴를 보여주는 함수 + **/ +//xAddEventListener(window, 'load', createPopupMenu); +xAddEventListener(document, 'click', chkPopupMenu); + +var loaded_popup_menus = new Array(); + +/* 멤버 팝업 메뉴 레이어를 생성하는 함수 (문서 출력이 완료되었을때 동작) */ +function createPopupMenu(evt) { + if(!jQuery('#popup_menu_area').length) { + var menuObj = jQuery('
') + .attr('id', 'popup_menu_area') + .css({visibility:'hidden', zIndex:9999}); + jQuery(document.body).append(menuObj); + } +} + +/* 클릭 이벤트 발생시 이벤트가 일어난 대상을 검사하여 적절한 규칙에 맞으면 처리 */ +function chkPopupMenu(evt) { + + // 이전에 호출되었을지 모르는 팝업메뉴 숨김 + var area = xGetElementById("popup_menu_area"); + if(!area) return; + + if(area.style.visibility != "hidden") area.style.visibility = "hidden"; + + // 이벤트 대상이 없으면 무시 + var e = new xEvent(evt); + + if(!e) return; + + // 대상의 객체 구함 + var obj = e.target; + if(!obj) return; + + + // obj의 nodeName이 div나 span이 아니면 나올대까지 상위를 찾음 + if(obj && obj.nodeName != 'DIV' && obj.nodeName != 'SPAN' && obj.nodeName != 'A') obj = obj.parentNode; + if(!obj || (obj.nodeName != 'DIV' && obj.nodeName != 'SPAN' && obj.nodeName != 'A')) return; + + // 객체의 className값을 구함 + var class_name = obj.className; + if(!class_name) return; + // className을 분리 + var class_name_list = class_name.split(' '); + + var menu_id = ''; + var menu_id_regx = /^([a-zA-Z]+)_([0-9]+)$/; + + + for(var i=0,c=class_name_list.length;i0 ? e.pageX : GetObjLeft(obj); + params["page_y"] = e.pageY >0 ? e.pageY : GetObjTop(obj)+ xHeight(obj); + + var response_tags = new Array("error","message","menus"); + + if(loaded_popup_menus[menu_id]) { + displayPopupMenu(params, response_tags, params); + return; + } + show_waiting_message = false; + exec_xml(module_name, action_name, params, displayPopupMenu, response_tags, params); + show_waiting_message = true; + +} + +function GetObjTop(obj) { + if(obj.offsetParent == document.body) return xOffsetTop(obj); + else return xOffsetTop(obj) + GetObjTop(obj.offsetParent); +} +function GetObjLeft(obj) { + if(obj.offsetParent == document.body) return xOffsetLeft(obj); + else return xOffsetLeft(obj) + GetObjLeft(obj.offsetParent); +} + +function displayPopupMenu(ret_obj, response_tags, params) { + + var target_srl = params["target_srl"]; + var menu_id = params["menu_id"]; + var menus = ret_obj['menus']; + var html = ""; + + if(loaded_popup_menus[menu_id]) { + html = loaded_popup_menus[menu_id]; + + } else { + if(menus) { + var item = menus['item']; + if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item); + if(item.length) { + for(var i=0;i'+str+' '; + } + } + } + loaded_popup_menus[menu_id] = html; + } + + // 레이어 출력 + if(html) { + var area = xGetElementById("popup_menu_area"); + xInnerHtml(area, '
    '+html+'
'); + xLeft(area, params["page_x"]); + xTop(area, params["page_y"]); + if(xWidth(area)+xLeft(area)>xClientWidth()+xScrollLeft()) xLeft(area, xClientWidth()-xWidth(area)+xScrollLeft()); + if(xHeight(area)+xTop(area)>xClientHeight()+xScrollTop()) xTop(area, xClientHeight()-xHeight(area)+xScrollTop()); + area.style.visibility = "visible"; + } } \ No newline at end of file From 1a4ccb0d5cc266c5e52203c96d3eefb3e9c0fea6 Mon Sep 17 00:00:00 2001 From: royallin Date: Wed, 10 Dec 2008 13:36:38 +0000 Subject: [PATCH 055/135] Modified zh-TW language git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5053 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/conf/info.xml | 2 +- addons/blogapi/conf/info.xml | 2 +- modules/addon/conf/info.xml | 4 ++-- modules/addon/lang/zh-TW.lang.php | 6 +++--- modules/admin/lang/zh-TW.lang.php | 8 ++++---- modules/integration_search/skins/default/skin.xml | 4 ++-- modules/springnote/conf/info.xml | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/autolink/conf/info.xml b/addons/autolink/conf/info.xml index 8d0a95b1b..96b50a9db 100644 --- a/addons/autolink/conf/info.xml +++ b/addons/autolink/conf/info.xml @@ -30,7 +30,7 @@ Kommentare beginnen mit http naeyongjung Thema der gemeinsamen String automatisch Link zu hängen Sie mit der Maus über die einzelnen Links und saechang Stadt und auf dem Menü des Add-On Dekoration. - 是種可將主題和評論內容中的URL網址字串自動轉換成連結的附加功能。 + 是種可將主題和評論內容中的URL網址字串自動轉換成連結的附加元件。 0.1 2008-04-22 diff --git a/addons/blogapi/conf/info.xml b/addons/blogapi/conf/info.xml index 1c5e9e88e..d99f585f5 100644 --- a/addons/blogapi/conf/info.xml +++ b/addons/blogapi/conf/info.xml @@ -51,7 +51,7 @@ Только выбор опции использовать включает поведение RSD тега и api. - 支援MetaWeblog的部落格API附加功能。 + 支援MetaWeblog的部落格API附加元件。 設置成"啟用"時,會使每個模組都顯示RSD圖示。 API網址是 http://安裝位置/模組名稱/api。 將狀態設置成"啟用"時,才可使用RSD和API diff --git a/modules/addon/conf/info.xml b/modules/addon/conf/info.xml index 1f4eeb1d2..78dcaab28 100644 --- a/modules/addon/conf/info.xml +++ b/modules/addon/conf/info.xml @@ -7,7 +7,7 @@ アドオン Additions Аддоны - 附加功能 + 附加元件 애드온을 등록하거나 사용/미사용을 설정하는 애드온 관리 모듈입니다. This module is for maintaining addons which can toggle use and disuse states. Este Módulo es para agregar Addons, como también el manejo de ellos. @@ -15,7 +15,7 @@ アドオンの「登録、使用、未使用」などを設定する管理モジュールです。 Ce module est pour les Additions de maintien qui peuvent basculer des états d'utilisation et de désuétude. Этот модуль служит для управления аддонами, использование которых Вы можете включать и выключать. - 設定附加功能「登錄、啟用、禁用」的管理模組。 + 設定附加元件「登錄、啟用、禁用」的管理模組。 0.1 2007-02-28 manager diff --git a/modules/addon/lang/zh-TW.lang.php b/modules/addon/lang/zh-TW.lang.php index abc77ebc7..ea55114a7 100644 --- a/modules/addon/lang/zh-TW.lang.php +++ b/modules/addon/lang/zh-TW.lang.php @@ -5,13 +5,13 @@ * @brief 正體中文語言 **/ - $lang->addon = "附加功能"; + $lang->addon = "附加元件"; $lang->addon_info = '資料'; $lang->addon_maker = '作者'; $lang->addon_license = '版權'; $lang->addon_history = '更新紀錄'; - $lang->about_addon_mid = "可以指定使用附加功能的目標。
(全部不選取表示可用在所有目標。)"; - $lang->about_addon = '附加功能是一種附加延伸的功能,而不是輸出結果組件。
啟用/禁用插件,為網站提供強大的功能。'; + $lang->about_addon_mid = "可以指定使用附加元件的目標。
(全部不選取表示可用在所有目標。)"; + $lang->about_addon = '附加元件可擴展程式功能,而不是顯示輸出HTML結果。
『啟用/禁用』附加元件,增強網站的功能。'; ?> diff --git a/modules/admin/lang/zh-TW.lang.php b/modules/admin/lang/zh-TW.lang.php index bb7aaef28..4a9fe24f4 100644 --- a/modules/admin/lang/zh-TW.lang.php +++ b/modules/admin/lang/zh-TW.lang.php @@ -27,12 +27,12 @@ $lang->about_download_link = "官方網站已發佈新版本。\n請按 [download] 下載最新版本。"; $lang->item_module = "模組列表"; - $lang->item_addon = "插件列表"; + $lang->item_addon = "元件列表"; $lang->item_widget = "控件列表"; $lang->item_layout = "版面列表"; $lang->module_name = "模組名稱"; - $lang->addon_name = "插件名稱"; + $lang->addon_name = "元件名稱"; $lang->version = "版本"; $lang->author = "作者"; $lang->table_count = "表格數"; @@ -41,14 +41,14 @@ $lang->cmd_shortcut_management = "編輯選單"; $lang->msg_is_not_administrator = '只有管理員才可以檢視'; - $lang->msg_manage_module_cannot_delete = '模組,插件,版面設計,控件模組的快捷選單是無法刪除的。'; + $lang->msg_manage_module_cannot_delete = '模組,附加元件,版面設計,控件模組的快捷選單是無法刪除的。'; $lang->msg_default_act_is_null = '沒有指定預設管理員的動作,是無法新增到快捷選單的。'; $lang->welcome_to_xe = 'XE 管理頁面'; $lang->about_admin_page = "後台管理頁面未完成"; $lang->about_lang_env = "可以設置顯示語言給首次訪問的使用者。修改語言環境後,請按 [儲存] 按鈕進行儲存。"; - $lang->xe_license = 'XE遵循 GPL協議'; + $lang->xe_license = 'XE遵循 GPL 協議'; $lang->about_shortcut = '可以刪除新增到常用模組中的快捷選單。'; $lang->yesterday = "昨天"; diff --git a/modules/integration_search/skins/default/skin.xml b/modules/integration_search/skins/default/skin.xml index d351be840..78bc1d0f0 100644 --- a/modules/integration_search/skins/default/skin.xml +++ b/modules/integration_search/skins/default/skin.xml @@ -4,12 +4,12 @@ 搜索默认皮肤 統合検索のデフォルトスキン Default Skin of Integration Search - 綜合搜尋預設面板 + 預設綜合搜尋面板 통합검색 모듈의 기본 스킨 搜索模块的默认皮肤。 統合検索モジュールのデフォルトスキンです。 Default skin of integration search module - 綜合搜尋預設面板。 + 預設綜合搜尋面板。 0.1 2007-07-24 diff --git a/modules/springnote/conf/info.xml b/modules/springnote/conf/info.xml index 3bee1b166..e9264972c 100644 --- a/modules/springnote/conf/info.xml +++ b/modules/springnote/conf/info.xml @@ -13,7 +13,7 @@ This modules links pages of Springnote with XE, and display them. Esta módulos de enlaces de páginas Springnote con XE, y lo muestra. Этот модуль связывает страницы Springnote с XE, и отображает их. - 將 Springnote網站的頁面整合到 XE中的模組。 + 將Springnote網站的頁面整合到XE中的模組。 0.1 2007-11-30 service From 987c7fbfbde3eeb1ebe78b59e221f55cbde6ae55 Mon Sep 17 00:00:00 2001 From: bnu Date: Thu, 11 Dec 2008 01:13:20 +0000 Subject: [PATCH 056/135] =?UTF-8?q?17523934=20*=20jQuery=EB=A1=9C=20?= =?UTF-8?q?=ED=8F=AC=ED=8C=85?= 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@5054 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/autolink/autolink.js | 69 +++++++++++++++---------------------- 1 file changed, 27 insertions(+), 42 deletions(-) diff --git a/addons/autolink/autolink.js b/addons/autolink/autolink.js index b26c33ba3..62cc2c3e5 100644 --- a/addons/autolink/autolink.js +++ b/addons/autolink/autolink.js @@ -1,47 +1,32 @@ -var url_regx = /((http|https|ftp|news|telnet|irc):\/\/(([0-9a-z\-._~!$&'\(\)*+,;=:]|(%[0-9a-f]{2}))*\@)?((\[(((([0-9a-f]{1,4}:){6}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(::([0-9a-f]{1,4}:){5}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(([0-9a-f]{1,4})?::([0-9a-f]{1,4}:){4}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){2}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4})|((([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::))|(v[0-9a-f]+.[0-9a-z\-._~!$&'\(\)*+,;=:]+))\])|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))|(([0-9a-z\-._~!$&'\(\)*+,;=]|(%[0-9a-f]{2}))+))(:[0-9]*)?(\/([0-9a-z\-._~!$&'\(\)*+,;=:@]|(%[0-9a-f]{2}))*)*(\?([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?(#([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?)/i; -function replaceHrefLink(target_obj) -{ - var obj_list = new Array(); - var obj = target_obj; - while(obj) { - obj_list[obj_list.length] = obj; - obj = obj.nextSibling; - } - - for(var i=0;i'); - for(var j=0;j$1<\/a>"); - html[i] = html2.join('>'); +jQuery(function($) { + var url_regx = /((http|https|ftp|news|telnet|irc):\/\/(([0-9a-z\-._~!$&'\(\)*+,;=:]|(%[0-9a-f]{2}))*\@)?((\[(((([0-9a-f]{1,4}:){6}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(::([0-9a-f]{1,4}:){5}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|(([0-9a-f]{1,4})?::([0-9a-f]{1,4}:){4}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){2}([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])))|((([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4})|((([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::))|(v[0-9a-f]+.[0-9a-z\-._~!$&'\(\)*+,;=:]+))\])|(([0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])){3}[0-9]|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))|(([0-9a-z\-._~!$&'\(\)*+,;=]|(%[0-9a-f]{2}))+))(:[0-9]*)?(\/([0-9a-z\-._~!$&'\(\)*+,;=:@]|(%[0-9a-f]{2}))*)*(\?([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?(#([0-9a-z\-._~!$&'\(\)*+,;=:@\/\?]|(%[0-9a-f]{2}))*)?)/i; + + function replaceHrefLink(target_obj) { + var obj = target_obj; + var obj_list = obj.childNodes; + + for(var i=0; i < obj_list.length; ++i) { + var obj = obj_list[i]; + var pObj = obj.parentNode; + if(!pObj) continue; + + var pN = pObj.nodeName.toLowerCase(); + if($.inArray(pN, ['a', 'pre', 'xml', 'textarea', 'input']) != -1) continue; + + if(obj.nodeType == 3 && obj.length >= 10) { + var html = obj.nodeValue.replace(url_regx, '$1'); + $(obj).replaceWith(html); + delete(html); + + } else if(obj.nodeType == 1 && obj.childNodes.length) { + if($.inArray(obj.nodeName.toLowerCase(), ['a', 'pre', 'xml', 'textarea', 'input']) != -1) continue; + replaceHrefLink(obj); } - var output = html.join('<'); - var dummy = xCreateElement('span'); - xInnerHtml(dummy, output); - pObj.insertBefore(dummy, obj); - pObj.removeChild(obj); } - else if(obj.nodeType == 1 && obj.firstChild) - replaceHrefLink(obj.firstChild); } -} -function addUrlLink() { - var objs = xGetElementsByClassName('xe_content'); - if(objs.length<1) return; - for(var i=0;i Date: Thu, 11 Dec 2008 02:27:37 +0000 Subject: [PATCH 057/135] =?UTF-8?q?tree=20javascript=20change=20:=20?= =?UTF-8?q?=EB=A9=94=EB=89=B4,=20=EA=B2=8C=EC=8B=9C=ED=8C=90=EB=B6=84?= =?UTF-8?q?=EB=A5=98,=20=ED=99=88=ED=8E=98=EC=9D=B4=EC=A7=80?= 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@5055 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/display/DisplayHandler.class.php | 2 + classes/module/ModuleObject.class.php | 15 +- common/css/jquery.simple.tree.css | 186 +++++ common/js/jquery.simple.tree.js | 468 +++++++++++++ common/js/xml_handler.js | 56 ++ common/lang/en.lang.php | 1 + common/lang/es.lang.php | 1 + common/lang/fr.lang.php | 1 + common/lang/ge.lang.php | 1 + common/lang/jp.lang.php | 1 + common/lang/ko.lang.php | 1 + common/lang/ru.lang.php | 1 + common/lang/zh-CN.lang.php | 1 + common/lang/zh-TW.lang.php | 1 + common/tpl/images/tree/Thumbs.db | Bin 0 -> 36864 bytes common/tpl/images/tree/arrow_refresh.png | Bin 0 -> 685 bytes common/tpl/images/tree/collapsable-last.gif | Bin 0 -> 655 bytes common/tpl/images/tree/collapsable.gif | Bin 0 -> 1518 bytes common/tpl/images/tree/cross.png | Bin 0 -> 655 bytes common/tpl/images/tree/disk.png | Bin 0 -> 620 bytes common/tpl/images/tree/expandable-last.gif | Bin 0 -> 670 bytes common/tpl/images/tree/expandable.gif | Bin 0 -> 1539 bytes common/tpl/images/tree/folder_add.png | Bin 0 -> 668 bytes common/tpl/images/tree/folder_delete.png | Bin 0 -> 666 bytes common/tpl/images/tree/folder_edit.png | Bin 0 -> 733 bytes common/tpl/images/tree/iconAdd.gif | Bin 0 -> 190 bytes common/tpl/images/tree/iconDel.gif | Bin 0 -> 116 bytes common/tpl/images/tree/iconModify.gif | Bin 0 -> 196 bytes common/tpl/images/tree/leaf-last.gif | Bin 0 -> 615 bytes common/tpl/images/tree/leaf.gif | Bin 0 -> 1458 bytes common/tpl/images/tree/line_bg.gif | Bin 0 -> 93 bytes common/tpl/images/tree/line_bg_over.gif | Bin 0 -> 251 bytes common/tpl/images/tree/line_bg_over_last.gif | Bin 0 -> 235 bytes common/tpl/images/tree/minus.gif | Bin 0 -> 267 bytes common/tpl/images/tree/page_add.png | Bin 0 -> 739 bytes common/tpl/images/tree/page_delete.png | Bin 0 -> 740 bytes common/tpl/images/tree/page_edit.png | Bin 0 -> 807 bytes common/tpl/images/tree/plus.gif | Bin 0 -> 167 bytes common/tpl/images/tree/root.gif | Bin 0 -> 1004 bytes common/tpl/images/tree/spacer.gif | Bin 0 -> 43 bytes common/tpl/images/tree/spinner.gif | Bin 0 -> 1553 bytes common/tpl/images/tree/tree_line.gif | Bin 0 -> 197 bytes modules/board/board.admin.controller.php | 78 ++- modules/board/board.admin.model.php | 2 +- modules/board/board.admin.view.php | 2 +- modules/board/skins/xe_board/write_form.html | 2 +- modules/board/tpl/category_info.html | 17 +- modules/board/tpl/category_list.html | 45 +- modules/board/tpl/header.html | 2 +- modules/board/tpl/js/board_admin.js | 226 ++++-- modules/document/document.controller.php | 5 +- .../queries/getChildCategoryMinListOrder.xml | 12 + modules/homepage/homepage.controller.php | 41 +- modules/homepage/homepage.view.php | 1 + .../skins/xe_official/css/default.css | 3 - .../homepage/skins/xe_official/js/homepage.js | 641 +++++------------- .../skins/xe_official/menu_manage.html | 277 ++++---- modules/menu/menu.admin.controller.php | 110 ++- modules/menu/menu.admin.model.php | 3 +- modules/menu/menu.admin.view.php | 1 - modules/menu/tpl/index.html | 3 +- modules/menu/tpl/js/menu_admin.js | 35 +- modules/menu/tpl/js/menu_tree.js | 155 +++++ modules/menu/tpl/menu_item_info.html | 16 +- modules/menu/tpl/menu_management.html | 53 +- 65 files changed, 1591 insertions(+), 875 deletions(-) create mode 100644 common/css/jquery.simple.tree.css create mode 100644 common/js/jquery.simple.tree.js create mode 100644 common/tpl/images/tree/Thumbs.db create mode 100644 common/tpl/images/tree/arrow_refresh.png create mode 100644 common/tpl/images/tree/collapsable-last.gif create mode 100644 common/tpl/images/tree/collapsable.gif create mode 100644 common/tpl/images/tree/cross.png create mode 100644 common/tpl/images/tree/disk.png create mode 100644 common/tpl/images/tree/expandable-last.gif create mode 100644 common/tpl/images/tree/expandable.gif create mode 100644 common/tpl/images/tree/folder_add.png create mode 100644 common/tpl/images/tree/folder_delete.png create mode 100644 common/tpl/images/tree/folder_edit.png create mode 100644 common/tpl/images/tree/iconAdd.gif create mode 100644 common/tpl/images/tree/iconDel.gif create mode 100644 common/tpl/images/tree/iconModify.gif create mode 100644 common/tpl/images/tree/leaf-last.gif create mode 100644 common/tpl/images/tree/leaf.gif create mode 100644 common/tpl/images/tree/line_bg.gif create mode 100644 common/tpl/images/tree/line_bg_over.gif create mode 100644 common/tpl/images/tree/line_bg_over_last.gif create mode 100644 common/tpl/images/tree/minus.gif create mode 100644 common/tpl/images/tree/page_add.png create mode 100644 common/tpl/images/tree/page_delete.png create mode 100644 common/tpl/images/tree/page_edit.png create mode 100644 common/tpl/images/tree/plus.gif create mode 100644 common/tpl/images/tree/root.gif create mode 100644 common/tpl/images/tree/spacer.gif create mode 100644 common/tpl/images/tree/spinner.gif create mode 100644 common/tpl/images/tree/tree_line.gif create mode 100644 modules/document/queries/getChildCategoryMinListOrder.xml create mode 100644 modules/menu/tpl/js/menu_tree.js diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 5f4c6270c..34345fcc2 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -98,6 +98,8 @@ **/ function _toJSON(&$oModule) { $variables = $oModule->getVariables(); + $variables['error'] = $oModule->getError(); + $variables['message'] = $oModule->getMessage(); //if(function_exists('json_encode')) return json_encode($variables); //else return json_encode2($variables); $json = str_replace("\r\n",'\n',json_encode2($variables)); diff --git a/classes/module/ModuleObject.class.php b/classes/module/ModuleObject.class.php index 5d301356f..9d579c68a 100644 --- a/classes/module/ModuleObject.class.php +++ b/classes/module/ModuleObject.class.php @@ -358,11 +358,18 @@ } // view action이고 결과 출력이 XMLRPC일 경우 해당 모듈의 api method를 실행 - if((Context::getResponseMethod() == 'XMLRPC' || Context::getResponseMethod() == 'JSON') && $this->module_info->module_type == 'view') { - $oAPI = getAPI($this->module_info->module, 'api'); - if(method_exists($oAPI, $this->act)) { - $oAPI->{$this->act}($this); + if($this->module_info->module_type == 'view'){ + if(Context::getResponseMethod() == 'XMLRPC' || Context::getResponseMethod() == 'JSON') { + $oAPI = getAPI($this->module_info->module, 'api'); + if(method_exists($oAPI, $this->act)) { + $oAPI->{$this->act}($this); + } } + }else if($this->module_info->module_type == 'controller'){ + if(Context::getResponseMethod() == 'JSON'){ + + } + } return true; diff --git a/common/css/jquery.simple.tree.css b/common/css/jquery.simple.tree.css new file mode 100644 index 000000000..e47676a59 --- /dev/null +++ b/common/css/jquery.simple.tree.css @@ -0,0 +1,186 @@ + +.simpleTree +{ + + margin:0; + padding:0; + /* + overflow:auto; + width: 250px; + height:350px; + overflow:auto; + border: 1px solid #444444; + */ +} +.simpleTree li +{ + white-space: nowrap; + list-style: none; + margin:0; + padding:0 0 0 34px; + line-height: 14px; +} +.simpleTree li span +{ + display:inline; + clear: left; + white-space: nowrap; +} + +.simpleTree li a img +{ + padding:0 1px 0px 3px; +} + +.simpleTree ul +{ + margin:0; + padding:0; +} +.simpleTree .root +{ + margin-left:-16px; + background: url(./common/tpl/images/tree/root.gif) no-repeat 16px 0 #ffffff; +} +.simpleTree .line +{ + margin:0 0 0 -16px; + padding:0; + line-height: 3px; + height:3px; + font-size:3px; + background: url(./common/tpl/images/tree/line_bg.gif) 0 0 no-repeat transparent; +} +.simpleTree .line-last +{ + margin:0 0 0 -16px; + padding:0; + line-height: 3px; + height:3px; + font-size:3px; + background: url(./common/tpl/images/tree/spacer.gif) 0 0 no-repeat transparent; +} +.simpleTree .line-over +{ + margin:0 0 0 -16px; + padding:0; + line-height: 3px; + height:3px; + font-size:3px; + background: url(./common/tpl/images/tree/line_bg_over.gif) 0 0 no-repeat transparent; +} +.simpleTree .line-over-last +{ + margin:0 0 0 -16px; + padding:0; + line-height: 3px; + height:3px; + font-size:3px; + background: url(./common/tpl/images/tree/line_bg_over_last.gif) 0 0 no-repeat transparent; +} +.simpleTree .folder-open +{ + margin-left:-16px; + background: url(./common/tpl/images/tree/collapsable.gif) 0 -2px no-repeat #fff; +} +.simpleTree .folder-open-last +{ + margin-left:-16px; + background: url(./common/tpl/images/tree/collapsable-last.gif) 0 -2px no-repeat #fff; +} +.simpleTree .folder-close +{ + margin-left:-16px; + background: url(./common/tpl/images/tree/expandable.gif) 0 -2px no-repeat #fff; +} +.simpleTree .folder-close-last +{ + margin-left:-16px; + background: url(./common/tpl/images/tree/expandable-last.gif) 0 -2px no-repeat #fff; +} +.simpleTree .doc +{ + margin-left:-16px; + background: url(./common/tpl/images/tree/leaf.gif) 0 -1px no-repeat #fff; +} +.simpleTree .doc-last +{ + margin-left:-16px; + background: url(./common/tpl/images/tree/leaf-last.gif) 0 -1px no-repeat #fff; +} +.simpleTree .ajax +{ + background: url(./common/tpl/images/tree/spinner.gif) no-repeat 0 0 #ffffff; + height: 16px; + display:none; +} +.simpleTree .ajax li +{ + display:none; + margin:0; + padding:0; +} +.simpleTree .trigger +{ + display:inline; + margin-left:-32px; + width: 28px; + height: 11px; + cursor:pointer; +} +.simpleTree .text +{ + cursor: default; +} +.simpleTree .active +{ + cursor: default; + background-color:#F7BE77; + padding:0px 2px; + border: 1px dashed #444; +} +#drag_container +{ + background:#ffffff; + color:#000; + font: normal 11px arial, tahoma, helvetica, sans-serif; + border: 1px dashed #767676; +} +#drag_container ul +{ + list-style: none; + padding:0; + margin:0; +} + +#drag_container li +{ + list-style: none; + background-color:#ffffff; + line-height:18px; + white-space: nowrap; + padding:1px 1px 0px 16px; + margin:0; +} +#drag_container li span +{ + padding:0; +} + +#drag_container li.doc, #drag_container li.doc-last +{ + background: url(./common/tpl/images/tree/leaf.gif) no-repeat -17px 0 #ffffff; +} +#drag_container .folder-close, #drag_container .folder-close-last +{ + background: url(./common/tpl/images/tree/expandable.gif) no-repeat -17px 0 #ffffff; +} + +#drag_container .folder-open, #drag_container .folder-open-last +{ + background: url(./common/tpl/images/tree/collapsable.gif) no-repeat -17px 0 #ffffff; +} +.contextMenu +{ + display:none; +} \ No newline at end of file diff --git a/common/js/jquery.simple.tree.js b/common/js/jquery.simple.tree.js new file mode 100644 index 000000000..316dbe40c --- /dev/null +++ b/common/js/jquery.simple.tree.js @@ -0,0 +1,468 @@ +/* +* jQuery SimpleTree Drag&Drop plugin +* Update on 22th May 2008 +* Version 0.3 +* +* Licensed under BSD +* Copyright (c) 2008, Peter Panov , IKEEN Group http://www.ikeen.com +* All rights reserved. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the Peter Panov, IKEEN Group nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY Peter Panov, IKEEN Group ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL Peter Panov, IKEEN Group BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +(function($){ +$.fn.simpleTree = function(opt){ + return this.each(function(){ + var TREE = this; + var ROOT = $('.root',this); + var mousePressed = false; + var mouseMoved = false; + var dragMoveType = false; + var dragNode_destination = false; + var dragNode_source = false; + var dragDropTimer = false; + var ajaxCache = Array(); + + TREE.option = { + drag: true, + animate: false, + autoclose: false, + speed: 'fast', + afterAjax: false, + afterMove: false, + beforeMovedToLine: false, + beforeMovedToFolder: false, + afterClick: false, + afterDblClick: false, + // added by Erik Dohmen (2BinBusiness.nl) to make context menu cliks available + afterContextMenu: false, + docToFolderConvert:false + }; + TREE.option = $.extend(TREE.option,opt); + $.extend(this, {getSelected: function(){ + return $('span.active', this).parent(); + }}); + TREE.closeNearby = function(obj) + { + $(obj).siblings().filter('.folder-open, .folder-open-last').each(function(){ + var childUl = $('>ul',this); + var className = this.className; + this.className = className.replace('open','close'); + if(TREE.option.animate) + { + childUl.animate({height:"toggle"},TREE.option.speed); + }else{ + childUl.hide(); + } + }); + }; + TREE.nodeToggle = function(obj) + { + var childUl = $('>ul',obj); + if(childUl.is(':visible')){ + obj.className = obj.className.replace('open','close'); + + if(TREE.option.animate) + { + childUl.animate({height:"toggle"},TREE.option.speed); + }else{ + childUl.hide(); + } + }else{ + obj.className = obj.className.replace('close','open'); + if(TREE.option.animate) + { + childUl.animate({height:"toggle"},TREE.option.speed, function(){ + if(TREE.option.autoclose)TREE.closeNearby(obj); + if(childUl.is('.ajax'))TREE.setAjaxNodes(childUl, obj.id); + }); + }else{ + childUl.show(); + if(TREE.option.autoclose)TREE.closeNearby(obj); + if(childUl.is('.ajax'))TREE.setAjaxNodes(childUl, obj.id); + } + } + }; + TREE.setAjaxNodes = function(node, parentId, callback) + { + if($.inArray(parentId,ajaxCache) == -1){ + ajaxCache[ajaxCache.length]=parentId; + var url = $.trim($('>li', node).text()); + if(url && url.indexOf('url:')) + { + url=$.trim(url.replace(/.*\{url:(.*)\}/i ,'$1')); + $.ajax({ + type: "GET", + url: url, + contentType:'html', + cache:false, + success: function(responce){ + node.removeAttr('class'); + node.html(responce); + $.extend(node,{url:url}); + TREE.setTreeNodes(node, true); + if(typeof TREE.option.afterAjax == 'function') + { + TREE.option.afterAjax(node); + } + if(typeof callback == 'function') + { + callback(node); + } + } + }); + } + + } + }; + TREE.setTreeNodes = function(obj, useParent){ + obj = useParent? obj.parent():obj; + $('li>span', obj).addClass('text') + .bind('selectstart', function() { + return false; + }).click(function(){ + $('.active',TREE).attr('class','text'); + if(this.className=='text') + { + this.className='active'; + } + if(typeof TREE.option.afterClick == 'function') + { + TREE.option.afterClick($(this).parent()); + } + return false; + }).dblclick(function(){ + mousePressed = false; + TREE.nodeToggle($(this).parent().get(0)); + if(typeof TREE.option.afterDblClick == 'function') + { + TREE.option.afterDblClick($(this).parent()); + } + return false; + // added by Erik Dohmen (2BinBusiness.nl) to make context menu actions + // available + }).bind("contextmenu",function(){ + $('.active',TREE).attr('class','text'); + if(this.className=='text') + { + this.className='active'; + } + if(typeof TREE.option.afterContextMenu == 'function') + { + TREE.option.afterContextMenu($(this).parent()); + } + return false; + }).mousedown(function(event){ + mousePressed = true; + cloneNode = $(this).parent().clone(); + var LI = $(this).parent(); + if(TREE.option.drag) + { + $('>ul', cloneNode).hide(); + $('body').append('
    '); + $('#drag_container').hide().css({opacity:'0.8'}); + $('#drag_container >ul').append(cloneNode); + $("").attr({id : "tree_plus",src : "./common/tpl/images/tree/plus.gif"}).css({width: "7px",display: "block",position: "absolute",left : "5px",top: "5px", display:'none'}).appendTo("body"); + $(document).bind("mousemove", {LI:LI}, TREE.dragStart).bind("mouseup",TREE.dragEnd); + } + return false; + }).mouseup(function(){ + if(mousePressed && mouseMoved && dragNode_source) + { + TREE.moveNodeToFolder($(this).parent()); + } + TREE.eventDestroy(); + }); + $('li', obj).each(function(i){ + var className = this.className; + var open = false; + var cloneNode=false; + var LI = this; + var childNode = $('>ul',this); + if(childNode.size()>0){ + var setClassName = 'folder-'; + if(className && className.indexOf('open')>=0){ + setClassName=setClassName+'open'; + open=true; + }else{ + setClassName=setClassName+'close'; + } + this.className = setClassName + ($(this).is(':last-child')? '-last':''); + + if(!open || className.indexOf('ajax')>=0)childNode.hide(); + + TREE.setTrigger(this); + }else{ + var setClassName = 'doc'; + this.className = setClassName + ($(this).is(':last-child')? '-last':''); + } + }).before('
  • ') + .filter(':last-child').after('
  • '); + TREE.setEventLine($('.line, .line-last', obj)); + }; + TREE.setTrigger = function(node){ + $('>span',node).before(''); + var trigger = $('>.trigger', node); + trigger.click(function(event){ + TREE.nodeToggle(node); + }); + if(!$.browser.msie) + { + trigger.css('float','left'); + } + }; + TREE.dragStart = function(event){ + var LI = $(event.data.LI); + if(mousePressed) + { + mouseMoved = true; + if(dragDropTimer) clearTimeout(dragDropTimer); + if($('#drag_container:not(:visible)')){ + $('#drag_container').show(); + LI.prev('.line').hide(); + dragNode_source = LI; + } + $('#drag_container').css({position:'absolute', "left" : (event.pageX + 5), "top": (event.pageY + 15) }); + if(LI.is(':visible'))LI.hide(); + var temp_move = false; + if(event.target.tagName.toLowerCase()=='span' && $.inArray(event.target.className, Array('text','active','trigger'))!= -1) + { + var parent = event.target.parentNode; + var offs = $(parent).offset({scroll:false}); + var screenScroll = {x : (offs.left - 3),y : event.pageY - offs.top}; + var isrc = $("#tree_plus").attr('src'); + var ajaxChildSize = $('>ul.ajax',parent).size(); + var ajaxChild = $('>ul.ajax',parent); + screenScroll.x += 19; + screenScroll.y = event.pageY - screenScroll.y + 5; + + if(parent.className.indexOf('folder-close')>=0 && ajaxChildSize==0) + { + if(isrc.indexOf('minus')!=-1)$("#tree_plus").attr('src','./common/tpl/images/tree/plus.gif'); + $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show(); + dragDropTimer = setTimeout(function(){ + parent.className = parent.className.replace('close','open'); + $('>ul',parent).show(); + }, 700); + }else if(parent.className.indexOf('folder')>=0 && ajaxChildSize==0){ + if(isrc.indexOf('minus')!=-1)$("#tree_plus").attr('src','./common/tpl/images/tree/plus.gif'); + $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show(); + }else if(parent.className.indexOf('folder-close')>=0 && ajaxChildSize>0) + { + mouseMoved = false; + $("#tree_plus").attr('src','./common/tpl/images/tree/minus.gif'); + $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show(); + + $('>ul',parent).show(); + /* + Thanks for the idea of Erik Dohmen + */ + TREE.setAjaxNodes(ajaxChild,parent.id, function(){ + parent.className = parent.className.replace('close','open'); + mouseMoved = true; + $("#tree_plus").attr('src','./common/tpl/images/tree/plus.gif'); + $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show(); + }); + + }else{ + if(TREE.option.docToFolderConvert) + { + $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show(); + }else{ + $("#tree_plus").hide(); + } + } + }else{ + $("#tree_plus").hide(); + } + return false; + } + return true; + }; + TREE.dragEnd = function(){ + if(dragDropTimer) clearTimeout(dragDropTimer); + TREE.eventDestroy(); + }; + TREE.setEventLine = function(obj){ + obj.mouseover(function(){ + if(this.className.indexOf('over')<0 && mousePressed && mouseMoved) + { + this.className = this.className.replace('line','line-over'); + } + }).mouseout(function(){ + if(this.className.indexOf('over')>=0) + { + this.className = this.className.replace('-over',''); + } + }).mouseup(function(){ + if(mousePressed && dragNode_source && mouseMoved) + { + dragNode_destination = $(this).parents('li:first'); + TREE.moveNodeToLine(this); + TREE.eventDestroy(); + } + }); + }; + TREE.checkNodeIsLast = function(node) + { + if(node.className.indexOf('last')>=0) + { + var prev_source = dragNode_source.prev().prev(); + if(prev_source.size()>0) + { + prev_source[0].className+='-last'; + } + node.className = node.className.replace('-last',''); + } + }; + TREE.checkLineIsLast = function(line) + { + if(line.className.indexOf('last')>=0) + { + var prev = $(line).prev(); + if(prev.size()>0) + { + prev[0].className = prev[0].className.replace('-last',''); + } + dragNode_source[0].className+='-last'; + } + }; + TREE.eventDestroy = function() + { + // added by Erik Dohmen (2BinBusiness.nl), the unbind mousemove TREE.dragStart action + // like this other mousemove actions binded through other actions ain't removed (use it myself + // to determine location for context menu) + $(document).unbind('mousemove',TREE.dragStart).unbind('mouseup').unbind('mousedown'); + $('#drag_container, #tree_plus').remove(); + if(dragNode_source) + { + $(dragNode_source).show().prev('.line').show(); + } + dragNode_destination = dragNode_source = mousePressed = mouseMoved = false; + //ajaxCache = Array(); + }; + TREE.convertToFolder = function(node){ + node[0].className = node[0].className.replace('doc','folder-open'); + node.append('
    '); + TREE.setTrigger(node[0]); + TREE.setEventLine($('.line, .line-last', node)); + }; + TREE.convertToDoc = function(node){ + $('>ul', node).remove(); + $('img', node).remove(); + node[0].className = node[0].className.replace(/folder-(open|close)/gi , 'doc'); + }; + TREE.moveNodeToFolder = function(node) + { + if(typeof(TREE.option.beforeMovedToFolder) == 'function') + { + var pos = $(dragNode_source).prevAll(':not(.line)').size(); + if(!TREE.option.beforeMovedToFolder($(node).parents('li:first'), $(dragNode_source), pos)) return false; + } + + if(!TREE.option.docToFolderConvert && node[0].className.indexOf('doc')!=-1) + { + return true; + }else if(TREE.option.docToFolderConvert && node[0].className.indexOf('doc')!=-1){ + TREE.convertToFolder(node); + } + TREE.checkNodeIsLast(dragNode_source[0]); + var lastLine = $('>ul >.line-last', node); + if(lastLine.size()>0) + { + TREE.moveNodeToLine(lastLine[0]); + } + }; + TREE.moveNodeToLine = function(node){ + + if(typeof(TREE.option.beforeMovedToLine) == 'function') + { + var pos = $(dragNode_source).prevAll(':not(.line)').size(); + if(!TREE.option.beforeMovedToLine($(node).parents('li:first'), $(dragNode_source), pos)) return false; + } + + TREE.checkNodeIsLast(dragNode_source[0]); + TREE.checkLineIsLast(node); + var parent = $(dragNode_source).parents('li:first'); + var line = $(dragNode_source).prev('.line'); + $(node).before(dragNode_source); + $(dragNode_source).before(line); + node.className = node.className.replace('-over',''); + var nodeSize = $('>ul >li', parent).not('.line, .line-last').filter(':visible').size(); + if(TREE.option.docToFolderConvert && nodeSize==0) + { + TREE.convertToDoc(parent); + }else if(nodeSize==0) + { + parent[0].className=parent[0].className.replace('open','close'); + $('>ul',parent).hide(); + } + + // added by Erik Dohmen (2BinBusiness.nl) select node + if($('span:first',dragNode_source).attr('class')=='text') + { + $('.active',TREE).attr('class','text'); + $('span:first',dragNode_source).attr('class','active'); + } + + if(typeof(TREE.option.afterMove) == 'function') + { + var pos = $(dragNode_source).prevAll(':not(.line)').size(); + TREE.option.afterMove($(node).parents('li:first'), $(dragNode_source), pos); + } + }; + + TREE.addNode = function(id, text, callback) + { + var temp_node = $('
    • '+text+'
  • '); + TREE.setTreeNodes(temp_node); + dragNode_destination = TREE.getSelected(); + dragNode_source = $('.doc-last',temp_node); + TREE.moveNodeToFolder(dragNode_destination); + temp_node.remove(); + if(typeof(callback) == 'function') + { + callback(dragNode_destination, dragNode_source); + } + }; + TREE.delNode = function(callback) + { + dragNode_source = TREE.getSelected(); + TREE.checkNodeIsLast(dragNode_source[0]); + dragNode_source.prev().remove(); + dragNode_source.remove(); + if(typeof(callback) == 'function') + { + callback(dragNode_destination); + } + }; + + TREE.init = function(obj) + { + TREE.setTreeNodes(obj, false); + }; + TREE.init(ROOT); + }); +} + +})(jQuery); \ No newline at end of file diff --git a/common/js/xml_handler.js b/common/js/xml_handler.js index 5f9adf6bf..0bd88660d 100644 --- a/common/js/xml_handler.js +++ b/common/js/xml_handler.js @@ -386,3 +386,59 @@ function xml2json(xml, tab, ignoreAttrib) { var json = X.toJson(X.toObj(X.removeWhite(xml)), xml.nodeName, ""); return "{" + (tab ? json.replace(/\t/g, tab) : json.replace(/\t|\n/g, "")) + "}"; } + + +/** + * @brief exec_json (exec_xml와 같은 용도) + **/ +(function($){ +$.exec_json = function(action,data,func){ + if(typeof(data) == 'undefined') data = {}; + action = action.split("."); + if(action.length == 2){ + + if(show_waiting_message) { + $("#waitingforserverresponse").html(waiting_message).css('top',$(document).scrollTop()+20).css('left',$(document).scrollLeft()+20).css('visibility','visible'); + } + + $.extend(data,{module:action[0],act:action[1]}); + $.ajax({ + type:"POST" + ,dataType:"json" + ,url:request_uri + ,contentType:"application/json" + ,data:$.param(data) + ,success : function(data){ + $("#waitingforserverresponse").css('visibility','hidden'); + if(data.error > 0) alert(data.message); + if($.isFunction(func)) func(data); + } + }); + } +}; + +$.fn.exec_html = function(action,data,type){ + if(typeof(data) == 'undefined') data = {}; + if(!$.inArray(type, ['html','append','prepend'])) type = 'html'; + + var self = $(this); + action = action.split("."); + if(action.length == 2){ + if(show_waiting_message) { + $("#waitingforserverresponse").html(waiting_message).css('top',$(document).scrollTop()+20).css('left',$(document).scrollLeft()+20).css('visibility','visible'); + } + + $.extend(data,{module:action[0],act:action[1]}); + $.ajax({ + type:"POST" + ,dataType:"html" + ,url:request_uri + ,data:$.param(data) + ,success : function(html){ + $("#waitingforserverresponse").css('visibility','hidden'); + self[type](html); + } + }); + } +}; +})(jQuery); diff --git a/common/lang/en.lang.php b/common/lang/en.lang.php index f7ebf4b45..f2257b8a1 100644 --- a/common/lang/en.lang.php +++ b/common/lang/en.lang.php @@ -69,6 +69,7 @@ $lang->disable = 'Disable'; // Essential Words + $lang->menu = 'Menu'; $lang->no = 'No.'; $lang->notice = 'Notice'; $lang->secret = 'Secret'; diff --git a/common/lang/es.lang.php b/common/lang/es.lang.php index 97e26950f..dc49ef3bb 100644 --- a/common/lang/es.lang.php +++ b/common/lang/es.lang.php @@ -68,6 +68,7 @@ $lang->disable = 'Desactivar'; //Desactivado // Palabras Esenciales + $lang->menu = 'Menu'; $lang->no = 'Nº'; $lang->notice = 'Aviso'; //boletín, noticia $lang->secret = 'Secreto'; diff --git a/common/lang/fr.lang.php b/common/lang/fr.lang.php index de01744ce..769047ae9 100644 --- a/common/lang/fr.lang.php +++ b/common/lang/fr.lang.php @@ -69,6 +69,7 @@ $lang->disable = 'Invalide'; // Mots essentiels + $lang->menu = 'Menu'; $lang->no = 'No'; $lang->notice = 'Notice'; $lang->secret = 'Secret'; diff --git a/common/lang/ge.lang.php b/common/lang/ge.lang.php index aeaa35b3b..c5fa00e68 100644 --- a/common/lang/ge.lang.php +++ b/common/lang/ge.lang.php @@ -69,6 +69,7 @@ $lang->deaktivieren = 'Deaktivieren'; // Essential Words + $lang->menu = 'Menu'; $lang->no = 'Nein'; $lang->notice = 'Hinweis'; $lang->secret = 'Geheim'; diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index 3a42fe990..a21c6fd7e 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -69,6 +69,7 @@ $lang->disable = '不可'; // 基本用語 + $lang->menu = 'Menu'; $lang->no = '番号'; $lang->notice = 'お知らせ'; $lang->secret = '非公開'; diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index 42713cae9..3e1e254fc 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -69,6 +69,7 @@ $lang->disable = '불가능'; // 기본 단어 + $lang->menu = '메뉴'; $lang->no = '번호'; $lang->notice = '공지'; $lang->secret = '비밀'; diff --git a/common/lang/ru.lang.php b/common/lang/ru.lang.php index 669bee0fc..b93002a45 100644 --- a/common/lang/ru.lang.php +++ b/common/lang/ru.lang.php @@ -69,6 +69,7 @@ $lang->disable = 'Выключено'; // Существенные слова + $lang->menu = 'Menu'; $lang->no = 'No.'; $lang->notice = 'Уведомление'; $lang->secret = 'Секрет'; diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php index 9cb7e8572..d11dfd15e 100644 --- a/common/lang/zh-CN.lang.php +++ b/common/lang/zh-CN.lang.php @@ -69,6 +69,7 @@ $lang->disable = '禁用'; // 基本词语 + $lang->menu = 'Menu'; $lang->no = '编号'; $lang->notice = '公告'; $lang->secret = '密帖'; diff --git a/common/lang/zh-TW.lang.php b/common/lang/zh-TW.lang.php index b3a0a0335..22ab9c775 100644 --- a/common/lang/zh-TW.lang.php +++ b/common/lang/zh-TW.lang.php @@ -69,6 +69,7 @@ $lang->disable = '禁用'; // 基本詞語 + $lang->menu = 'Menu'; $lang->no = '編號'; $lang->notice = '公告'; $lang->secret = '秘密'; diff --git a/common/tpl/images/tree/Thumbs.db b/common/tpl/images/tree/Thumbs.db new file mode 100644 index 0000000000000000000000000000000000000000..4e64e5122ce4188edffb7026e4feb9fea035f476 GIT binary patch literal 36864 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 literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/arrow_refresh.png b/common/tpl/images/tree/arrow_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..0de26566d4102eec080253c2d08985ec58b14838 GIT binary patch literal 685 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 literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/expandable-last.gif b/common/tpl/images/tree/expandable-last.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb468bc3f19d367fd7f56e1b33adf48115ef95fe GIT binary patch literal 670 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 AfB*mh literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/folder_edit.png b/common/tpl/images/tree/folder_edit.png new file mode 100644 index 0000000000000000000000000000000000000000..ad669cc7814eb52a0990c156e4358bd8d523089c GIT binary patch literal 733 zcmV<30wVp1P)Ln`3m6cBjUs{~SZF1Q|l+PQ4$F&BPWU{LQ5Rm}%Yp+9Uy#II9~vucwq!AZ0U3VS=&d(VjEIGJ6F` zxEYZ+Do*Dgo&xS90WcC^bwyaXLaY<13Xc{ys@jsg}$ z5G+=Y;0}5=7O5P92480MbaXQ7%}6B`AYHKOFX}h+}d5}LKg{F2q&8;J?*AuZJvty1~9)ANwocD zyswqfv|ByYH|QiPmSI$m{Oe0B$hidL4Saj?irNjUNTgedgFr;v@FyS$FAiPZ+kvpX z-^tbQJARF~w@xzf^f?uc>#?PNS(q}q__!blpq^>0+$ab5#~RNbYmZJJIiAFc>3MLM zPag)Sv-P!|JI?j?{%Z?=0rqdL^*1#yN_MoZL{i~%zgRlF`+VQf|HkwKvQRq#2{xLW P00000NkvXXu0mjfz!^#T literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/iconAdd.gif b/common/tpl/images/tree/iconAdd.gif new file mode 100644 index 0000000000000000000000000000000000000000..613537199c56d3e5ba4b6487aadf6c28f0885b24 GIT binary patch literal 190 zcmZ?wbhEHbb>e6?>e$BWc~mDp8*3X{$ycf zV31_c0m*>uWMH*UP?O?G?#Kv>4WHU|>a&IhONgIvM@3*@G|Itcpx(vSQIy$^jy7nl7yOFo#L%^;MmL+GnTsrz6cuZ2Znaq6Tf`BQ{1n0(s41RKF4lQ}uFh!y7Q3?a&hCR%I Sk0x@k9P7N?QqIN5U=0AYVn-nW literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/leaf-last.gif b/common/tpl/images/tree/leaf-last.gif new file mode 100644 index 0000000000000000000000000000000000000000..e5d301dbc3f2631501e5b95c7b406a431dbc217f GIT binary patch literal 615 zcmZ?wbhEHbRA3Nec;>`#`|bbIip38<{D1lNe?vpV>({ThZ{NOc+qR1@|DSyFzkTJM zl7>xhzy1IH`}h0z?|=OMfAHYJCr_T-c>Vvt{r`s_{{Q>;@8_TY|NZ|zW&fuMi%&OB zJsi6H?XJ83GYb}Vt+;vn`S)YTj@5Q<`}gl(eczsz*{6zX)_wW%_2c>3+^v;Wy8OTYg5U)8*!ec`2^ zb@%`L{U4V&p?~w!Z@>QEeE4?qs!RXDfMI9?#h)yU3=B>TIw0qR;)H?yNP|;Tb4zPm zdq*=%XHRdR1lPn#T-8u~j-tHknrimk4%7NNbd(%diSx^IOH1-~&g`%iUCnQ9 z!o5dfS-aILetsTiW({paw#_|q)<=#qGcX9Lp5EVTX(x7+iRlW5!S(j;r%unDRPHd} zyUby#_xMJW)Ume=9GskHpFS(Ux&Pti;tLDqw+U!5DV=anbmDH_U!YO5FrTSiQoxt> u#)*x}{2ZS-TpJ1&EIBzzK&eIM$^pm5=?3xBqC7V*J3HH=_#YPwgEat>Gwlih literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/leaf.gif b/common/tpl/images/tree/leaf.gif new file mode 100644 index 0000000000000000000000000000000000000000..2f5c2ef101febf9a37aca716839c6fffa776c04d GIT binary patch literal 1458 zcmdVXjXM)~0KoBixo9{-51H4YmsK=9MOM1jJ-MrMo|02WSsqU(C)vn*8>5l;ciS*5 zHY3B>>_tMjQeIMwO>*82IZUj1``z_t-1jf|JkQtl=Sxm!u$GW|^;tB8NF+*^KzJl$ zas|wc&jz|scT+S*!PUT$x1-`UxbEP^#9crgJw zC&4ZN)6>&;gG;w}KyU;rKEE^YL4|Zq(cRshRyTo*t;=Pg(q6A`f}pU<-Q8XMqxvVT(Tzg zB`rPUEHpa@s;#G+mYU+EsjqwZw5_8yydWd_2Rlu+k&e0cITyVYO0tc9jm|L#ZLvia z*^;fJ^S!$I$wT&gxM?R$UUsRgs2EuFwk2Ia8g{9vz1KQ2LQb7Q&!UgY)ISbsIm4zT z38vjkDq4H@9+xLIkq=7ZI+^`w@*~M5mT`+EJqdb14{@i7G^rc6A2*Qo`(w7Qxum|H; zIy4=ze%G_=I%nYx`-AOBo#c6fnKO?iX}mn>?I~S5Canqq5yEs-cAb|fV)gL{QK9|K zwv5@a{l64G@aYWM$Mvi&KzjECSY_sG7vQ{ly^*&+_~di1_q$*4|IV~1%zE(3)kB`? zd8e)q1!8k^DVkzHhc3$=&*Da&*?*+0`^*Qp5PBq5`Ua#Jn{it^I0DvR>7v1cd+ z`JqviLQ1@VQdE+yq)^Js&zR&mvnf=BXcD zS$-2PtgP^L*sNq=(au#*1Fl6^RR-P>R%N@~+pJ=SCO9)$;W(;Ibrf~%Ap2#*6VuXX z>}Y1q>wWX(wK0E zgR48a?2YF*0xG^9r7OiZoVS35HD0vGgmGQZ)54mrxJ$#D-EYIfc}ONIobN@Tg|}cb zG2tR#`c`urmV@GT1kBMMb{W&nR>$C?XGodqkX!xu9*$3$%zWx?eHW2$*77Dc_cOmY z8WrjEhJ^8TdYwwzZk$f>Fc!SZ94Z#PrA^5Mee^X`VLwC7S2(~lC=m|USdRUqMu3O|9-qpf!Jq~l5zY&3_ cD`pU+ew^-%Nlt&o*BJkh76oC>P!ods7oo?qr2qf` literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/line_bg.gif b/common/tpl/images/tree/line_bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..3189f90b48731132ace8dbd78702ad1510cff9df GIT binary patch literal 93 zcmZ?wbhEHb3}6spXkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFq!o9uRQ&hU%F$DOlXHEpml@pu<@f9l{}k5tBVFq|T;wKCU}CTa03>lHDgXcg literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/line_bg_over.gif b/common/tpl/images/tree/line_bg_over.gif new file mode 100644 index 0000000000000000000000000000000000000000..421883d7d6abb801120a4635f88ec3b091c2b877 GIT binary patch literal 251 zcmVNk%w1VNd`R0K^{vfPjESMMXwOMuLHXNk~YdqM~_vdUA4dWMpG&YisiI z^HNe$k&%(As;kP&%Cobw+1c5`!@^BXP5b=&_xJbg?d-a{yXWWTSXfv8|NmZIUf|&1 z($dn2ii(<=ng9R)A^8LW0018VEC2ui08juF000Ge;3tkBK$1alu59bRa0~|m@k!tE zVW0LPpTy_zF?{g_W3_oOha?prJ3HqNST506TG> Bg8={l literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/line_bg_over_last.gif b/common/tpl/images/tree/line_bg_over_last.gif new file mode 100644 index 0000000000000000000000000000000000000000..b43d2b600d9f03f5319bd488e2c871995f4c956f GIT binary patch literal 235 zcmVdSLu59bR@CZbQH+Yrz zc#KDQ0gu5`@JKuy55=?abUYf*#N+TlJP6OmWAR)(0uRQM@H9Lbk0Q20vET5xd`_?1 l@A$la&+q&HfPsR8goTEOh>41ejE#>Gr9V&Dp_|s zvHU1wxSPWGzfJM$ilT=Z%>T}=dsoJ=$B*Uv*4}^DcD%2b*yGH)+KX*}q|)myhc9!J zS9@{n2$I_4#JV#`{682l&e ezP!`LA;PWM<44=L^tZou44AubhTS*)M literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/page_add.png b/common/tpl/images/tree/page_add.png new file mode 100644 index 0000000000000000000000000000000000000000..d5bfa0719bc3a2ce4fc529403f0acd6b6057c956 GIT binary patch literal 739 zcmV<90v!E`P)BG67=JY6c|L1R-#TR>fC$3^Y%QEnYO1xHsf)+GU`3F<{J0kR(;pbF3)zyg$H+idfnl-wl5Wkh!vUH z4Z32YP=l_}1rZd1W_D&^$A($A+&a0e&P?xx0!ctY2}*<#p+qPVN*B(YzvAWXa*%bzq z7Fz41LKILT(GWohi9|LgIzSZBhb*Zf6R6O}WYQ4GOi&71s9lmll0x6;8&ILOl$j(c z0Z1T(6Tg09{?wd{moFHNN6PS?$|e>1MxSJ(0Z7o2)J-Zv|>acY@f`(Y@g7GwsEj5NLQo+q|HsxQ5}XSX_d@*^A9ZT9=A{W~j+$GyI1 zc4oqTHx@1FlRjw4XWyPN5i2~l_F3@aBk!0yu^aoRDvXy}8@HCjUVQUsuSH4$T5|r< zzZOn^?Wfa6y|Q($Hx4{ws+)wX6-HP4zo!S?4KJ@7PG@G3G{CjXs(p*kIrj6rHs7_y z+=<-=Q62s9FuWa^X~WKgJIAAZJR&XBB002ovPDHLkV1jCMPILeO literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/page_delete.png b/common/tpl/images/tree/page_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..3141467c678d2b53f79deb22086a9cb3a576a08d GIT binary patch literal 740 zcmVP z|1Ep}yDQG09bP~E^Dk?@JiKQJ z6-pO(3~IOP)IYisL6D6;oAEd;E%zR}{U$rMRNuD6nQV7nesKS>)yLo7JuDCrD>Abi zbj3uW23?^GA}9jQ{M^8v?ejL?HaT7AX5WPZNkBmfN`w-jL?{tT7ykZt$%Yln?p_m~ z-?>&d(LD(jAd}h=LPltPQbO$*Wbyl@G-_k5jXbb#qffHY03>M1jfEqoPJQ6Mr=Byp=^jfzePZV1 zLjCmNi31hdIJHa%e;5g=1(`u3BRzfeExY%=VCu{loOr{`%2hUR*x>tL^W_TTaj);0 zpPR6CUD1+0>4TQ6zVfH3TQ;%l6#(_%yspK@3gcmG#Q4!WCPyLU93nMKk7E2pcA=l45({2jNho>sdF*A~bA zxX?-cp~y_z_kFf+yqu3m#QiB}03?Z&9vvR5TNgj<)($Vm)xq5G>|o2sFMag&6aNF+ WAT1?sQBYt20000iHtsh1EzPArg^Q zIZrOk#rNsfjaSbMAL;<4h;Z=jvu8dzyz8N&Nb7=z03ZUw?9z%8KQEa6yM5=kUnka& z3?FJk2}L7q>na=T#;<7U*P91xfF`;`6%pVgWgRy0?1ZryL@%z52=-!fGXWGEn4M351L4<+7eDgwo|moqXT+s1&Kmn>-uQQ8mL7XY)w5Zk*(g+<3Y3tmkR!bL zOUKaUtj_pX26sH+=Iorwu}MGd`_%O-_sS}8VpG#fJA)Fcs#ezwtZf?q?Ac70mDv`rVs{$od?VPKeqf<-kUjNtS6ecB*mq<&M97K^6IVsDO zt2$Ru!b+>2S<}_H>$RcInusU_8PMNdf(W{sNlJ3FkrwMJPeBPO#d}Y^a{9TH(#{Y) l0D?dWAV4eUJX#h`!2gmISk&ZKd4B)^002ovPDHLkV1g&sd|Lnj literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/plus.gif b/common/tpl/images/tree/plus.gif new file mode 100644 index 0000000000000000000000000000000000000000..c253770d20e01c71111379185f61523dff4f5e9a GIT binary patch literal 167 zcmZ?wbhEHbWM^P!I3mRm*Wnr7uj^B7nAYdN<;v6x&vsemDz@)TXk48b+2YZ&Cw1es zN%>Rb+jk{wygXssl{wwJlKOXNnP*Gd7AW-YO4)R2YX6?};2sUfV%7g(z<>%Af3h$# zFi0`zfP_JIGO(&FSZ3&~l*JL~(#U4vy)0t#hm;Cc$$-hSCTClN7RLBVaJq>wF<1it D<=H#$ literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/root.gif b/common/tpl/images/tree/root.gif new file mode 100644 index 0000000000000000000000000000000000000000..27012fbd642dc2777f75027cd6e1d464d166c19d GIT binary patch literal 1004 zcmeH`+fR}K9EQKpDVZ5Ao9Qey&Dmy$)eTy1=@#KyE6lQVDOlJ@^VFtg%>%SV&BQVe zDS;@cD@{HzG!Gz{LJ)YsJdp~h$#Uwn)oiO@`bTuvyZ7R`d$(tM&qfjOp%ff~Lw+KN zL2KeXkw_c6Xz_VDw@Y%<%IMjZMGv`U41Q%vZAFo=>RF@Y75chXuISM8v=1bbvXf%& zrzRE->c{#NpVDuZQse1aG!`}PY2ky~YOYk-ZOlsLKQBk~a^)F!gq+H*Dqi=fX<>M1 zwySfjPi;n}A2Kt<1cHb_;1P+u*jRpAS|^n%rqOB{j1~?@%VH^bJT;rG5Q~Qdf_|CI zERhVfwT(76>!ng1it3u0RC2klzkkAHnpdlbES43uTCdlSOij%gjl&j;b!KL^oNE*} zPuJ8dQ;Nrn8)g&OHZpfEkz;EeunAgqx9S$kg;GkxBJ2HhX4m%u)sK4p;x*|qUu6zO z|B%`@LfhcfI|!GsD6R= zH>|C#EiW%GEiKvYcB|D20LcIRGXwq`j@uBV6bac{*!l#5)gqqTJ@9qpUhe=Ww~$~* z?5=|(S&a5rghh1Vl78GPhKchF_t}5dCt6|&*b|_BOC}Wdwgf(%o)K<{{Vd48>V~YigIVMtACjF#^W7ce%>Bmgc_{7Z&-q+ fy@iZA?GDd2FJ7!E(1;KWu>eOwFfJ|*806$%dU|rI literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/spacer.gif b/common/tpl/images/tree/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d11fa9ada9e93505b3d736acb204083f45d5fbf GIT binary patch literal 43 scmZ?wbhEHbWMp7uX!y@?;J^U}1_s5SEQ~;kK?g*DWEhy3To@Uw0n;G|I{*Lx literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/spinner.gif b/common/tpl/images/tree/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..085ccaecaf5fa5c34bc14cd2c2ed5cbbd8e25dcb GIT binary patch literal 1553 zcma)+TTl~c6vwlh>nb99Af5rT)t{mCEg5urg=A(g z{C|6SPb~9Xage|wB`SrZk2FOMYM!buln2sX?5Y+T78iB(Zu9cS7|LZyZ++}u$^oi1 z_j@S}bW9OzU2R+RMy&~OT>X-oZ98$jq#ogNfJ!BM-42wHGZk*6s2KD}U*IA%epmxb zm}|6BK9YoIF;*xSL!+z@<64lB7->LTW2Vi4ostCA(z&2XniwNIv}fFo-`MbG;)u4G z^p@F!)|9HhZprHd_vXjDoxs6WkK-6P0@lfxnGT>*p(QHoUV=u1FAqb@b%*W=a3{`LsH5k^AvQNL>6fPpy#oU(&MuH(*aEX4b35*} zn4n7)`I2U%=+Z=?BVZQ?vjQFW4gD@~XSOO6b{qu81`4&LFuU2(ilxW+1|ZkNMnWe79C$gs zWT?Ele|HR{JGPe)5BTW>0Ey?-Ls6S#GoV0tbt6ku7B&*0 z;i9QM$W1Rj*rRIdceL)rAOSl+sDe3LkB87<%){;ZdHp6|SNlopDXRx< zxBDF9-lTo&v`8$humFygUij@qgT=Qzhj8{ym2-{Xciwqq_Xwk%=O3B-MNAL_6e`3U zyxwmXex4`g0^1RYw~Dth3av3Dl^AAlpO3mG!nLr#&ZZ7c_wUboI+deC+&%TFjK2Lm z!Y&f1h|T_On%RCV&=4bx`!>(YezqGVhl&QpED?N6GV)HmzJ9&rh$x*i?*@o9#6QI< z5ZI_MRX;0+pY8$`j)eF#TlUyG(eE%E7S!rj;mj^M5vhUicPm zVWQ2z+imFyg}SRABmOBY_@osR!>7Ov!ioK`NB6_Rv}7Ud?35ed5Sb@?yND?kv~RCa wqs^a3Sh>&&L4)!LKI?D2&k@))k(LESaga|C278ChSzn3NWVkcuNoY&{0f?~U_5c6? literal 0 HcmV?d00001 diff --git a/common/tpl/images/tree/tree_line.gif b/common/tpl/images/tree/tree_line.gif new file mode 100644 index 0000000000000000000000000000000000000000..2d6fa89c69533a0c18a08bc77dfdc6cbe4ac94f5 GIT binary patch literal 197 zcmZ?wbhEHbv|(UnI3mu_-roN6=g%)+zD$@fVcoiQPo6ya^XJdSix(FzTzKl#sl$g4 z&z?QIxw-lJ_3KloPTjL-&-?f9@7=q%V#SJAuU>84y0yEzyP=`s|Ns9CIDq0$7DfgJ zaRwcbJjhN4R;LA}y(yXVGFGiys=BE_XYsm>`0r<94ur-wcR${=LqTs6_d}getCategory($args->category_srl); if($category_info->parent_srl) $parent_srl = $category_info->parent_srl; @@ -352,6 +352,7 @@ /** * @brief 카테고리 이동 **/ +/* function procBoardAdminMoveCategory() { $source_category_srl = Context::get('source_category_srl'); $target_category_srl = Context::get('target_category_srl'); @@ -373,13 +374,78 @@ $output = $oDocumentController->updateCategory($source_args); if(!$output->toBool()) return $output; - // xml파일 재생성 + // xml파일 재생성 $xml_file = $oDocumentController->makeCategoryFile($source_category->module_srl); // return 변수 설정 $this->add('xml_file', $xml_file); $this->add('source_category_srl', $source_category_srl); } +*/ + + function procBoardAdminMoveCategory() { + $source_category_srl = Context::get('source_srl'); + + // parent_srl 이 있으면 첫 자식으로 들어간다 + $parent_category_srl = Context::get('parent_srl'); + + // target_srl 이 있으면 target_srl 아래로 형제로 들어간다 + $target_category_srl = Context::get('target_srl'); + + $oDocumentModel = &getModel('document'); + $oDocumentController = &getController('document'); + $source_category = $oDocumentModel->getCategory($source_category_srl); + + + //parent_category_srl 의 첫 자식으로 넣자 + if($parent_category_srl > 0 || ($parent_category_srl == 0 && $target_category_srl == 0)){ + $parent_category = $oDocumentModel->getCategory($parent_category_srl); + + $args->module_srl = $source_category->module_srl; + $args->parent_srl = $parent_category_srl; + $output = executeQuery('document.getChildCategoryMinListOrder', $args); + + if(!$output->toBool()) return $output; + $args->list_order = (int)$output->data->list_order; + if(!$args->list_order) $args->list_order = 0; + $args->list_order--; + + + $source_args->category_srl = $source_category_srl; + $source_args->parent_srl = $parent_category_srl; + $source_args->list_order = $args->list_order; + $output = $oDocumentController->updateCategory($source_args); + if(!$output->toBool()) return $output; + + + // $target_category_srl의 아래동생으로 + }else if($target_category_srl > 0){ + $target_category = $oDocumentModel->getCategory($target_category_srl); + + //$target_category의 아래 동생을 모두 내린다 + $output = $oDocumentController->updateCategoryListOrder($target_category->module_srl, $target_category->list_order+1); + if(!$output->toBool()) return $output; + + + $source_args->category_srl = $source_category_srl; + $source_args->parent_srl = $target_category->parent_srl; + $source_args->list_order = $target_category->list_order+1; + $output = $oDocumentController->updateCategory($source_args); + if(!$output->toBool()) return $output; + + } + + + // xml파일 재생성 + $xml_file = $oDocumentController->makeCategoryFile($source_category->module_srl); + + // return 변수 설정 + $this->add('xml_file', $xml_file); + $this->add('source_category_srl', $source_category_srl); + + } + + /** * @brief xml 파일을 갱신 @@ -388,14 +454,14 @@ * 개발 중간의 문제인 것 같고 현재는 문제가 생기지 않으나 굳이 없앨 필요 없는 기능 **/ function procBoardAdminMakeXmlFile() { - // 입력값을 체크 + // 입력값을 체크 $module_srl = Context::get('module_srl'); - // xml파일 재생성 + // xml파일 재생성 $oDocumentController = &getController('document'); $xml_file = $oDocumentController->makeCategoryFile($module_srl); - // return 값 설정 + // return 값 설정 $this->add('xml_file',$xml_file); } } diff --git a/modules/board/board.admin.model.php b/modules/board/board.admin.model.php index 39e17ba37..f547ab1a0 100644 --- a/modules/board/board.admin.model.php +++ b/modules/board/board.admin.model.php @@ -56,7 +56,7 @@ // template 파일을 직접 컴파일한후 tpl변수에 담아서 return한다. $oTemplate = &TemplateHandler::getInstance(); $tpl = $oTemplate->compile($this->module_path.'tpl', 'category_info'); - + $tpl = str_replace("\n",'',$tpl); // return 할 변수 설정 $this->add('tpl', $tpl); } diff --git a/modules/board/board.admin.view.php b/modules/board/board.admin.view.php index 60c414054..a0ccb8f20 100644 --- a/modules/board/board.admin.view.php +++ b/modules/board/board.admin.view.php @@ -198,7 +198,7 @@ Context::set('category_xml_file', $category_xml_file); Context::addJsFile('./common/js/tree_menu.js'); - Context::set('layout','none'); +// Context::set('layout','none'); $this->setTemplateFile('category_list'); } diff --git a/modules/board/skins/xe_board/write_form.html b/modules/board/skins/xe_board/write_form.html index 54836f7cb..595621104 100644 --- a/modules/board/skins/xe_board/write_form.html +++ b/modules/board/skins/xe_board/write_form.html @@ -1,7 +1,7 @@ -
    + diff --git a/modules/board/tpl/category_info.html b/modules/board/tpl/category_info.html index b51096933..826985d75 100644 --- a/modules/board/tpl/category_info.html +++ b/modules/board/tpl/category_info.html @@ -15,15 +15,8 @@

    {$lang->about_category_title}

    - -
    {$lang->expand}
    - - expand=="Y")-->checked="checked" class="checkbox" /> - {$lang->about_expand} - - - -
    {$lang->category_group_srls}
    + +
    {$lang->category_group_srls}
    group_srls)&&in_array($key, $category_info->group_srls))-->checked="checked" class="checkbox" />
    @@ -33,14 +26,8 @@ - - {$lang->cmd_delete} - {$lang->cmd_close} - - {$lang->cmd_make_child} - diff --git a/modules/board/tpl/category_list.html b/modules/board/tpl/category_list.html index 1cffd2efb..9412b3c64 100644 --- a/modules/board/tpl/category_list.html +++ b/modules/board/tpl/category_list.html @@ -1,46 +1,39 @@ + - - + + +

    {$lang->board} {$lang->cmd_management}

    -
    {nl2br($lang->about_board_category)}
    - -
    - {$lang->cmd_insert} - {$lang->cmd_remake_cache} - {$lang->cmd_open_all} - {$lang->cmd_close_all} - {$lang->cmd_close} +
    {nl2br($lang->about_board_category)}
    - -

    - - - - - - - - +{$lang->cmd_remake_cache}
    -
    -
    -
    -
    + +
    +
    + -
    diff --git a/modules/board/tpl/header.html b/modules/board/tpl/header.html index 2e0202b48..071da9b9c 100644 --- a/modules/board/tpl/header.html +++ b/modules/board/tpl/header.html @@ -18,7 +18,7 @@
  • class="on">{$lang->cmd_view_info}
  • class="on">{$lang->cmd_addition_setup}
  • -
  • class="on">{$lang->cmd_manage_category}
  • +
  • class="on">{$lang->cmd_manage_category}
  • class="on">{$lang->cmd_manage_grant}
  • class="on">{$lang->cmd_manage_skin}
  • diff --git a/modules/board/tpl/js/board_admin.js b/modules/board/tpl/js/board_admin.js index 14356cb52..46187f83b 100644 --- a/modules/board/tpl/js/board_admin.js +++ b/modules/board/tpl/js/board_admin.js @@ -4,6 +4,169 @@ * @brief board 모듈의 관리자용 javascript **/ + +function Tree(url){ + // clear tree; + jQuery('#menu > ul > li > ul').remove(); + if(jQuery("ul.simpleTree > li > a").size() ==0)jQuery('').bind("click",function(e){addNode(0,e);}).appendTo("ul.simpleTree > li"); + + //ajax get data and transeform ul il + jQuery.get(url,function(data){ + jQuery(data).find("node").each(function(i){ + var text = jQuery(this).attr("text"); + var node_srl = jQuery(this).attr("node_srl"); + var parent_srl = jQuery(this).attr("parent_srl"); + var url = jQuery(this).attr("url"); + + // node + var node = jQuery('
  • '+text+'
  • '); + + // button + jQuery('').bind("click",function(e){addNode(node_srl,e);}).appendTo(node); + + jQuery('').bind("click",function(e){ + modifyNode(node_srl,e); + }).appendTo(node); + + jQuery('').bind("click",function(e){ + deleteNode(node_srl); + }).appendTo(node); + + // insert parent child + if(parent_srl>0){ + if(jQuery('#tree_'+parent_srl+'>ul').length==0) jQuery('#tree_'+parent_srl).append(jQuery('
      ')); + jQuery('#tree_'+parent_srl+'> ul').append(node); + }else{ + if(jQuery('#menu ul.simpleTree > li > ul').length==0) jQuery("
        ").appendTo('#menu ul.simpleTree > li'); + jQuery('#menu ul.simpleTree > li > ul').append(node); + } + + }); + + //button show hide + jQuery("#menu li").each(function(){ + if(jQuery(this).parents('ul').size() > max_menu_depth) jQuery("a.add",this).hide(); + if(jQuery(">ul",this).size()>0) jQuery(">a.delete",this).hide(); + }); + + + // draw tree + simpleTreeCollection = jQuery('.simpleTree').simpleTree({ + autoclose: false, + afterClick:function(node){ + //alert("text-"+jQuery('span:first',node).text()); + }, + afterDblClick:function(node){ + //alert("text-"+jQuery('span:first',node).text()); + }, + afterMove:function(destination, source, pos){ + var module_srl = jQuery("#fo_category input[name=module_srl]").val(); + var parent_srl = destination.attr('id').replace(/.*_/g,''); + var source_srl = source.attr('id').replace(/.*_/g,''); + + var target = source.prevAll("li:not([class^=line])"); + var target_srl = 0; + if(target.length >0){ + target_srl = source.prevAll("li:not([class^=line])").get(0).id.replace(/.*_/g,''); + parent_srl = 0; + } + + jQuery.exec_json("board.procBoardAdminMoveCategory",{ "module_srl":module_srl,"parent_srl":parent_srl,"target_srl":target_srl,"source_srl":source_srl}, + function(data){ + if(data.error > 0) Tree(xml_url); + }); + + }, + + // i want you !! made by sol + beforeMovedToLine : function(destination, source, pos){ + return (jQuery(destination).parents('ul').size() + jQuery('ul',source).size() <= max_menu_depth); + }, + + // i want you !! made by sol + beforeMovedToFolder : function(destination, source, pos){ + return (jQuery(destination).parents('ul').size() + jQuery('ul',source).size() <= max_menu_depth-1); + }, + afterAjax:function() + { + //alert('Loaded'); + }, + animate:true + ,docToFolderConvert:true + }); + + + + // open all node + nodeToggleAll(); + },"xml"); +} +function addNode(node,e){ + var params ={ + "category_srl":0 + ,"parent_srl":node + ,"module_srl":jQuery("#fo_category [name=module_srl]").val() + }; + + jQuery.exec_json('board.getBoardAdminCategoryTplInfo', params, function(data){ + jQuery('#category_info').html(data.tpl); + }); +} + +function modifyNode(node,e){ + var params ={ + "category_srl":node + ,"parent_srl":0 + ,"module_srl":jQuery("#fo_category [name=module_srl]").val() + }; + + jQuery.exec_json('board.getBoardAdminCategoryTplInfo', params, function(data){ + jQuery('#category_info').html(data.tpl); + }); +} + + +function nodeToggleAll(){ + jQuery("[class*=close]", simpleTreeCollection[0]).each(function(){ + simpleTreeCollection[0].nodeToggle(this); + }); +} + +function deleteNode(node){ + if(confirm(lang_confirm_delete){ + var params ={ + "category_srl":node + ,"parent_srl":0 + ,"module_srl":jQuery("#fo_category [name=module_srl]").val() + }; + + jQuery.exec_json('board.procBoardAdminDeleteCategory', params, function(data){ + if(data.error==0) Tree(xml_url); + }); + } +} + +/* 카테고리 아이템 입력후 */ +function completeInsertCategory(ret_obj) { + jQuery('#category_info').html(""); + Tree(xml_url); +} + +function hideCategoryInfo() { + jQuery('#category_info').html(""); +} + + + + + + + + + + + + /* 모듈 생성 후 */ function completeInsertBoard(ret_obj) { var error = ret_obj['error']; @@ -96,42 +259,11 @@ function doCartSetup(act_type) { /** * 카테고리 관리 - **/ + **/ -/* 빈 카테고리 아이템 추가 */ -function doInsertCategory(parent_srl) { - if(typeof(parent_srl)=='undefined') parent_srl = 0; - var params = {node_srl:0, parent_srl:parent_srl} - doGetCategoryInfo(null, params); - deSelectNode(); -} -/* 카테고리 클릭시 적용할 함수 */ -function doGetCategoryInfo(category_id, obj) { - // category, category_id, node_srl을 추출 - var fo_obj = xGetElementById("fo_category"); - var module_srl = fo_obj.module_srl.value; - var node_srl = 0; - var parent_srl = 0; - if(typeof(obj)!="undefined") { - if(typeof(obj.getAttribute)!="undefined") { - node_srl = obj.getAttribute("node_srl"); - } else { - node_srl = obj.node_srl; - parent_srl = obj.parent_srl; - } - } - var params = new Array(); - params["category_srl"] = node_srl; - params["parent_srl"] = parent_srl; - params["module_srl"] = module_srl; - - // 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다. - var response_tags = new Array('error','message','tpl'); - exec_xml('board', 'getBoardAdminCategoryTplInfo', params, completeGetCategoryTplInfo, response_tags, params); -} /* 서버로부터 받아온 카테고리 정보를 출력 */ xAddEventListener(document,'mousedown',checkMousePosition); @@ -143,10 +275,7 @@ function checkMousePosition(e) { _yPos = evt.pageY; } -function hideCategoryInfo() { - var obj = xGetElementById('category_info'); - obj.style.display = "none"; -} + function completeGetCategoryTplInfo(ret_obj, response_tags) { var obj = xGetElementById('category_info'); @@ -164,26 +293,7 @@ function completeGetCategoryTplInfo(ret_obj, response_tags) { fo_obj.category_title.focus(); } -/* 카테고리 아이템 입력후 */ -function completeInsertCategory(ret_obj) { - var xml_file = ret_obj['xml_file']; - var category_srl = ret_obj['category_srl']; - var module_srl = ret_obj['module_srl']; - var parent_srl = ret_obj['parent_srl']; - if(!xml_file) return; - - loadTreeMenu(xml_file, 'category', 'zone_category', category_title, '',doGetCategoryInfo, category_srl, doMoveTree); - - if(!category_srl) { - xInnerHtml("category_info", ""); - } else { - var params = {node_srl:category_srl, parent_srl:parent_srl} - doGetCategoryInfo(null, params) - } - - if(typeof('fixAdminLayoutFooter')=="function") fixAdminLayoutFooter(); -} /* 카테고리를 드래그하여 이동한 후 실행할 함수 , 이동하는 category_srl과 대상 category_srl을 받음 */ @@ -218,7 +328,7 @@ function doReloadTreeCategory(module_srl) { var params = new Array(); params["module_srl"] = module_srl; - // 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다. + // 서버에 요청하여 해당 노드의 정보를 수정할 수 있도록 한다. var response_tags = new Array('error','message', 'xml_file'); exec_xml('board', 'procBoardAdminMakeXmlFile', params, completeInsertCategory, response_tags, params); } @@ -231,7 +341,7 @@ function doDeleteCategory(category_srl) { procFilter(fo_obj, delete_category); } -/* 카테고리 아이템 삭제 후 */ +/* 카테고리 아이템 삭제 후 */ function completeDeleteCategory(ret_obj) { var module_srl = ret_obj['module_srl']; var category_srl = ret_obj['category_srl']; @@ -243,5 +353,5 @@ function completeDeleteCategory(ret_obj) { var obj = xGetElementById('category_info'); xInnerHtml(obj, ""); obj.style.display = 'none'; -} +} diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 1f6e38863..5e99ad036 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -879,16 +879,17 @@ $group_srls = $node->group_srls; $mid = $node->mid; $module_srl = $node->module_srl; - + $parent_srl = $node->parent_srl; // node->group_srls값이 있으면 if($group_srls) $group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s)))))',$group_srls); else $group_check_code = "true"; $attribute = sprintf( - 'mid="%s" module_srl="%d" node_srl="%d" category_srl = "%d" text="" url="%s" expand="%s" document_count="%d" ', + 'mid="%s" module_srl="%d" node_srl="%d" parent_srl="%d" category_srl="%d" text="" url="%s" expand="%s" document_count="%d" ', $mid, $module_srl, $category_srl, + $parent_srl, $category_srl, $group_check_code, $title, diff --git a/modules/document/queries/getChildCategoryMinListOrder.xml b/modules/document/queries/getChildCategoryMinListOrder.xml new file mode 100644 index 000000000..0ae643680 --- /dev/null +++ b/modules/document/queries/getChildCategoryMinListOrder.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/modules/homepage/homepage.controller.php b/modules/homepage/homepage.controller.php index 81b8624c2..149f7757a 100644 --- a/modules/homepage/homepage.controller.php +++ b/modules/homepage/homepage.controller.php @@ -237,47 +237,8 @@ $target_srl = Context::get('target_srl'); if(!$menu_srl || !$mode || !$target_srl) return new Object(-1,'msg_invalid_request'); - - // 원본 메뉴들을 구함 - $oMenuAdminModel = &getAdminModel('menu'); $oMenuAdminController = &getAdminController('menu'); - - $target_item = $oMenuAdminModel->getMenuItemInfo($target_srl); - if($target_item->menu_item_srl != $target_srl) return new Object(-1,'msg_invalid_request'); - - // 위치 이동 (순서 조절) - if($mode == 'move') { - $args->parent_srl = $parent_srl; - $args->menu_srl = $menu_srl; - - if($source_srl) { - $source_item = $oMenuAdminModel->getMenuItemInfo($source_srl); - if($source_item->menu_item_srl != $source_srl) return new Object(-1,'msg_invalid_request'); - $args->listorder = $source_item->listorder-1; - } else { - $output = executeQuery('menu.getMaxListorder', $args); - if(!$output->toBool()) return $output; - $args->listorder = (int)$output->data->listorder; - if(!$args->listorder) $args->listorder= 0; - } - $args->parent_srl = $parent_srl; - $output = executeQuery('menu.updateMenuItemListorder', $args); - if(!$output->toBool()) return $output; - - $args->parent_srl = $parent_srl; - $args->menu_item_srl = $target_srl; - $output = executeQuery('menu.updateMenuItemNode', $args); - if(!$output->toBool()) return $output; - // 자식으로 추가 - } elseif($mode == 'insert') { - $args->menu_item_srl = $target_srl; - $args->parent_srl = $parent_srl; - $args->listorder = -1*getNextSequence(); - $output = executeQuery('menu.updateMenuItemNode', $args); - if(!$output->toBool()) return $output; - } - - $xml_file = $oMenuAdminController->makeXmlFile($menu_srl); + $xml_file = $oMenuAdminController->moveMenuItem($menu_srl,$parent_srl,$source_srl,$target_srl,$mode); $this->add('xml_file', $xml_file); } diff --git a/modules/homepage/homepage.view.php b/modules/homepage/homepage.view.php index 53dc93764..670c1c80b 100644 --- a/modules/homepage/homepage.view.php +++ b/modules/homepage/homepage.view.php @@ -91,6 +91,7 @@ $this->setTemplateFile('menu_manage'); } + function dispHomepageBottomMenu() { // 메뉴 정보 가져오기 $menu_srl = $this->homepage_info->second_menu_srl; diff --git a/modules/homepage/skins/xe_official/css/default.css b/modules/homepage/skins/xe_official/css/default.css index bb3cc94cf..14a3e8f49 100644 --- a/modules/homepage/skins/xe_official/css/default.css +++ b/modules/homepage/skins/xe_official/css/default.css @@ -1,8 +1,5 @@ @charset "utf-8"; -#menu ul { margin-top:10px; } -#menu li { padding-bottom:10px; } - #menuItem { visibility:hidden; position:absolute; left:0; top:0; background-color:#FFFFFF; z-index:1000; border:2px solid #DDDDDD; padding:10px;} #menu_normal_btn_zone { display:none; } #menu_hover_btn_zone { display:none; } diff --git a/modules/homepage/skins/xe_official/js/homepage.js b/modules/homepage/skins/xe_official/js/homepage.js index 8daa47a61..600924570 100644 --- a/modules/homepage/skins/xe_official/js/homepage.js +++ b/modules/homepage/skins/xe_official/js/homepage.js @@ -1,206 +1,107 @@ -var max_menu_depth = 1; -var menuList = new Array(); -var mousePos = {x:0,y:0} -function chkMousePosition(evt) { - var e = new xEvent(evt); - mousePos = {x:e.pageX, y:e.pageY}; +function homepageLoadMenuInfo(url){ + // clear tree; + jQuery('#menu > ul > li > ul').remove(); + if(jQuery("ul.simpleTree > li > a").size() ==0)jQuery('').bind("click",function(e){homepageAddMenu(0,e);}).appendTo("ul.simpleTree > li"); - var pobj = e.target; - while(pobj) { - pobj = pobj.parentNode; - if(pobj && pobj.id == 'menuItem') return; - } + //ajax get data and transeform ul il + jQuery.get(url,function(data){ + jQuery(data).find("node").each(function(i){ + var text = jQuery(this).attr("text"); + var node_srl = jQuery(this).attr("node_srl"); + var parent_srl = jQuery(this).attr("parent_srl"); + var url = jQuery(this).attr("url"); - hideMenuItem(); + // node + var node = jQuery('
      • '+text+'
      • '); + + // button + jQuery('').bind("click",function(e){homepageAddMenu(node_srl,e);}).appendTo(node); + + jQuery('').bind("click",function(e){ + jQuery.exec_json("homepage.getHomepageMenuItem",{ "node_srl":node_srl},function(data){ + data.menu_info['mode'] = 'update'; + menuFormInsert(data.menu_info); + jQuery("#menuItem").css('position','absolute').css('visibility','visible').css('top',e.pageY - jQuery("#header").height() - 70).css('left',e.pageX - jQuery("#navigation").width() -40); + jQuery('#itemAttr4').css("display",'block'); + }); + + }).appendTo(node); + + jQuery('').bind("click",function(e){homepageDeleteMenu(node_srl);}).appendTo(node); + + // insert parent child + if(parent_srl>0){ + if(jQuery('#tree_'+parent_srl+'>ul').length==0) jQuery('#tree_'+parent_srl).append(jQuery('
          ')); + jQuery('#tree_'+parent_srl+'> ul').append(node); + }else{ + if(jQuery('#menu ul.simpleTree > li > ul').length==0) jQuery("
            ").appendTo('#menu ul.simpleTree > li'); + jQuery('#menu ul.simpleTree > li > ul').append(node); + } + + }); + + //button show hide + jQuery("#menu li").each(function(){ + if(jQuery(this).parents('ul').size() > max_menu_depth) jQuery("a.add",this).hide(); + if(jQuery(">ul",this).size()>0) jQuery(">a.delete",this).hide(); + }); + + + // draw tree + simpleTreeCollection = jQuery('.simpleTree').simpleTree({ + autoclose: false, + afterClick:function(node){ + //alert("text-"+jQuery('span:first',node).text()); + }, + afterDblClick:function(node){ + //alert("text-"+jQuery('span:first',node).text()); + }, + afterMove:function(destination, source, pos){ + jQuery('#menuItem').css("visibility",'hidden'); + + var menu_srl = jQuery("#fo_menu input[name=menu_srl]").val(); + var parent_srl = destination.attr('id').replace(/.*_/g,''); + var target_srl = source.attr('id').replace(/.*_/g,''); + var brothers = jQuery('#'+destination.attr('id')+' > ul > li:not([class^=line])').length; + var mode = brothers >1 ? 'move':'insert'; + var source_srl = pos == 0 ? 0: source.prevAll("li:not(.line)").get(0).id.replace(/.*_/g,''); + + jQuery.exec_json("homepage.procHomepageMenuItemMove",{ "menu_srl":menu_srl,"parent_srl":parent_srl,"target_srl":target_srl,"source_srl":source_srl,"mode":mode}, + function(data){ + if(data.error>0){ + homepageLoadMenuInfo(xml_url); + } + }); + }, + + // i want you !! made by sol + beforeMovedToLine : function(destination, source, pos){ + return (jQuery(destination).parents('ul').size() + jQuery('ul',source).size() <= max_menu_depth); + }, + + // i want you !! made by sol + beforeMovedToFolder : function(destination, source, pos){ + return (jQuery(destination).parents('ul').size() + jQuery('ul',source).size() <= max_menu_depth-1); + }, + afterAjax:function() + { + //alert('Loaded'); + }, + animate:true + ,docToFolderConvert:true + }); + + // open all node + nodeToggleAll(); + },"xml"); } -function homepageLoadMenuInfo(xml_file) { - var oXml = new xml_handler(); - oXml.reset(); - oXml.xml_path = xml_file; - oXml.request(completeHomepageLoadMenuInfo, oXml); -} - -function completeHomepageLoadMenuInfo(oXml) { - var waiting_obj = xGetElementById("waitingforserverresponse"); - if(waiting_obj) waiting_obj.style.visibility = "hidden"; - - var xmlDoc = oXml.getResponseXml(); - if(!xmlDoc) return null; - - // node 태그에 해당하는 값들을 가져와서 html을 작성 - var node_list = xmlDoc.getElementsByTagName("node"); - if(node_list.length<1) return; - - // select 내용 없앰 - xInnerHtml('menu',''); - - var root = xmlDoc.getElementsByTagName("root")[0]; - root.setAttribute('node_srl',0); - root.setAttribute('parent_srl',0); - xGetElementById('menu').appendChild(getGabItem(0,0,0)); - homepageInsertMenuObject(xGetElementById('menu'), root, 0); - -} - -function getGabItem(parent_srl, up_srl, depth) { - if(typeof(parent_srl)=='undefined' || !parent_srl) parent_srl = 0; - if(typeof(up_srl)=='undefined' || !up_srl) up_srl = 0; - if(typeof(depth)=='undefined' || !depth) depth = 0; - - var gabObj = xCreateElement('div'); - gabObj.id = 'gab_'+parent_srl+'_'+up_srl; - gabObj.style.cursor = "pointer"; - gabObj.style.width = '100%'; - gabObj.style.height = '1px'; - gabObj.style.marign = '5px 0 0 0'; - gabObj.style.padding = '0 0 5px 0'; - gabObj.style.overflow = "hidden"; - gabObj.style.whitespace = "nowrap"; - return gabObj; -} - -// root부터 시작해서 recursive하게 노드를 표혐 -function homepageInsertMenuObject(drawObj, parent_node, depth) { - - for (var i=0; i< parent_node.childNodes.length; i++) { - - var html = ""; - - var node = parent_node.childNodes.item(i); - if(node.nodeName!="node") continue; - - var node_srl = node.getAttribute("node_srl"); - var parent_srl = node.getAttribute("parent_srl"); - var text = node.getAttribute("text"); - var url = node.getAttribute("url"); - - if(!text) continue; - - var itemObj = xCreateElement('div'); - itemObj.style.margin = "0 0 0 "+(depth*20)+"px"; - - if(parent_srl>0 && i<1) itemObj.appendChild(getGabItem(parent_srl, 0, depth)); - - var textObj = xCreateElement('div'); - textObj.className = "page"; - textObj.style.cursor = "pointer"; - textObj.id = "node_"+node_srl; - textObj.style.padding = "5px 0 5px 20px"; - xInnerHtml(textObj, text); - - if(depth < max_menu_depth-1) - xInnerHtml(textObj, xInnerHtml(textObj) + ' '); - - xInnerHtml(textObj, xInnerHtml(textObj) + ' '); - - if(!node.hasChildNodes()) { - xInnerHtml(textObj, xInnerHtml(textObj) + ' '); - } - itemObj.appendChild(textObj); - - if(node.hasChildNodes()) homepageInsertMenuObject(itemObj, node, depth+1); - itemObj.appendChild(getGabItem(parent_srl, node_srl, depth)); - - drawObj.appendChild(itemObj); - } - -} - -function homepageAddMenu(node_srl) { - menuFormReset(); - var obj = new Array(); - obj['mode'] = 'insert'; - if(typeof(node_srl)!='undefined' && node_srl > 0) { - obj['parent_srl'] = node_srl; - } - menuFormInsert(obj) - showMenuItem(); -} - -function homepageModifyMenu(node_srl) { - var params = new Array(); - params['node_srl'] = node_srl; - var response_tags = new Array('error','message','menu_info'); - exec_xml('homepage','getHomepageMenuItem', params, completeModifyMenu, response_tags); -} - -function completeModifyMenu(ret_obj) { - var menu_info = ret_obj['menu_info']; - menu_info['mode'] = 'update'; - menuFormInsert(menu_info) - showMenuItem(); - showMenuButton(); -} - -function homepageDeleteMenu(node_srl) { - var fo_obj = xGetElementById('menu_item_form'); - fo_obj.menu_item_srl.value = node_srl; - - procFilter(fo_obj, delete_menu_item); -} - -function completeChangeLayout(ret_obj) { - location.reload(); -} - -function hideMenuItem() { - xGetElementById('menuItem').style.visibility = 'hidden'; - menuFormReset(); -} - -function showMenuButton() { - xGetElementById('itemAttr4').style.display = 'block'; -} - -function showMenuItem() { - var obj = xGetElementById('menuItem'); - xLeft(obj, mousePos.x - xWidth('navigation') - 40); - xTop(obj, mousePos.y - xHeight('header') - 70 ); - obj.style.visibility = 'visible'; -} - -function menuFormReset() { - var fo_obj = xGetElementById("fo_menu"); - - fo_obj.parent_srl.value = ''; - fo_obj.menu_item_srl.value = ''; - fo_obj.mode.value = ''; - - var names = xGetElementsByClassName("menu_names"); - for(var i in names) names[i].value = ""; - - fo_obj.browser_title.value = ''; - - fo_obj.menu_open_window.checked = false; - fo_obj.menu_expand.checked = false; - - for(var i=0; i 0) { + obj['parent_srl'] = node_srl; + } + + menuFormInsert(obj); + + jQuery("#menuItem").css('position','absolute').css('visibility','visible').css('top',e.pageY - jQuery("#header").height() - 70).css('left',e.pageX - jQuery("#navigation").width() -40); + jQuery('#itemAttr4').css("display",'block'); } -/* 메뉴 이미지 업로드 후처리 */ -function completeMenuUploadButton(target, filename) { - var column_name = target.replace(/^menu_/,''); - var fo_obj = xGetElementById("fo_menu"); - var zone_obj = xGetElementById(target+'_zone'); - var img_obj = xGetElementById(target+'_img'); - fo_obj[column_name].value = filename; - - var img = new Image(); - img.src = filename; - img_obj.src = img.src; - zone_obj.style.display = "block"; -} - -function doDeleteButton(target) { - var fo_obj = xGetElementById("fo_menu"); - - var col_name = target.replace(/^menu_/,''); - - var params = new Array(); - params['target'] = target; - params['menu_srl'] = fo_obj.menu_srl.value; - params['menu_item_srl'] = fo_obj.menu_item_srl.value; - params['filename'] = fo_obj[col_name].value; - - var response_tags = new Array('error','message', 'target'); - - exec_xml('homepage','procHomepageDeleteButton', params, completeDeleteButton, response_tags); -} - -function completeDeleteButton(ret_obj) { - var target = ret_obj['target']; - - var column_name = target.replace(/^menu_/,''); - var fo_obj = xGetElementById("fo_menu"); - var zone_obj = xGetElementById(target+'_zone'); - var img_obj = xGetElementById(target+'_img'); - fo_obj[column_name].value = ""; - img_obj.src = ""; - zone_obj.style.display = "none"; -} - -/* drag item */ -xAddEventListener(document, 'mousedown', dragItem); - -var dragObj = null; -var dragTarget = null; -var dragTmpObjectect = new Array(); -var dragDisappear = 0; - -function dragItem(evt) { - var e = new xEvent(evt); - if(!e.target) return; - var obj = e.target; - while(obj) { - if(obj && obj.nodeName == 'DIV' && typeof(obj.id)!='undefined' && obj.id.indexOf('node_')>-1) { - dragEnable(obj, evt); - return; - } - obj = obj.parentNode; +function homepageDeleteMenu(node_srl) { + if(confirm(lang_confirm_delete)){ + jQuery('#menuItem').css("visibility",'hidden'); + var fo_obj = jQuery('#menu_item_form').get(0); + fo_obj.menu_item_srl.value = node_srl; + procFilter(fo_obj, delete_menu_item); } } -function getDragTmpObject(obj) { - if(!dragTmpObjectect[obj.id]) { - tmpObj = xCreateElement('div'); - tmpObj.id = obj.id + '_tmp'; - tmpObj.style.display = 'none'; - tmpObj.style.position = 'absolute'; - tmpObj.style.opacity = 0.5; - tmpObj.style.filter = 'alpha(opacity=50)'; - tmpObj.style.cursor = "pointer"; - xInnerHtml(tmpObj,xInnerHtml(obj)); - - document.body.appendChild(tmpObj); - dragTmpObjectect[obj.id] = tmpObj; - } - return dragTmpObjectect[obj.id]; +function nodeToggleAll(){ + jQuery("[class*=close]", simpleTreeCollection[0]).each(function(){ + simpleTreeCollection[0].nodeToggle(this); + }); } -function removeDragTmpObject(obj) { - if(!dragTmpObjectect[obj.id]) return; - dragTmpObjectect[obj.id] = null; -} +function doReloadTreeMenu(){ + var menu_srl = jQuery("#fo_menu input[name=menu_srl]").val(); -function dragEnable(obj, evt) { - if(obj.id.indexOf('node_')<0) return; - obj.draggable = true; - - dragObj = obj; - dragObj.id = obj.id; - - var e = new xEvent(evt); - xPreventDefault(evt); - obj.xDPX = e.pageX; - obj.xDPY = e.pageY; - - xAddEventListener(document, 'mouseup', dragUp, false); - xAddEventListener(document, 'mousemove', dragMove, false); - - var tmpObj = getDragTmpObject(obj); - xLeft(tmpObj, e.pageX+1); - xTop(tmpObj, e.pageY+1); - xWidth(tmpObj, xWidth(obj)); - xHeight(tmpObj, xHeight(obj)); - xDisplay(tmpObj, 'block'); -} - -function dragMove(evt) { - if(!dragObj) return; - - var e = new xEvent(evt); - var target = e.target; - var obj = dragObj; - var tobj = getDragTmpObject(obj); - xLeft(tobj, e.pageX+1); - xTop(tobj, e.pageY+1); - - if(target && target.nodeName == "DIV" && typeof(target.id)!='undefined' && (target.id.indexOf('gab_')>-1||target.id.indexOf('node_')>-1)) { - var isChilds = false; - var pObj = target.parentNode; - while(pObj) { - if(pObj.firstChild && typeof(pObj.firstChild.id)!='undefined' && pObj.firstChild.id == dragObj.id) { - isChilds = true; - break; + jQuery.exec_json("menu.procMenuAdminMakeXmlFile",{ "menu_srl":menu_srl}, + function(data){ + homepageLoadMenuInfo(xml_url); } - pObj = pObj.parentNode; - } - if(dragTarget) { - dragTarget.style.backgroundColor = ''; - dragTarget.style.borderTop = '0px solid #000'; - dragTarget = null; - } - - if(!isChilds) { - dragTarget = target; - if(target.id.indexOf('gab_')>-1) { - dragTarget.style.borderTop = '1px solid #000'; - } else { - dragTarget.style.backgroundColor = '#DDDDDD'; - } - } - } else if(dragTarget) { - dragTarget.style.backgroundColor = ''; - dragTarget.style.borderTop = '0px solid #000'; - dragTarget = null; - } - - xPreventDefault(evt); -} - -function dragUp(evt) { - if(!dragObj) return; - - if(dragTarget && dragTarget.id != dragObj.id && confirm(confirmMenuMove)) { - var mode = null; - if(dragTarget.id.indexOf('gab_')>-1) mode = 'move'; - else mode = 'insert'; - - var tmpArr = dragTarget.id.split('_'); - var parent_srl = tmpArr[1]; - var source_srl = mode=='move'?tmpArr[2]:0; - - var tmpArr = dragObj.id.split('_'); - var target_srl = tmpArr[1]; - - var params = new Array(); - params['menu_srl'] = xGetElementById('fo_menu').menu_srl.value; - params['mode'] = mode; - params['parent_srl'] = parent_srl; - params['source_srl'] = source_srl; - params['target_srl'] = target_srl; - var response_tags = new Array('error','message','xml_file'); - exec_xml('homepage','procHomepageMenuItemMove', params, completeInsertMenuItem, response_tags); - } - - var tobj = getDragTmpObject(dragObj); - - xRemoveEventListener(document, 'mouseup', dragUp, false); - xRemoveEventListener(document, 'mousemove', dragMove, false); - - dragDisappear = dragDisapearObject(tobj, dragObj); - - var e = new xEvent(evt); - xPreventDefault(evt); - dragObj = null; - - if(dragTarget) { - dragTarget.style.backgroundColor = ''; - dragTarget.style.borderTop = '0px solid #000'; - dragTarget = null; - } -} - - -// 스르르 사라지게 함;; -function dragDisapearObject(obj, tobj) { - var it = 20; - var ib = 20; - - var x = parseInt(xPageX(obj),10); - var y = parseInt(xPageY(obj),10); - var ldt = (x - parseInt(xPageX(tobj),10)) / ib; - var tdt = (y - parseInt(xPageY(tobj),10)) / ib; - - return setInterval(function() { - if(ib < 1) { - clearInterval(dragDisappear); - xDisplay(obj, 'none'); - removeDragTmpObject(tobj); - return; - } - ib -= 3; - x-=ldt; - y-=tdt; - xLeft(obj, x); - xTop(obj, y); - }, it/ib); -} - -function completeInsertBoard(ret_obj) { - alert(ret_obj['message']); - location.reload(); -} - -function completeInsertPage(ret_obj) { - alert(ret_obj['message']); - location.reload(); -} - -function doDeleteGroup(group_srl) { - var fo_obj = xGetElementById('fo_group'); - fo_obj.group_srl.value = group_srl; - procFilter(fo_obj, delete_group); -} - -function completeInsertGroup(ret_obj) { - location.href = current_url.setQuery('group_srl',''); -} - -function completeDeleteGroup(ret_obj) { - location.href = current_url.setQuery('group_srl',''); - -} - -function completeInsertGrant(ret_obj) { - var error = ret_obj['error']; - var message = ret_obj['message']; - var page = ret_obj['page']; - var module_srl = ret_obj['module_srl']; - - alert(message); + ); } +function closeTreeMenuInfo(){ + jQuery('#menuItem').css("visibility",'hidden'); +} \ No newline at end of file diff --git a/modules/homepage/skins/xe_official/menu_manage.html b/modules/homepage/skins/xe_official/menu_manage.html index 9af9a9e1e..9114c5109 100644 --- a/modules/homepage/skins/xe_official/menu_manage.html +++ b/modules/homepage/skins/xe_official/menu_manage.html @@ -1,163 +1,168 @@ - - + + +

            {$lang->cmd_homepage_menus[$act]}

            {$lang->about_homepage_act[$act]}

            - +{$lang->cmd_remake_cache} - +
            - {$lang->cmd_add_new_menu}
        - {@ $_row = 0;} - - - - - - {@ $_row ++ } - - - - - - - - - - - - - - - - - -
        {$lang->menu_name}
        {$val}
        {$lang->about_menu_names}
        {$lang->cmd_option}
        - - - - -

        {$lang->about_menu_option}

        -
        {$lang->item_group_grant}
        - - group_srls)&&in_array($key, $item_info->group_srls))-->checked="checked"/> - - -

        {$lang->about_group_grant}

        -
        {$lang->module_type}
        - -

        {$lang->about_module_type}

        -
        + + {@ $_row = 0;} + + + + + + {@ $_row ++ } + + + + + + + + + + + + + + + + + +
        {$lang->menu_name}
        {$val}
        {$lang->about_menu_names}
        {$lang->cmd_option}
        + + + + +

        {$lang->about_menu_option}

        +
        {$lang->item_group_grant}
        + + group_srls)&&in_array($key, $item_info->group_srls))-->checked="checked"/> + + +

        {$lang->about_group_grant}

        +
        {$lang->module_type}
        + +

        {$lang->about_module_type}

        +
        - - - - - - - - - -
        {$lang->browser_title}
        - -

        {$lang->about_browser_title}

        -
        {$lang->module_id}
        - -

        {$lang->about_module_id}

        -
        + + + + + + + + + +
        {$lang->browser_title}
        + +

        {$lang->about_browser_title}

        +
        {$lang->module_id}
        + +

        {$lang->about_module_id}

        +
        - - - - - -
        {$lang->url}
        - http:// -

        {$lang->about_menu_item_url}

        -
        + + + + + +
        {$lang->url}
        + http:// +

        {$lang->about_menu_item_url}

        +
        - - - - - - - - - - - - - - - - - -
        {$lang->menu_img_btn}
        {$lang->menu_normal_btn}
        - - -
        {$lang->menu_hover_btn}
        - - -
        {$lang->menu_active_btn}
        - - -
        {$lang->about_menu_image_button}
        - - - - - -
        - - {$lang->cmd_close} -
        + + + + + + + + + + + + + + + + + +
        {$lang->menu_img_btn}
        {$lang->menu_normal_btn}
        + + +
        {$lang->menu_hover_btn}
        + + +
        {$lang->menu_active_btn}
        + + +
        {$lang->about_menu_image_button}
        + + + + +
        + + {$lang->cmd_close} +
    diff --git a/modules/menu/menu.admin.controller.php b/modules/menu/menu.admin.controller.php index fd0d4758a..7769e9f8b 100644 --- a/modules/menu/menu.admin.controller.php +++ b/modules/menu/menu.admin.controller.php @@ -30,7 +30,7 @@ } /** - * @brief 메뉴 제목 변경 + * @brief 메뉴 제목 변경 **/ function procMenuAdminUpdate() { // 입력할 변수 정리 @@ -50,7 +50,7 @@ function procMenuAdminDelete() { $menu_srl = Context::get('menu_srl'); - // 캐시 파일 삭제 + // 캐시 파일 삭제 $cache_list = FileHandler::readDir("./files/cache/menu","",false,true); if(count($cache_list)) { foreach($cache_list as $cache_file) { @@ -139,7 +139,7 @@ // XML 파일을 갱신하고 위치을 넘겨 받음 $xml_file = $this->makeXmlFile($args->menu_srl); - // url이 mid일 경우 기록 남김 + // url이 mid일 경우 기록 남김 if(preg_match('/^([a-zA-Z0-9\_\-]+)$/', $args->url)) { $mid = $args->url; @@ -147,7 +147,7 @@ $mid_args->mid = $mid; // menu_srl에 해당하는 레이아웃 값을 구함 - $output = executeQuery('menu.getMenuLayout', $args); + $output = executeQuery('menu.getMenuLayout', $args); // 해당 모듈에 레이아웃 값이 정해져 있지 않으면 지정 $oModuleModel = &getModel('module'); @@ -167,15 +167,15 @@ } /** - * @brief 메뉴 메뉴 삭제 + * @brief 메뉴 메뉴 삭제 **/ function procMenuAdminDeleteItem() { - // 변수 정리 + // 변수 정리 $args = Context::gets('menu_srl','menu_item_srl'); $oMenuAdminModel = &getAdminModel('menu'); - // 원정보를 가져옴 + // 원정보를 가져옴 $item_info = $oMenuAdminModel->getMenuItemInfo($args->menu_item_srl); if($item_info->parent_srl) $parent_srl = $item_info->parent_srl; @@ -209,8 +209,9 @@ /** * @brief 메뉴의 메뉴를 이동 **/ +/* function procMenuAdminMoveItem() { - // 변수 설정 + // 변수 설정 $menu_id = Context::get('menu_id'); $source_item_srl = str_replace('menu_'.$menu_id.'_','',Context::get('source_item')); $target_item_srl = str_replace('menu_'.$menu_id.'_','',Context::get('target_item')); @@ -233,7 +234,7 @@ $output = executeQuery('menu.updateMenuItemParent', $target_args); if(!$output->toBool()) return $output; - // xml파일 재생성 + // xml파일 재생성 $xml_file = $this->makeXmlFile($target_item->menu_srl); // return 변수 설정 @@ -241,6 +242,65 @@ $this->add('xml_file', $xml_file); $this->add('source_item_srl', $source_item_srl); } +*/ + + function procMenuAdminMoveItem() { + $menu_srl = Context::get('menu_srl'); + $mode = Context::get('mode'); + $parent_srl = Context::get('parent_srl'); + $source_srl = Context::get('source_srl'); + $target_srl = Context::get('target_srl'); + + if(!$menu_srl || !$mode || !$target_srl) return new Object(-1,'msg_invalid_request'); + $this->moveMenuItem($menu_srl,$parent_srl,$source_srl,$target_srl,$mode); + } + + + + function moveMenuItem($menu_srl,$parent_srl,$source_srl,$target_srl,$mode){ + // 원본 메뉴들을 구함 + $oMenuAdminModel = &getAdminModel('menu'); + + $target_item = $oMenuAdminModel->getMenuItemInfo($target_srl); + if($target_item->menu_item_srl != $target_srl) return new Object(-1,'msg_invalid_request'); + + // 위치 이동 (순서 조절) + if($mode == 'move') { + $args->parent_srl = $parent_srl; + $args->menu_srl = $menu_srl; + + if($source_srl) { + $source_item = $oMenuAdminModel->getMenuItemInfo($source_srl); + if($source_item->menu_item_srl != $source_srl) return new Object(-1,'msg_invalid_request'); + $args->listorder = $source_item->listorder-1; + } else { + $output = executeQuery('menu.getMaxListorder', $args); + if(!$output->toBool()) return $output; + $args->listorder = (int)$output->data->listorder; + if(!$args->listorder) $args->listorder= 0; + } + $args->parent_srl = $parent_srl; + $output = executeQuery('menu.updateMenuItemListorder', $args); + if(!$output->toBool()) return $output; + + $args->parent_srl = $parent_srl; + $args->menu_item_srl = $target_srl; + $output = executeQuery('menu.updateMenuItemNode', $args); + if(!$output->toBool()) return $output; + // 자식으로 추가 + } elseif($mode == 'insert') { + $args->menu_item_srl = $target_srl; + $args->parent_srl = $parent_srl; + $args->listorder = -1*getNextSequence(); + $output = executeQuery('menu.updateMenuItemNode', $args); + if(!$output->toBool()) return $output; + } + + $xml_file = $this->makeXmlFile($menu_srl); + return $xml_file; +// $this->add('xml_file', $xml_file); + } + /** * @brief xml 파일을 갱신 @@ -249,7 +309,7 @@ * 개발 중간의 문제인 것 같고 현재는 문제가 생기지 않으나 굳이 없앨 필요 없는 기능 **/ function procMenuAdminMakeXmlFile() { - // 입력값을 체크 + // 입력값을 체크 $menu_srl = Context::get('menu_srl'); // 해당 메뉴의 정보를 구함 @@ -257,10 +317,10 @@ $menu_info = $oMenuAdminModel->getMenu($menu_srl); $menu_title = $menu_info->title; - // xml파일 재생성 + // xml파일 재생성 $xml_file = $this->makeXmlFile($menu_srl); - // return 값 설정 + // return 값 설정 $this->add('menu_title',$menu_title); $this->add('xml_file',$xml_file); } @@ -316,8 +376,8 @@ function makeXmlFile($menu_srl) { // xml파일 생성시 필요한 정보가 없으면 그냥 return if(!$menu_srl) return; - - // DB에서 menu_srl에 해당하는 메뉴 아이템 목록을 listorder순으로 구해옴 + + // DB에서 menu_srl에 해당하는 메뉴 아이템 목록을 listorder순으로 구해옴 $args->menu_srl = $menu_srl; $args->sort_index = 'listorder'; $output = executeQuery('menu.getMenuItems', $args); @@ -350,7 +410,7 @@ } // 캐시 파일의 권한과 그룹 설정을 위한 공통 헤더 - $header_script = + $header_script = '$lang_type = Context::getLangType(); '. '$is_logged = Context::get(\'is_logged\'); '. '$logged_info = Context::get(\'logged_info\'); '. @@ -378,7 +438,7 @@ 'header("Pragma: no-cache"); '. '%s'. '?>'. - '%s', + '%s', $header_script, $this->getXmlTree($tree[0], $tree) ); @@ -391,9 +451,9 @@ '%s; '. '%s; '. '$menu->list = array(%s); '. - '?>', + '?>', $header_script, - $php_output['name'], + $php_output['name'], $php_output['buff'] ); @@ -419,7 +479,7 @@ // 자식 노드의 데이터 가져옴 if($menu_item_srl&&$tree[$menu_item_srl]) $child_buff = $this->getXmlTree($tree[$menu_item_srl], $tree); - // 변수 정리 + // 변수 정리 $names = $oMenuAdminModel->getMenuItemNames($node->name); foreach($names as $key => $val) { $name_arr_str .= sprintf('"%s"=>"%s",',$key, str_replace('\\','\\\\',htmlspecialchars($val))); @@ -457,7 +517,7 @@ $link = ''; } - // node->group_srls값이 있으면 + // node->group_srls값이 있으면 if($group_srls) $group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s)))))',$group_srls); else $group_check_code = "true"; $attribute = sprintf( @@ -478,7 +538,7 @@ $group_check_code, $link ); - + if($child_buff) $buff .= sprintf('%s', $attribute, $child_buff); else $buff .= sprintf('', $attribute); } @@ -498,11 +558,11 @@ $oMenuAdminModel = &getAdminModel('menu'); foreach($source_node as $menu_item_srl => $node) { - // 자식 노드가 있으면 자식 노드의 데이터를 먼저 얻어옴 + // 자식 노드가 있으면 자식 노드의 데이터를 먼저 얻어옴 if($menu_item_srl&&$tree[$menu_item_srl]) $child_output = $this->getPhpCacheCode($tree[$menu_item_srl], $tree); else $child_output = array("buff"=>"", "url_list"=>array()); - // 변수 정리 + // 변수 정리 $names = $oMenuAdminModel->getMenuItemNames($node->name); foreach($names as $key => $val) { $name_arr_str .= sprintf('"%s"=>"%s",',$key, str_replace('\\','\\\\',htmlspecialchars($val))); @@ -513,7 +573,7 @@ if($node->url) $child_output['url_list'][] = $node->url; $output['url_list'] = array_merge($output['url_list'], $child_output['url_list']); - // node->group_srls값이 있으면 + // node->group_srls값이 있으면 if($node->group_srls) $group_check_code = sprintf('($is_admin==true||(is_array($group_srls)&&count(array_intersect($group_srls, array(%s)))))',$node->group_srls); else $group_check_code = "true"; @@ -584,7 +644,7 @@ $link_active, $link ); - + // buff 데이터를 생성한다 $output['buff'] .= sprintf('%s=>array(%s),', $node->menu_item_srl, $attribute); $output['name'] .= $name_str; diff --git a/modules/menu/menu.admin.model.php b/modules/menu/menu.admin.model.php index 2c3e55d16..774a5defc 100644 --- a/modules/menu/menu.admin.model.php +++ b/modules/menu/menu.admin.model.php @@ -152,7 +152,8 @@ $tpl = $oTemplate->compile($this->module_path.'tpl', 'menu_item_info'); // return 할 변수 설정 - $this->add('tpl', $tpl); + + $this->add('tpl', str_replace("\n"," ",$tpl)); } } diff --git a/modules/menu/menu.admin.view.php b/modules/menu/menu.admin.view.php index 247d8a653..ca48223c0 100644 --- a/modules/menu/menu.admin.view.php +++ b/modules/menu/menu.admin.view.php @@ -71,7 +71,6 @@ Context::set('menu_info', $menu_info); // 레이아웃을 팝업으로 지정 - Context::set('layout','none'); $this->setTemplateFile('menu_management'); } diff --git a/modules/menu/tpl/index.html b/modules/menu/tpl/index.html index faac5a776..b7f1216f5 100644 --- a/modules/menu/tpl/index.html +++ b/modules/menu/tpl/index.html @@ -1,5 +1,6 @@ + @@ -26,7 +27,7 @@ {$no} - {htmlspecialchars($val->title)} + {htmlspecialchars($val->title)} {zdate($val->regdate,"Y-m-d")} {$lang->cmd_delete} diff --git a/modules/menu/tpl/js/menu_admin.js b/modules/menu/tpl/js/menu_admin.js index c58ed8076..1fa565f78 100644 --- a/modules/menu/tpl/js/menu_admin.js +++ b/modules/menu/tpl/js/menu_admin.js @@ -1,12 +1,4 @@ -/* 메뉴 입력후 */ -function completeInsertMenu(ret_obj) { - var menu_srl = ret_obj['menu_srl']; - alert(ret_obj['message']); - location.href = current_url.setQuery('act','dispMenuAdminContent'); - //var url = current_url.setQuery('act','dispMenuAdminManagement').setQuery('menu_srl',menu_srl); - //window.open(url); -} /* 메뉴 삭제 */ function doDeleteMenu(menu_srl) { @@ -69,9 +61,7 @@ function checkMousePosition(e) { */ function hideCategoryInfo() { - var obj = xGetElementById('menu_zone_info'); - xInnerHtml(obj,''); - obj.style.display = "none"; + jQuery("#menu_zone_info").html(""); } function completeGetMenuItemTplInfo(ret_obj, response_tags) { @@ -104,29 +94,6 @@ function completeGetMenuItemTplInfo(ret_obj, response_tags) { */ } -/* 메뉴 아이템 입력후 */ -function completeInsertMenuItem(ret_obj) { - var menu_id = ret_obj['menu_id']; - var xml_file = ret_obj['xml_file']; - var menu_title = ret_obj['menu_title']; - var menu_srl = ret_obj['menu_srl']; - var menu_item_srl = ret_obj['menu_item_srl']; - var parent_srl = ret_obj['parent_srl']; - - if(!xml_file) return; - - loadTreeMenu(xml_file, 'menu', 'menu_zone_menu', menu_title, '', doGetMenuItemInfo, menu_item_srl, doMoveTree); - - if(!menu_srl) xInnerHtml("menu_zone_info", ""); - else { - var params = {node_srl:menu_item_srl, parent_srl:parent_srl} - doGetMenuItemInfo('menu', params) - } - - if(typeof('fixAdminLayoutFooter')=="function") fixAdminLayoutFooter(); -} - - /* 메뉴를 드래그하여 이동한 후 실행할 함수 , 이동하는 item_srl과 대상 item_srl을 받음 */ function doMoveTree(menu_id, source_item, target_item) { var fo_obj = xGetElementById("fo_move_menu"); diff --git a/modules/menu/tpl/js/menu_tree.js b/modules/menu/tpl/js/menu_tree.js new file mode 100644 index 000000000..3ad090f4f --- /dev/null +++ b/modules/menu/tpl/js/menu_tree.js @@ -0,0 +1,155 @@ +function Tree(url){ + // clear tree; + jQuery('#menu > ul > li > ul').remove(); + + if(jQuery("ul.simpleTree > li > a").size() ==0)jQuery('').bind("click",function(e){addNode(0,e);}).appendTo("ul.simpleTree > li"); + + //ajax get data and transeform ul il + jQuery.get(url,function(data){ + jQuery(data).find("node").each(function(i){ + var text = jQuery(this).attr("text"); + var node_srl = jQuery(this).attr("node_srl"); + var parent_srl = jQuery(this).attr("parent_srl"); + var url = jQuery(this).attr("url"); + + // node + var node = jQuery('
  • '+text+'
  • '); + + // button + jQuery('').bind("click",function(e){addNode(node_srl,e);}).appendTo(node); + + jQuery('').bind("click",function(e){ + modifyNode(node_srl,e); + }).appendTo(node); + + jQuery('').bind("click",function(e){ + deleteNode(node_srl); + }).appendTo(node); + + // insert parent child + if(parent_srl>0){ + if(jQuery('#tree_'+parent_srl+'>ul').length==0) jQuery('#tree_'+parent_srl).append(jQuery('
      ')); + jQuery('#tree_'+parent_srl+'> ul').append(node); + }else{ + if(jQuery('#menu ul.simpleTree > li > ul').length==0) jQuery("
        ").appendTo('#menu ul.simpleTree > li'); + jQuery('#menu ul.simpleTree > li > ul').append(node); + } + + }); + + //button show hide + jQuery("#menu li").each(function(){ + if(jQuery(this).parents('ul').size() > max_menu_depth) jQuery("a.add",this).hide(); + if(jQuery(">ul",this).size()>0) jQuery(">a.delete",this).hide(); + }); + + + // draw tree + simpleTreeCollection = jQuery('.simpleTree').simpleTree({ + autoclose: false, + afterClick:function(node){ + //alert("text-"+jQuery('span:first',node).text()); + }, + afterDblClick:function(node){ + //alert("text-"+jQuery('span:first',node).text()); + }, + afterMove:function(destination, source, pos){ + + jQuery("#menu_zone_info").html(""); + var menu_srl = jQuery("#fo_menu input[name=menu_srl]").val(); + var parent_srl = destination.attr('id').replace(/.*_/g,''); + var target_srl = source.attr('id').replace(/.*_/g,''); + var brothers = jQuery('#'+destination.attr('id')+' > ul > li:not([class^=line])').length; + var mode = brothers >1 ? 'move':'insert'; + var source_srl = pos == 0 ? 0: source.prevAll("li:not(.line)").get(0).id.replace(/.*_/g,''); + + jQuery.exec_json("menu.procMenuAdminMoveItem",{"menu_srl":menu_srl,"parent_srl":parent_srl,"target_srl":target_srl,"source_srl":source_srl,"mode":mode}, + function(data){ + if(data.error>0) Tree(xml_url); + }); + + }, + + // i want you !! made by sol + beforeMovedToLine : function(destination, source, pos){ +// if(typeof(destination.id) == 'undefined') return false; + return (jQuery(destination).parents('ul').size() + jQuery('ul',source).size() <= max_menu_depth); + }, + + // i want you !! made by sol + beforeMovedToFolder : function(destination, source, pos){ +// if(typeof(destination.id) == 'undefined') return false; + return (jQuery(destination).parents('ul').size() + jQuery('ul',source).size() <= max_menu_depth-1); + }, + afterAjax:function() + { + //alert('Loaded'); + }, + animate:true + ,docToFolderConvert:true + }); + + + // image url replace +// jQuery("#menu ul.simpleTree img").attr("src",function(){ return jQuery(this).attr("src").replace("images/","./common/tpl/images/tree/");}); + + + + + // open all node + nodeToggleAll(); + },"xml"); +} + +function nodeToggleAll(){ + jQuery("[class*=close]", simpleTreeCollection[0]).each(function(){ + simpleTreeCollection[0].nodeToggle(this); + }); +} + + + +function modifyNode(node_srl,e){ + jQuery('#menu_zone_info').html(''); + var params ={ + "parent_srl":0 + ,"menu_item_srl":node_srl + }; + + jQuery.exec_json('menu.getMenuAdminTplInfo', params, function(data){ + jQuery('#menu_zone_info').html(data.tpl); + }); +} + +function addNode(node_srl,e){ + jQuery('#menu_zone_info').html(''); + var params ={ + "menu_item_srl":0 + ,"parent_srl":node_srl + }; + + jQuery.exec_json('menu.getMenuAdminTplInfo', params, function(data){ + jQuery('#menu_zone_info').html(data.tpl); + }); +} + + +function deleteNode(node_srl){ + + if(confirm(lang_confirm_delete)){ + jQuery('#menu_zone_info').html(''); + var params ={ + "menu_item_srl":node_srl + ,"menu_srl":jQuery("form input[name=menu_srl]").val() + }; + jQuery.exec_json('menu.procMenuAdminDeleteItem', params, function(data){ + Tree(xml_url); + }); + } +} + + +function completeInsertMenuItem(ret_obj) { + jQuery('#menu_zone_info').html(''); + Tree(xml_url); +} \ No newline at end of file diff --git a/modules/menu/tpl/menu_item_info.html b/modules/menu/tpl/menu_item_info.html index ef5a93cf9..871ca6003 100644 --- a/modules/menu/tpl/menu_item_info.html +++ b/modules/menu/tpl/menu_item_info.html @@ -25,7 +25,7 @@
        {$lang->menu_url}
        - {$lang->cmd_search_mid} + {$lang->cmd_search_mid}

        {$lang->about_menu_url}

        @@ -36,13 +36,7 @@

        {$lang->about_menu_open_window}

        - -
        {$lang->menu_expand}
        - - expand=="Y")-->checked="checked" /> -

        {$lang->about_menu_expand}

        - - +
        {$lang->menu_img_btn}

        {$lang->about_menu_img_btn}

        @@ -89,14 +83,8 @@ diff --git a/modules/menu/tpl/menu_management.html b/modules/menu/tpl/menu_management.html index 1b2b00554..dfa6de82e 100644 --- a/modules/menu/tpl/menu_management.html +++ b/modules/menu/tpl/menu_management.html @@ -2,7 +2,10 @@ - + + + + + + +
    -
    + + + \ No newline at end of file From aec315797748b16e2b73337e47d0b059daaf4e2b Mon Sep 17 00:00:00 2001 From: ngleader Date: Thu, 11 Dec 2008 02:39:26 +0000 Subject: [PATCH 058/135] =?UTF-8?q?=EA=B8=B0=EC=A1=B4=20tree=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=EB=B0=8F=20fix?= 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@5056 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/tree_menu.js | 639 ------------------------------ common/tpl/images/join.gif | Bin 69 -> 0 bytes common/tpl/images/joinbottom.gif | Bin 66 -> 0 bytes common/tpl/images/line.gif | Bin 66 -> 0 bytes common/tpl/images/minus.gif | Bin 86 -> 0 bytes common/tpl/images/minusbottom.gif | Bin 85 -> 0 bytes common/tpl/images/page.gif | Bin 582 -> 0 bytes common/tpl/images/plus.gif | Bin 89 -> 0 bytes common/tpl/images/plusbottom.gif | Bin 88 -> 0 bytes modules/menu/tpl/js/menu_admin.js | 9 + 10 files changed, 9 insertions(+), 639 deletions(-) delete mode 100644 common/js/tree_menu.js delete mode 100644 common/tpl/images/join.gif delete mode 100644 common/tpl/images/joinbottom.gif delete mode 100644 common/tpl/images/line.gif delete mode 100644 common/tpl/images/minus.gif delete mode 100644 common/tpl/images/minusbottom.gif delete mode 100644 common/tpl/images/page.gif delete mode 100644 common/tpl/images/plus.gif delete mode 100644 common/tpl/images/plusbottom.gif diff --git a/common/js/tree_menu.js b/common/js/tree_menu.js deleted file mode 100644 index 9156dff03..000000000 --- a/common/js/tree_menu.js +++ /dev/null @@ -1,639 +0,0 @@ -/** - * @file tree_menu.js - * @author zero (zero@nzeo.com) - * @brief xml파일을 읽어서 트리 메뉴를 그려줌 - * - * 일단 이것 저것 꽁수가 좀 들어간 것이긴 한데 속도나 기타 면에서 쓸만함...\n - * 다만 XE에좀 특화되어 있어서....\n - * GPL License 를 따릅니당~~~\n - * 언제나 그렇듯 필요하신 분은 가져가서 쓰세요.\n - * 더 좋게 개량하시면 공유해주세요~\n - **/ - -// 트리메뉴에서 사용될 아이콘의 위치 -var tree_menu_icon_path = "./common/tpl/images/"; - -// 아이콘을 미리 생성해 놓음 -var tree_folder_icon = new Image(); -tree_folder_icon.src = tree_menu_icon_path+"page.gif"; -var tree_open_folder_icon = new Image(); -tree_open_folder_icon.src = tree_menu_icon_path+"page.gif"; - -var tree_minus_icon = new Image(); -tree_minus_icon.src = tree_menu_icon_path+"minus.gif"; -var tree_minus_bottom_icon = new Image(); -tree_minus_bottom_icon.src = tree_menu_icon_path+"minusbottom.gif"; -var tree_plus_icon = new Image(); -tree_plus_icon.src = tree_menu_icon_path+"plus.gif"; -var tree_plus_bottom_icon = new Image(); -tree_plus_bottom_icon.src = tree_menu_icon_path+"plusbottom.gif"; - -// 폴더를 모두 열고/닫기 위한 변수 설정 -var tree_menu_folder_list = new Array(); - -// 노드의 정보를 가지고 있을 변수 -var node_info_list = new Array(); - -// menu_id별로 요청된 클릭시 실행 될 callback_func -var node_callback_func = new Array(); - -// menu_id별로 요청된 드래그시 실행될 callback_func -var node_move_callback_func = new Array(); - -// 트리메뉴의 정보를 담고 있는 xml파일을 읽고 drawTreeMenu()를 호출하는 함수 -function loadTreeMenu(url, menu_id, zone_id, title, index_url , callback_func, manual_select_node_srl, callback_move_func) { - // 일단 그릴 곳을 찾아서 사전 작업을 함 (그릴 곳이 없다면 아예 시도를 안함) - var zone = xGetElementById(zone_id); - if(typeof(zone)=="undefined") return; - - // 관리가 아닌 사용일경우는 menu_id를 변경 - if(typeof(callback_func)=='undefined') menu_id = 'display_'+menu_id; - - // 노드 정보들을 담을 변수 세팅 - node_info_list[menu_id] = new Array(); - - if(typeof(title)=='undefined') title = ''; - - // 사용자 정의 함수가 없다면 moveTreeMenu()라는 기본적인 동작을 하는 함수를 대입 - if(typeof(callback_func)=='undefined') { - callback_func = moveTreeMenu; - } - - if(typeof(callback_move_func)=='undefined') { - callback_move_func = null; - } - - // 한 페이지에 다수의 menu_id가 있을 수 있으므로 menu_id별로 함수를 저장 - node_callback_func[menu_id] = callback_func; - node_move_callback_func[menu_id] = callback_move_func; - - // 직접 선택시키려는 메뉴 인자값이 없으면 초기화 - if(typeof(manual_select_node_srl)=='undefined') manual_select_node_srl = ''; - - // xml_handler를 이용해서 직접 메뉴 xml파일(layout module에서 생성)을 읽음 - if(!url) return; - - var oXml = new xml_handler(); - oXml.reset(); - oXml.xml_path = url; - - if(!index_url) index_url= "#"; - - // menu_id, zone_id는 계속 달고 다녀야함 - var param = {"menu_id":menu_id, "zone_id":zone_id, "title":title, "index_url":index_url, "manual_select_node_srl":manual_select_node_srl} - - // 요청후 drawTreeMenu()함수를 호출 (xml_handler.js에서 request method를 직접 이용) - oXml.request(drawTreeMenu, oXml, null, null, null, param); -} - -// 트리메뉴 XML정보를 이용해서 정해진 zone에 출력 -var manual_select_node_srl = ''; -function drawTreeMenu(oXml, callback_func, resopnse_tags, null_func, param) { - // 그리기 위한 object를 찾아 놓음 - var menu_id = param.menu_id; - var zone_id = param.zone_id; - var title = param.title; - var index_url = param.index_url; - if(param.manual_select_node_srl) manual_select_node_srl = param.manual_select_node_srl; - var zone = xGetElementById(zone_id); - var html = ""; - - if(title) html = '
    '+title+'
    '; - - var xmlDoc = oXml.getResponseXml(); - if(!xmlDoc) { - xInnerHtml(zone, html); - return null; - } - - tree_menu_folder_list[menu_id] = new Array(); - - // node 태그에 해당하는 값들을 가져와서 html을 작성 - var node_list = xmlDoc.getElementsByTagName("node"); - if(node_list.length>0) { - var root = xmlDoc.getElementsByTagName("root")[0]; - var output = drawNode(root, menu_id); - html += output.html; - } - - // 출력하려는 zone이 없다면 load후에 출력하도록 함 - if(!zone) { - xAddEventListener(window, 'load', function() { drawTeeMenu(zone_id, menu_id, html); }); - - // 출력하려는 zone을 찾아졌다면 바로 출력 - } else { - xInnerHtml(zone, html); - if(manual_select_node_srl) manualSelectNode(menu_id, manual_select_node_srl); - } - - var waiting_obj = xGetElementById("waitingforserverresponse"); - if(waiting_obj) waiting_obj.style.visibility = "hidden"; - - return null; -} - -// 페이지 랜더링 중에 메뉴의 html이 완성되었을때 window.onload event 후에 그리기 재시도를 하게 될 함수 -function drawTeeMenu(zone_id, menu_id, html) { - xInnerHtml(zone_id, html); - if(manual_select_node_srl) manualSelectNode(menu_id, manual_select_node_srl); -} - -// root부터 시작해서 recursive하게 노드를 표혐 -function drawNode(parent_node, menu_id) { - var output = {html:"", expand:"N"} - - for (var i=0; i< parent_node.childNodes.length; i++) { - var html = ""; - - // nodeName이 node가 아니면 패스~ - var node = parent_node.childNodes.item(i); - if(node.nodeName!="node") continue; - - // node의 기본 변수들 체크 - var node_srl = node.getAttribute("node_srl"); - var text = node.getAttribute("text"); - var url = node.getAttribute("url"); - var expand = node.getAttribute("expand"); - - if(!text) continue; - - // 자식 노드가 있는지 확인 - var hasChild = false; - if(node.hasChildNodes()) hasChild = true; - - // nextSibling가 있는지 확인 - var hasNextSibling = false; - if(i==parent_node.childNodes.length-1) hasNextSibling = true; - - // 후에 사용하기 위해 node_info_list에 node_srl을 값으로 하여 node object 추가 - node_info_list[menu_id][node_srl] = node; - - // zone_id 값을 세팅 - var zone_id = "menu_"+menu_id+"_"+node_srl; - tree_menu_folder_list[menu_id][tree_menu_folder_list[menu_id].length] = zone_id; - - // url을 확인하여 현재의 url과 동일하다고 판단되면 manual_select_node_srl 에 값을 추가 (관리자페이지일 경우는 무시함) - if(node_callback_func[menu_id] == moveTreeMenu && url && current_url.getQuery('mid') == url) manual_select_node_srl = node_srl; - - // manual_select_node_srl이 node_srl과 같으면 펼침으로 처리 - if(manual_select_node_srl == node_srl) expand = "Y"; - - // 아이콘 설정 - var line_icon = null; - var folder_icon = null; - - // 자식 노드가 있을 경우 자식 노드의 html을 구해옴 - var child_output = null; - var child_html = ""; - if(hasChild) { - // 자식 노드의 zone id를 세팅 - var child_zone_id = zone_id+"_child"; - tree_menu_folder_list[menu_id][tree_menu_folder_list[menu_id].length] = child_zone_id; - - // html을 받아옴 - child_output = drawNode(node, menu_id); - var chtml = child_output.html; - var cexpand = child_output.expand; - if(cexpand == "Y") expand = "Y"; - - // 무조건 펼침이 아닐 경우 - if(expand!="Y") { - if(!hasNextSibling) child_html += ''; - else child_html += ''; - // 무조건 펼침일 경우 - } else { - if(!hasNextSibling) child_html += '
    '+chtml+'
    '; - else child_html += '
    '+chtml+'
    '; - } - } - - // 자식 노드가 있는지 확인하여 있으면 아이콘을 바꿈 - if(hasChild) { - // 무조건 펼침이 아닐 경우 - if(expand != "Y") { - if(!hasNextSibling) { - line_icon = "plus"; - folder_icon = "page"; - } else { - line_icon = "plusbottom"; - folder_icon = "page"; - } - // 무조건 펼침일 경우 - } else { - if(!hasNextSibling) { - line_icon = "minus"; - folder_icon = "page"; - } else { - line_icon = "minusbottom"; - folder_icon = "page"; - } - } - - // 자식 노드가 없을 경우 - } else { - if(hasNextSibling) { - line_icon = "joinbottom"; - folder_icon = "page"; - } else { - line_icon = "join"; - folder_icon = "page"; - } - } - - - // html 작성 - html += '
    '; - - if(hasChild) html+= ''; - else html+= ''; - - html += 'linefolder'; - - var chk_enable = xGetElementById(menu_id+"_enable_move"); - if(chk_enable) { - html += ''; - } else { - html += ''; - } - - html += text+''; - - html += child_html; - - html += '
    '; - - output.html += html; - - if(expand=="Y") output.expand = "Y"; - } - return output; -} - -// 관리자 모드일 경우 *_enable_move 의 값에 따라 메뉴 이동을 시키거나 정보를 보여주도록 변경 -function doNodeFunc(obj, menu_id, node_srl, zone_id) { - var chk_enable = xGetElementById(menu_id+"_enable_move"); - if(!chk_enable || chk_enable.checked!=true || !obj) { - selectNode(menu_id,node_srl,zone_id); - return; - } - - deSelectNode(); - tree_drag_enable(obj,tree_drag_start,tree_drag,tree_drag_end); -} - -// 수동으로 메뉴를 선택하도록 함 -function manualSelectNode(menu_id, node_srl) { - var zone_id = "menu_"+menu_id+"_"+node_srl; - selectNode(menu_id,node_srl,zone_id,false); - return; -} - -// 노드의 폴더 아이콘 클릭시 -function toggleFolder(zone_id) { - // 아이콘을 클릭한 대상을 찾아봄 - var child_zone = xGetElementById(zone_id+"_child"); - if(!child_zone) return; - - // 대상의 아이콘들 찾음 - var line_icon = xGetElementById(zone_id+'_line_icon'); - var folder_icon = xGetElementById(zone_id+'_folder_icon'); - - var height = 0; - - // 대상의 자식 노드들이 숨겨져 있다면 열고 아니면 닫기 - if(child_zone.style.display == "block") { - height = xHeight(child_zone)*-1; - child_zone.style.display = "none"; - if(line_icon.src.indexOf('bottom')>0) line_icon.src = tree_plus_bottom_icon.src; - else line_icon.src = tree_plus_icon.src; - folder_icon.src = tree_folder_icon.src; - } else { - if(line_icon.src.indexOf('bottom')>0) line_icon.src = tree_minus_bottom_icon.src; - else line_icon.src = tree_minus_icon.src; - folder_icon.src = tree_open_folder_icon.src; - child_zone.style.display = "block"; - height = xHeight(child_zone); - } - if(typeof(fixAdminLayoutFooter)=='function') fixAdminLayoutFooter( height ); -} - -// 노드의 글자 선택시 -var prev_selected_node = null; -function selectNode(menu_id, node_srl, zone_id, move_url) { - // 선택된 노드를 찾아봄 - var node_zone = xGetElementById(zone_id+'_node'); - if(!node_zone) return; - - // 이전에 선택된 노드가 있었다면 원래데로 돌림 - if(prev_selected_node) { - var prev_zone = xGetElementById(prev_selected_node.id); - if(prev_zone) { - prev_zone.style.backgroundColor = "#ffffff"; - prev_zone.style.fontWeight = "normal"; - prev_zone.style.color = "#000000"; - } - } - - // 선택된 노드의 글자를 변경 - prev_selected_node = node_zone; - node_zone.style.backgroundColor = "#0e078f"; - node_zone.style.fontWeight = "bold"; - node_zone.style.color = "#FFFFFF"; - - // 함수 실행 - if(typeof(move_url)=="undefined"||move_url==true) { - var func = node_callback_func[menu_id]; - func(menu_id, node_info_list[menu_id][node_srl]); - //toggleFolder(zone_id); - } -} - -// 선택된 노드의 표시를 없앰 -function deSelectNode() { - // 이전에 선택된 노드가 있었다면 원래데로 돌림 - if(!prev_selected_node) return; - prev_selected_node.style.backgroundColor = "#ffffff"; - prev_selected_node.style.fontWeight = "normal"; - prev_selected_node.style.color = "#000000"; -} - - -// 모두 닫기 -function closeAllTreeMenu(menu_id) { - for(var i in tree_menu_folder_list[menu_id]) { - var zone_id = tree_menu_folder_list[menu_id][i]; - var zone = xGetElementById(zone_id); - if(!zone) continue; - var child_zone = xGetElementById(zone_id+"_child"); - if(!child_zone) continue; - - child_zone.style.display = "block"; - toggleFolder(zone_id); - } -} - -// 모두 열기 -function openAllTreeMenu(menu_id) { - for(var i in tree_menu_folder_list[menu_id]) { - var zone_id = tree_menu_folder_list[menu_id][i]; - var zone = xGetElementById(zone_id); - if(!zone) continue; - var child_zone = xGetElementById(zone_id+"_child"); - if(!child_zone) continue; - - child_zone.style.display = "none"; - toggleFolder(zone_id); - } -} - -// 메뉴 클릭시 기본으로 동작할 함수 (사용자 임의 함수로 대체될 수 있음) -function moveTreeMenu(menu_id, node) { - // url과 open_window값을 구함 - var node_srl = node.getAttribute("node_srl"); - var url = node.getAttribute("url"); - var open_window = node.getAttribute("open_window"); - var hasChild = false; - if(node.hasChildNodes()) hasChild = true; - - // url이 없고 child가 있으면 해당 폴더 토글한다 - if(!url && hasChild) { - var zone_id = "menu_"+menu_id+"_"+node_srl; - toggleFolder(zone_id); - return; - } - - // url이 있으면 url을 분석한다 (Xe 특화된 부분. url이 http나 ftp등으로 시작하면 그냥 해당 url 열기) - if(url) { - // http, ftp등의 연결이 아닌 경우 XE용으로 처리 - if(url.indexOf('://')==-1) url = "./?"+url; - - // open_window에 따라서 처리 - if(open_window != "Y") location.href=url; - else { - var win = window.open(url); - win.focus(); - } - } -} - -// 메뉴 드래그 중이라는 상황을 간직할 변수 -var tree_drag_manager = {obj:null, isDrag:false} -var tree_tmp_object = new Array(); -var tree_disappear = 0; - -/** - * 메뉴 드래깅을 위한 함수들 - **/ -// 드래깅시 보여줄 임시 object를 생성하는 함수 -function tree_create_tmp_object(obj) { - var tmp_obj = tree_tmp_object[obj.id]; - if(tmp_obj) return tmp_obj; - - tmp_obj = xCreateElement('DIV'); - tmp_obj.id = obj.id + '_tmp'; - tmp_obj.style.display = 'none'; - tmp_obj.style.position = 'absolute'; - tmp_obj.style.backgroundColor = obj.style.backgroundColor; - tmp_obj.style.fontSize = obj.style.fontSize; - tmp_obj.style.fontFamlily = obj.style.fontFamlily; - tmp_obj.style.color = "#5277ff"; - tmp_obj.style.opacity = 1; - tmp_obj.style.filter = 'alpha(opacity=100)'; - - document.body.appendChild(tmp_obj); - tree_tmp_object[obj.id] = tmp_obj; - return tmp_obj; -} - -// 기생성된 임시 object를 찾아서 return, 없으면 만들어서 return -function tree_get_tmp_object(obj) { - var tmp_obj = tree_tmp_object[obj.id]; - if(!tmp_obj) tmp_obj = tree_create_tmp_object(obj); - return tmp_obj; -} - -// 메뉴에 마우스 클릭이 일어난 시점에 드래그를 위한 제일 첫 동작 (해당 object에 각종 함수나 상태변수 설정) -function tree_drag_enable(child_obj, funcDragStart, funcDrag, funcDragEnd) { - // 클릭이 일어난 메뉴의 상위 object를 찾음 - var obj = child_obj.parentNode.parentNode; - - // 상위 object에 드래그 가능하다는 상태와 각 드래그 관련 함수를 설정 - obj.draggable = true; - obj.drag_start = funcDragStart; - obj.drag = funcDrag; - obj.drag_end = funcDragEnd; - obj.target_id = null; - - // 드래그 가능하지 않다면 드래그 가능하도록 상태 지정하고 mousemove이벤트 등록 - if (!tree_drag_manager.isDrag) { - tree_drag_manager.isDrag = true; - xAddEventListener(document, 'mousemove', tree_drag_mouse_move, false); - } - - // mousedown이벤트 값을 지정 - xAddEventListener(obj, 'mousedown', tree_mouse_down, false); -} - -// 드래그를 시작할때 호출되는 함수 (이동되는 형태를 보여주기 위한 작업을 함) -function tree_drag_start(tobj, px, py) { - var obj = tree_get_tmp_object(tobj); - - xInnerHtml(obj, xInnerHtml(tobj)); - - tobj.source_color = tobj.style.color; - tobj.style.color = "#BBBBBB"; - - xLeft(obj, xPageX(tobj)); - xTop(obj, xPageY(tobj)); - xWidth(obj, xWidth(tobj)); - xHeight(obj, xHeight(tobj)); - - xDisplay(obj, 'block'); -} - -// 드래그 시작후 마우스를 이동할때 발생되는 이벤트에 의해 실행되는 함수 -function tree_drag(tobj, dx, dy) { - var obj = tree_get_tmp_object(tobj); - xLeft(obj, parseInt(xPageX(obj),10) + parseInt(dx,10)); - xTop(obj, parseInt(xPageY(obj),10) + parseInt(dy,10)); - - var menu_id = tobj.id.replace(/menu_/,''); - menu_id = menu_id.replace(/_([0-9]+)$/,''); - if(!menu_id) return; - - for(var node_srl in node_info_list[menu_id]) { - var zone_id = "menu_"+menu_id+"_"+node_srl; - var target_obj = xGetElementById(zone_id); - - var hh = parseInt(xHeight(target_obj),10); - var h = parseInt(parseInt(xHeight(target_obj),10)/2,10); - - var l = xPageX(target_obj); - var t = xPageY(target_obj); - var ll = parseInt(l,10) + parseInt(xWidth(target_obj),10); - var tt = parseInt(t,10) + hh; - - if( tobj != target_obj && tobj.xDPX >= l && tobj.xDPX <= ll) { - if(tobj.xDPY >= t && tobj.xDPY < tt-h) { - try { - target_obj.parentNode.insertBefore(tobj, target_obj); - tobj.target_id = target_obj.id; - } catch(e) { - } - } - } - } -} - -// 드래그 종료 (이동되는 object가 이동할 곳에 서서히 이동되는 것처럼 보이는 효과) -function tree_drag_end(tobj, px, py) { - var obj = tree_get_tmp_object(tobj); - tree_disappear = tree_disapear_object(obj, tobj); - tree_drag_disable(tobj.id); -} - -// 스르르 사라지게 함;; -function tree_disapear_object(obj, tobj) { - var it = 150; - var ib = 15; - - var x = parseInt(xPageX(obj),10); - var y = parseInt(xPageY(obj),10); - var ldt = (x - parseInt(xPageX(tobj),10)) / ib; - var tdt = (y - parseInt(xPageY(tobj),10)) / ib; - - return setInterval(function() { - if(ib < 1) { - clearInterval(tree_disappear); - xInnerHtml(tobj,xInnerHtml(obj)); - xInnerHtml(obj,''); - xDisplay(obj, 'none'); - return; - } - ib -= 5; - x-=ldt; - y-=tdt; - xLeft(obj, x); - xTop(obj, y); - }, it/ib); -} - -// 마우스다운 이벤트 발생시 호출됨 -function tree_mouse_down(e) { - var evt = new xEvent(e); - var obj = evt.target; - - while(obj && !obj.draggable) { - obj = xParent(obj, true); - } - - if(obj) { - xPreventDefault(e); - obj.xDPX = evt.pageX; - obj.xDPY = evt.pageY; - tree_drag_manager.obj = obj; - xAddEventListener(document, 'mouseup', tree_mouse_up, false); - if (obj.drag_start) obj.drag_start(obj, evt.pageX, evt.pageY); - } -} - -// 마우스 버튼을 놓았을때 동작될 함수 (각종 이벤트 해제 및 변수 설정 초기화) -function tree_mouse_up(e) { - if (tree_drag_manager.obj) { - xPreventDefault(e); - xRemoveEventListener(document, 'mouseup', tree_mouse_up, false); - - if (tree_drag_manager.obj.drag_end) { - var evt = new xEvent(e); - tree_drag_manager.obj.drag_end(tree_drag_manager.obj, evt.pageX, evt.pageY); - } - - tree_drag_manager.obj = null; - tree_drag_manager.isDrag = false; - } -} - -// 드래그할때의 object이동등을 담당 -function tree_drag_mouse_move(e) { - var evt = new xEvent(e); - - if (tree_drag_manager.obj) { - xPreventDefault(e); - - var obj = tree_drag_manager.obj; - var dx = evt.pageX - obj.xDPX; - var dy = evt.pageY - obj.xDPY; - - obj.xDPX = evt.pageX; - obj.xDPY = evt.pageY; - - if (obj.drag) { - obj.drag(obj, dx, dy); - } else { - xMoveTo(obj, xLeft(obj) + dx, xTop(obj) + dy); - } - } -} - -// 해당 object 에 더 이상 drag가 되지 않도록 설정 -function tree_drag_disable(id) { - if (!tree_drag_manager) return; - var obj = xGetElementById(id); - obj.draggable = false; - obj.drag_start = null; - obj.drag = null; - obj.drag_end = null; - obj.style.color = obj.source_color; - - xRemoveEventListener(obj, 'mousedown', tree_mouse_down, false); - - if(obj.id && obj.target_id && obj.id!=obj.target_id) { - var menu_id = obj.id.replace(/menu_/,''); - menu_id = menu_id.replace(/_([0-9]+)$/,''); - if(menu_id) { - var callback_move_func = node_move_callback_func[menu_id]; - if(callback_move_func) callback_move_func(menu_id, obj.id, obj.target_id); - } - } - obj.target_id = null; -} diff --git a/common/tpl/images/join.gif b/common/tpl/images/join.gif deleted file mode 100644 index 34dd47610a5d7c3580dedc342683559bf77abce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFv;}DH=KUEdfpt3ORshA Wx&LIzk};W<vKC_i diff --git a/common/tpl/images/joinbottom.gif b/common/tpl/images/joinbottom.gif deleted file mode 100644 index 48b81c80a9e25f6f29e2614aaa33bdf4a4d2881b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFiG~vH=KUEdfpt3ORshA Tx&LIzy5lkJS?4l0Mh0sDgH;v` diff --git a/common/tpl/images/line.gif b/common/tpl/images/line.gif deleted file mode 100644 index 1a259eea00c330eee85fb18aa64e2e232d5410b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFiG~vH=KUEdfpt3ORshA Txqp6J8?ND(@^elGBZD;ng_;%{ diff --git a/common/tpl/images/minus.gif b/common/tpl/images/minus.gif deleted file mode 100644 index 3d212a97ae0d8f83aa39836c5a85d442f8602553..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86 zcmZ?wbhEHb6k-r!n8?h~)YR0_(7?dJ@c;jR#h)yU3=GT+IzTQ^R)~RtNqvreafzu-gC3m_gnAtsyGG)YXIxA8@>Pl diff --git a/common/tpl/images/page.gif b/common/tpl/images/page.gif deleted file mode 100644 index 42d7318c5d928a2033cb42c72598a131ea6de64d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmZ?wbhEHb6k-r!c*el+`}gnn@8AFU{r~N^{|65qeDdVU-@kuvy#9aS{{Mgf|9}4Z z|M0{AU%q_(`SWMv)Wg{&OV2(3AD1{GbotxKt1eYFZ#Zz^|ILSQTV|i?T5|Ba{La?4kwX3c6}c&WZ`PygnpJ?rkDyZry# zum9<}^Zxw(U)#BD%KlHsjvf2=@89j`-!lsq`N~Rn2+cXw3F)`cNXo|{M zwn^yh*lA;L&u+56RaJ{?r=8t#bK_Gj;^%BG95Yu?zS_*U>z2K_g$4ipCbgRvpFHC> zdg-Vu`PTd?H;48ok#7ReIGiR-xW0J7!Dc}Y2`z_&_QUOboFWD+3JrbT68dFMM=k~^ HFjxZso}Jb2 diff --git a/common/tpl/images/plus.gif b/common/tpl/images/plus.gif deleted file mode 100644 index b2c997233b3f7b0fd56c4637c2c20aaf0d47bae7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89 zcmZ?wbhEHb6k-r!n8?J?(9poZ!0`Y7e;}#&lZBCifr&u}$Og&^0ohtp^czmUT|IBk qf~en0XVhiRX3S&EJ6Nf Date: Thu, 11 Dec 2008 02:49:19 +0000 Subject: [PATCH 059/135] bug fix git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5057 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- addons/planet_bookmark/planet_bookmark.js | 2 +- modules/board/tpl/js/board_admin.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/planet_bookmark/planet_bookmark.js b/addons/planet_bookmark/planet_bookmark.js index 74f53c360..b754ac18f 100644 --- a/addons/planet_bookmark/planet_bookmark.js +++ b/addons/planet_bookmark/planet_bookmark.js @@ -11,7 +11,7 @@ function planetShowBookmarkList(o){ } function planetBookmarkReload(){ - $('commentList').innerHTML = '

    Bookmark

    \n
    \n\n\n\n'; + $('commentList').innerHTML = '

    Bookmark

    \n
    \n\n\n\n'; planetGetBookmark(0); } diff --git a/modules/board/tpl/js/board_admin.js b/modules/board/tpl/js/board_admin.js index 46187f83b..f81dd522a 100644 --- a/modules/board/tpl/js/board_admin.js +++ b/modules/board/tpl/js/board_admin.js @@ -133,7 +133,7 @@ function nodeToggleAll(){ } function deleteNode(node){ - if(confirm(lang_confirm_delete){ + if(confirm(lang_confirm_delete)){ var params ={ "category_srl":node ,"parent_srl":0 From 9501b58b3719d04a10e117f290f47b82bab0b2a8 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 11 Dec 2008 05:01:20 +0000 Subject: [PATCH 060/135] =?UTF-8?q?#16991656=20=EB=B6=84=EB=A5=98=EB=A5=BC?= =?UTF-8?q?=201=EA=B8=80=EC=9E=90=EB=8F=84=20=EA=B0=80=EB=8A=A5=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= 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@5058 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/document/queries/insertCategory.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/document/queries/insertCategory.xml b/modules/document/queries/insertCategory.xml index c6271a4c3..4369add7c 100644 --- a/modules/document/queries/insertCategory.xml +++ b/modules/document/queries/insertCategory.xml @@ -5,7 +5,7 @@ - + From 828d85ec194f76ba79a5d71b6d45782bec30777d Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 11 Dec 2008 07:45:53 +0000 Subject: [PATCH 061/135] =?UTF-8?q?XE=20member=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=EC=8A=A4=ED=82=A8=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=95=84=20=EC=82=AC=EC=A7=84=EB=93=B1=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=9E=90=EB=A3=8C=EA=B0=80=20?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=95=88=EB=90=98=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= 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@5059 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/member/skins/default/modify_info.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/skins/default/modify_info.html b/modules/member/skins/default/modify_info.html index be96fae52..7ad899b4c 100644 --- a/modules/member/skins/default/modify_info.html +++ b/modules/member/skins/default/modify_info.html @@ -21,7 +21,7 @@ -
    profile_image == 'Y' || $member_config->image_name=='Y' || $member_config->image_mark=='Y')-->enctype="multipart/form-data"> + profile_image == 'Y' || $member_config->image_name=='Y' || $member_config->image_mark=='Y')-->enctype="multipart/form-data"> From 109b69b30197c36d30629f801698bbc8cffca15c Mon Sep 17 00:00:00 2001 From: ngleader Date: Thu, 11 Dec 2008 08:42:44 +0000 Subject: [PATCH 062/135] bug fix git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5060 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/counter/tpl/index.html | 4 ++-- modules/issuetracker/tpl/modify_milestone.html | 4 ++-- modules/issuetracker/tpl/project_setting.html | 4 ++-- modules/member/tpl/insert_member.html | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/counter/tpl/index.html b/modules/counter/tpl/index.html index 1f1a7d7d1..5d4d6cbf6 100644 --- a/modules/counter/tpl/index.html +++ b/modules/counter/tpl/index.html @@ -2,8 +2,8 @@ - - + + +

    {$lang->about_limit_date}

    From 3359338369c075403ef1d02de9c46b253cb31759 Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 12 Dec 2008 02:30:59 +0000 Subject: [PATCH 065/135] =?UTF-8?q?#17346937=20=EA=B2=BD=EB=A1=9C=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= 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@5063 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/issuetracker/issuetracker.item.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/issuetracker/issuetracker.item.php b/modules/issuetracker/issuetracker.item.php index 4656122de..3922d87cd 100644 --- a/modules/issuetracker/issuetracker.item.php +++ b/modules/issuetracker/issuetracker.item.php @@ -1,6 +1,6 @@ Date: Fri, 12 Dec 2008 13:00:17 +0000 Subject: [PATCH 066/135] bug fix git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5064 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/menu/tpl/menu_item_info.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/menu/tpl/menu_item_info.html b/modules/menu/tpl/menu_item_info.html index 871ca6003..62b67cd49 100644 --- a/modules/menu/tpl/menu_item_info.html +++ b/modules/menu/tpl/menu_item_info.html @@ -36,7 +36,13 @@

    {$lang->about_menu_open_window}

    - + +
    {$lang->menu_expand}
    + + expand=="Y")-->checked="checked" /> +

    {$lang->about_menu_expand}

    + +
    {$lang->menu_img_btn}

    {$lang->about_menu_img_btn}

    From 366f55bff929fdc6bdcd5eb489fb7d00f9fd4509 Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 13 Dec 2008 02:46:15 +0000 Subject: [PATCH 067/135] =?UTF-8?q?17538665=20*=20=EC=9E=98=EB=AA=BB?= =?UTF-8?q?=EB=90=9C=20=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95?= 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@5065 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/menu/tpl/menu_management.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/menu/tpl/menu_management.html b/modules/menu/tpl/menu_management.html index dfa6de82e..bea231afb 100644 --- a/modules/menu/tpl/menu_management.html +++ b/modules/menu/tpl/menu_management.html @@ -3,8 +3,8 @@ - - + + From 0ccb57de573ac9584656aeadf2288d670d800c35 Mon Sep 17 00:00:00 2001 From: bnu Date: Sat, 13 Dec 2008 02:57:25 +0000 Subject: [PATCH 068/135] =?UTF-8?q?17538665=20*=20=EC=9E=98=EB=AA=BB?= =?UTF-8?q?=EB=90=9C=20=EA=B2=BD=EB=A1=9C=20=EC=88=98=EC=A0=95?= 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@5066 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/board/tpl/category_list.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/board/tpl/category_list.html b/modules/board/tpl/category_list.html index 9412b3c64..49704a94a 100644 --- a/modules/board/tpl/category_list.html +++ b/modules/board/tpl/category_list.html @@ -3,8 +3,8 @@ - - + + diff --git a/modules/menu/tpl/js/menu_tree.js b/modules/menu/tpl/js/menu_tree.js index 3ad090f4f..0f736cc58 100644 --- a/modules/menu/tpl/js/menu_tree.js +++ b/modules/menu/tpl/js/menu_tree.js @@ -16,14 +16,19 @@ function Tree(url){ var node = jQuery('
  • '+text+'
  • '); // button - jQuery('').bind("click",function(e){addNode(node_srl,e);}).appendTo(node); + jQuery('').bind("click",function(e){ + addNode(node_srl,e); + return false; + }).appendTo(node); jQuery('').bind("click",function(e){ modifyNode(node_srl,e); + return false; }).appendTo(node); jQuery('').bind("click",function(e){ deleteNode(node_srl); + return false; }).appendTo(node); // insert parent child @@ -111,6 +116,7 @@ function nodeToggleAll(){ function modifyNode(node_srl,e){ jQuery('#menu_zone_info').html(''); + jQuery("#tree_"+node_srl+" > span").click(); var params ={ "parent_srl":0 ,"menu_item_srl":node_srl @@ -118,18 +124,22 @@ function modifyNode(node_srl,e){ jQuery.exec_json('menu.getMenuAdminTplInfo', params, function(data){ jQuery('#menu_zone_info').html(data.tpl); + jQuery('#menu_zone_info').html(data.tpl).css("margin-top",e.pageY-400); }); } function addNode(node_srl,e){ + jQuery('#menu_zone_info').html(''); + jQuery("#tree_"+node_srl+" > span").click(); + var params ={ "menu_item_srl":0 ,"parent_srl":node_srl }; jQuery.exec_json('menu.getMenuAdminTplInfo', params, function(data){ - jQuery('#menu_zone_info').html(data.tpl); + jQuery('#menu_zone_info').html(data.tpl).css("margin-top",e.pageY-400); }); } diff --git a/modules/menu/tpl/menu_item_info.html b/modules/menu/tpl/menu_item_info.html index 62b67cd49..ac2f9f496 100644 --- a/modules/menu/tpl/menu_item_info.html +++ b/modules/menu/tpl/menu_item_info.html @@ -5,6 +5,16 @@ + + + @@ -17,7 +27,7 @@ - + {@ $_row ++ } @@ -89,9 +99,25 @@
    + + + + + + +
    {$lang->parent_menu_name}
    {$lang->menu_name}
    {$val}
    - {$lang->cmd_close} - + + + + + +
    + \ No newline at end of file From 6fa6782fd0879d8e656155a70329b91db078c56b Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 15 Dec 2008 05:27:46 +0000 Subject: [PATCH 080/135] =?UTF-8?q?17523934=20*=20jQuery=20=EC=BD=94?= =?UTF-8?q?=EC=96=B4=20=EC=88=98=EC=A0=95=EC=9D=84=20=EB=90=98=EB=8F=8C?= =?UTF-8?q?=EB=A6=AC=EA=B3=A0,=20=EB=B3=84=EB=8F=84=EC=9D=98=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=EB=A1=9C=20=EC=9E=91=EC=84=B1,=20=EB=A1=9C=EB=93=9C?= =?UTF-8?q?=20=20=20*=20jQuery=201.2.6=20=EB=B2=84=EC=A0=84=EC=97=90?= =?UTF-8?q?=EB=A7=8C=20=EB=B0=98=EC=98=81=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=20=20*=20jQuery=201.3=20=EA=B5=90?= =?UTF-8?q?=EC=B2=B4=EC=8B=9C=20=EC=A0=9C=EA=B1=B0=20=EB=8C=80=EC=83=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@5078 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/context/Context.class.php | 1 + common/js/jquery-1.2.6.fix.js | 31 +++++++++++++++++++++++++++++++ common/js/jquery-1.2.6.js | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 common/js/jquery-1.2.6.fix.js diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 645e862ee..e47e7ec40 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -136,6 +136,7 @@ // 기본 JS/CSS 등록 $this->addJsFile("./common/js/jquery-1.2.6.js"); + $this->addJsFile("./common/js/jquery-1.2.6.fix.js"); // jQuery 1.2.6 bug fix $this->addJsFile("./common/js/x.js"); $this->addJsFile("./common/js/common.js"); $this->addJsFile("./common/js/xml_handler.js"); diff --git a/common/js/jquery-1.2.6.fix.js b/common/js/jquery-1.2.6.fix.js new file mode 100644 index 000000000..18dc77c0f --- /dev/null +++ b/common/js/jquery-1.2.6.fix.js @@ -0,0 +1,31 @@ + +/* + * jQuery 1.2.6 + * Opera 브라우저에서 $(window).height() / width() 값을 잘못 가져오는 문제 수정 + * jQuery 1.3에서 수정되었음 + * @link http://dev.jquery.com/changeset/5938 + */ +if(jQuery.fn.jquery == '1.2.6') { + jQuery.each([ "Height", "Width" ], function(i, name){ + var type = name.toLowerCase(); + + jQuery.fn[ type ] = function( size ) { + return this[0] == window ? + // Opera 브라우저에서 $(window).height() / width() 값을 잘못 가져오는 문제 수정 + jQuery.browser.opera && document.body.parentNode[ "client" + name ] || + + jQuery.browser.safari && window[ "inner" + name ] || + document.compatMode == "CSS1Compat" && document.documentElement[ "client" + name ] || document.body[ "client" + name ] : + + this[0] == document ? + Math.max( + Math.max(document.body["scroll" + name], document.documentElement["scroll" + name]), + Math.max(document.body["offset" + name], document.documentElement["offset" + name]) + ) : + + size == undefined ? + (this.length ? jQuery.css( this[0], type ) : null) : + this.css( type, size.constructor == String ? size : size + "px" ); + }; + }); +} diff --git a/common/js/jquery-1.2.6.js b/common/js/jquery-1.2.6.js index a5b8ba2fb..88e661eec 100644 --- a/common/js/jquery-1.2.6.js +++ b/common/js/jquery-1.2.6.js @@ -1339,7 +1339,7 @@ jQuery.each([ "Height", "Width" ], function(i, name){ // Get window width or height return this[0] == window ? // Opera reports document.body.client[Width/Height] properly in both quirks and standards - jQuery.browser.opera && document.body.parentNode[ "client" + name ] || + jQuery.browser.opera && document.body[ "client" + name ] || // Safari reports inner[Width/Height] just fine (Mozilla and Opera include scroll bar widths) jQuery.browser.safari && window[ "inner" + name ] || From 22deaa7c348b49626757f37bdd3df8138f634acf Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 15 Dec 2008 05:32:10 +0000 Subject: [PATCH 081/135] =?UTF-8?q?17523934=20*=20=ED=94=8C=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=EB=A1=9C=EB=93=9C=20=ED=95=A8=EC=88=98=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= 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@5079 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index c9753a20e..467b96a55 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -127,34 +127,6 @@ if(jQuery) jQuery.noConflict(); } } - /** - * jQuery 플러그인 로드 - * 시험중 - */ - $.getPlugin = function(name, options) { - $.loaded_plugin = new Array(); - var version = ''; - var defaults = { - version:'', - prefix:'jquery.', - path:'./common/js/jquery/' - }; - var options = $.extend(defaults, options || {}); - if(options.version) version = '-' + options.version; - - $.ajax({ - type: 'GET', - url : options.path + options.prefix + name + version + '.js', - cache : true, - async:false, - success : function() { - $.loaded_plugin[name] = {'version':options.version}; - }, - dataType : 'script' - }); - - } - }) (jQuery); /* jQuery(document).ready() */ From 1b51eb6c7d8d17b477e0f1d5c6a6517ef914a5a9 Mon Sep 17 00:00:00 2001 From: bnu Date: Mon, 15 Dec 2008 08:07:35 +0000 Subject: [PATCH 082/135] =?UTF-8?q?17523934=20*=20setFixedPopupSize()=20?= =?UTF-8?q?=EB=90=98=EB=8F=8C=EB=A6=BC?= 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@5080 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/common.js | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/common/js/common.js b/common/js/common.js index 467b96a55..53ef2c24c 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -447,9 +447,8 @@ function zbxe_folder_close(id) { /** * @brief 팝업의 경우 내용에 맞춰 현 윈도우의 크기를 조절해줌 + * 팝업의 내용에 맞게 크기를 늘리는 것은... 쉽게 되지는 않음.. ㅡ.ㅜ * popup_layout 에서 window.onload 시 자동 요청됨. - * @FIXME 크롬에서 resizeTo()후에 창 크기를 잘못 가져옴 - * resizeTo() 후에 alert()창 띄운 후에 체크하면 정상. **/ function setFixedPopupSize() { var bodyObj = jQuery('#popBody'); @@ -460,20 +459,28 @@ function setFixedPopupSize() { } } - var wrapWidth = jQuery(document).width(); - var wrapHeight = jQuery(document).height(); + var w = jQuery("#popup_content").width(); + var h = jQuery("#popup_content").height(); - window.resizeTo(wrapWidth, wrapHeight); + jQuery('div').each(function() { + var ww = jQuery(this).width(); + if(jQuery.inArray(this.id, ['waitingforserverresponse', 'fororiginalimagearea', 'fororiginalimageareabg']) == -1) { + if(ww > w) w = ww; + } + }); + + // 윈도우에서는 브라우저 상관없이 가로 픽셀이 조금 더 늘어나야 한다. + if(navigator.userAgent.toLowerCase().indexOf('windows') > 0) { + if(jQuery.browser.opera) w += 10; + else if(jQuery.browser.msie) w += 10; + else w += 6; + } + window.resizeTo(w, h); - var w1 = jQuery(window).width(); var h1 = jQuery(window).height(); + window.resizeBy(0, h-h1); - // 크롬의 문제로 W, H 값을 따로 설정 - // window.resizeBy(wrapWidth - w1, wrapHeight-h1); - window.resizeBy(wrapWidth - w1, 0); - window.resizeBy(0, wrapHeight-h1); - - window.scrollTo(0, 0); + window.scrollTo(0,0); } /** From 64ec631bbafb5307dd8532608eb5568ac0552ead Mon Sep 17 00:00:00 2001 From: ngleader Date: Mon, 15 Dec 2008 08:12:00 +0000 Subject: [PATCH 083/135] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=20=EB=B6=84?= =?UTF-8?q?=EB=A5=98=EC=97=90=20color=20=EC=86=8D=EC=84=B1=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20(color=20picker=EB=8A=94=20=EC=9D=BC=EA=B4=84=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EC=98=88=EC=A0=95)?= 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@5081 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/board/board.admin.controller.php | 2 +- modules/board/lang/en.lang.php | 3 ++ modules/board/lang/es.lang.php | 4 +++ modules/board/lang/jp.lang.php | 4 +++ modules/board/lang/ko.lang.php | 4 +++ modules/board/lang/ru.lang.php | 5 +++ modules/board/lang/zh-CN.lang.php | 2 ++ modules/board/lang/zh-TW.lang.php | 2 ++ modules/board/skins/xe_board/style.list.html | 5 ++- modules/board/tpl/category_info.html | 10 +++++- modules/board/tpl/category_list.html | 2 ++ modules/board/tpl/filter/insert_category.xml | 1 + modules/board/tpl/js/board_admin.js | 11 +++++- modules/document/document.class.php | 37 ++++++++++++-------- modules/document/document.controller.php | 7 ++-- modules/document/document.model.php | 2 +- modules/document/queries/insertCategory.xml | 1 + modules/document/queries/updateCategory.xml | 1 + 18 files changed, 80 insertions(+), 23 deletions(-) diff --git a/modules/board/board.admin.controller.php b/modules/board/board.admin.controller.php index ab47e5c65..7b2e71ab8 100644 --- a/modules/board/board.admin.controller.php +++ b/modules/board/board.admin.controller.php @@ -265,7 +265,7 @@ **/ function procBoardAdminInsertCategory($args = null) { // 입력할 변수 정리 - if(!$args) $args = Context::gets('module_srl','category_srl','parent_srl','title','expand','group_srls'); + if(!$args) $args = Context::gets('module_srl','category_srl','parent_srl','title','expand','group_srls','color'); if($args->expand !="Y") $args->expand = "N"; $args->group_srls = str_replace('|@|',',',$args->group_srls); diff --git a/modules/board/lang/en.lang.php b/modules/board/lang/en.lang.php index 20e7b59a1..f403c2fd4 100644 --- a/modules/board/lang/en.lang.php +++ b/modules/board/lang/en.lang.php @@ -16,6 +16,7 @@ // Item $lang->parent_category_title = 'Parent Category'; $lang->category_title = 'Category'; + $lang->category_color = '분류 폰트색깔'; $lang->expand = 'Expand'; $lang->category_group_srls = 'Accessable Group'; $lang->search_result = 'Search Result'; @@ -37,4 +38,6 @@ $lang->about_board = 'This module is for creating and managing boards.'; $lang->about_consultation = "Non-administrator members would see their own articles.\nNon-members would not be able to write articles when using consultation."; $lang->about_admin_mail = 'A mail will be sent when an article or comment is submitted.
    Multiple mails can be sent with commas(,).'; + + $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; ?> \ No newline at end of file diff --git a/modules/board/lang/es.lang.php b/modules/board/lang/es.lang.php index 9a73790be..62f03a068 100644 --- a/modules/board/lang/es.lang.php +++ b/modules/board/lang/es.lang.php @@ -18,6 +18,7 @@ // Artículos $lang->parent_category_title = 'Categoría Superior'; $lang->category_title = 'Nombre de la categoría'; + $lang->category_color = '분류 폰트색깔'; $lang->expand = 'Expandir'; $lang->category_group_srls = 'Limitar el grupo'; $lang->search_result = 'Resultado de la búsqueda'; @@ -39,4 +40,7 @@ $lang->about_board = 'Este módulo es para crear y manejar los tableros.'; $lang->about_consultation = "No administrador de los miembros que consideran que su propia artocles. \ NNon miembros no serían capaces de escribir artículos al utilizar la consulta."; $lang->about_admin_mail = '글이나 댓글이 등록될때 등록된 메일주소로 메일이 발송됩니다
    ,(콤마)로 연결시 다수의 메일주소로 발송할 수 있습니다.'; + + $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; + ?> \ No newline at end of file diff --git a/modules/board/lang/jp.lang.php b/modules/board/lang/jp.lang.php index 2615303d9..d611e7587 100644 --- a/modules/board/lang/jp.lang.php +++ b/modules/board/lang/jp.lang.php @@ -19,6 +19,8 @@ // 項目 $lang->parent_category_title = '上位カテゴリ名'; $lang->category_title = 'カテゴリ名'; + $lang->category_color = '분류 폰트색깔'; + $lang->expand = '拡張表示'; $lang->category_group_srls = 'グループ制限'; $lang->search_result = '検索結果'; @@ -40,4 +42,6 @@ $lang->about_board = '掲示板の生成、および管理する掲示板モジュールです。'; $lang->about_consultation = "相談機能とは、管理権限のない会員に本人の書き込みだけを表示する機能です。\n但し、相談機能を使用する際は、非会員の書き込みは自動的に禁止されます。"; $lang->about_admin_mail = '書き込みやコメントが掲載される時、登録メールアドレス宛にメールが送信されます。
    複数のメールアドレスへ送信する場合は「,」(半額コンマ)区切りで登録して下さい。'; + $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; + ?> \ No newline at end of file diff --git a/modules/board/lang/ko.lang.php b/modules/board/lang/ko.lang.php index 5ab71cde2..a416b50f6 100644 --- a/modules/board/lang/ko.lang.php +++ b/modules/board/lang/ko.lang.php @@ -16,6 +16,8 @@ // 항목 $lang->parent_category_title = '상위 카테고리명'; $lang->category_title = '분류명'; + $lang->category_color = '분류 폰트색깔'; + $lang->expand = '펼침'; $lang->category_group_srls = '그룹제한'; $lang->search_result = '검색결과'; @@ -37,4 +39,6 @@ $lang->about_board = '게시판을 생성하고 관리할 수 있는 게시판 모듈입니다.'; $lang->about_consultation = "상담 기능은 관리권한이 없는 회원은 자신이 쓴 글만 보이도록 하는 기능입니다\n단 상담기능 사용시 비회원 글쓰기는 자동으로 금지됩니다."; $lang->about_admin_mail = '글이나 댓글이 등록될때 등록된 메일주소로 메일이 발송됩니다
    ,(콤마)로 연결시 다수의 메일주소로 발송할 수 있습니다.'; + + $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; ?> \ No newline at end of file diff --git a/modules/board/lang/ru.lang.php b/modules/board/lang/ru.lang.php index b065c21a6..45f69f6b1 100644 --- a/modules/board/lang/ru.lang.php +++ b/modules/board/lang/ru.lang.php @@ -19,6 +19,8 @@ // Объект $lang->parent_category_title = 'Родительская категория'; $lang->category_title = 'Категория'; + $lang->category_color = '분류 폰트색깔'; + $lang->expand = 'Расширить'; $lang->category_group_srls = 'Доступные группы'; $lang->search_result = 'Результат поиска'; @@ -40,4 +42,7 @@ $lang->about_board = 'Этот модуль служит для создания и управления форумами.'; $lang->about_consultation = "상담 기능은 관리권한이 없는 회원은 자신이 쓴 글만 보이도록 하는 기능입니다\n단 상담기능 사용시 비회원 글쓰기는 자동으로 금지됩니다."; $lang->about_admin_mail = '글이나 댓글이 등록될때 등록된 메일주소로 메일이 발송됩니다
    ,(콤마)로 연결시 다수의 메일주소로 발송할 수 있습니다.'; + + $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; + ?> \ No newline at end of file diff --git a/modules/board/lang/zh-CN.lang.php b/modules/board/lang/zh-CN.lang.php index 72d99e46a..13d560ee6 100644 --- a/modules/board/lang/zh-CN.lang.php +++ b/modules/board/lang/zh-CN.lang.php @@ -19,6 +19,7 @@ // 项目 $lang->parent_category_title = '上级分类名'; $lang->category_title = '分类名'; + $lang->category_color = '분류 폰트색깔'; $lang->expand = '展开'; $lang->category_group_srls = '用户组'; $lang->search_result = '搜索结果'; @@ -41,4 +42,5 @@ $lang->about_board = "可生成及管理版面的模块。"; $lang->about_consultation = "咨询功能是指除有管理权限的会员以外,其他会员只能浏览自己发表的主题。\n使用咨询功能时系统将自动禁止非会员的发表主题权限。"; $lang->about_admin_mail = '有新的主题或评论时,将自动发电子邮件来通知管理员。
    多数电子邮件由逗号(,)来分隔。'; + $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; ?> \ No newline at end of file diff --git a/modules/board/lang/zh-TW.lang.php b/modules/board/lang/zh-TW.lang.php index 9f8013160..2592b8d47 100644 --- a/modules/board/lang/zh-TW.lang.php +++ b/modules/board/lang/zh-TW.lang.php @@ -16,6 +16,7 @@ // 項目 $lang->parent_category_title = '主分類'; $lang->category_title = '分類名稱'; + $lang->category_color = '분류 폰트색깔'; $lang->expand = '展開'; $lang->category_group_srls = '用戶組'; $lang->search_result = '搜尋結果'; @@ -37,4 +38,5 @@ $lang->about_board = '可建立及管理討論板的模組。'; $lang->about_consultation = "咨詢功能是指除有管理權限的會員以外,其他會員只能瀏覽自己發表的主題。\n使用咨詢功能時系統將自動禁止非會員的發表主題權限。"; $lang->about_admin_mail = '有新的主題或評論時,將自動發電子郵件來通知管理員。
    多數電子郵件由逗號(,)區隔。'; + $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; ?> \ No newline at end of file diff --git a/modules/board/skins/xe_board/style.list.html b/modules/board/skins/xe_board/style.list.html index aae31e6b4..0c303672c 100644 --- a/modules/board/skins/xe_board/style.list.html +++ b/modules/board/skins/xe_board/style.list.html @@ -7,7 +7,6 @@ {@ $_col_count++} {@ $_col_count++} {@ $_col_count++} - @@ -65,7 +64,7 @@ + + + + + -
    isCarted())-->checked="checked" /> - {$category_list[$document->get('category_srl')]->title} + get('category_srl')]->color)-->style="color:{$category_list[$document->get('category_srl')]->color};">{$category_list[$document->get('category_srl')]->title} {$document->getTitle($module_info->subject_cut_size)} @@ -95,7 +94,7 @@ isCarted())-->checked="checked" /> - {$category_list[$document->get('category_srl')]->title} + get('category_srl')]->color)-->style="color:{$category_list[$document->get('category_srl')]->color};">{$category_list[$document->get('category_srl')]->title} {$document->getTitle($module_info->subject_cut_size)} diff --git a/modules/board/tpl/category_info.html b/modules/board/tpl/category_info.html index acdcda3ea..5fc1e4341 100644 --- a/modules/board/tpl/category_info.html +++ b/modules/board/tpl/category_info.html @@ -15,6 +15,14 @@

    {$lang->about_category_title}

    {$lang->category_color}
    + +

    {$lang->about_category_color}

    +
    {$lang->category_group_srls}
    @@ -33,4 +41,4 @@
    + \ No newline at end of file diff --git a/modules/board/tpl/category_list.html b/modules/board/tpl/category_list.html index 49704a94a..17f566ef1 100644 --- a/modules/board/tpl/category_list.html +++ b/modules/board/tpl/category_list.html @@ -3,8 +3,10 @@ + + \ No newline at end of file + diff --git a/modules/menu/tpl/js/menu_tree.js b/modules/menu/tpl/js/menu_tree.js index 0f736cc58..0ee8aab2a 100644 --- a/modules/menu/tpl/js/menu_tree.js +++ b/modules/menu/tpl/js/menu_tree.js @@ -2,7 +2,7 @@ function Tree(url){ // clear tree; jQuery('#menu > ul > li > ul').remove(); - if(jQuery("ul.simpleTree > li > a").size() ==0)jQuery('').bind("click",function(e){addNode(0,e);}).appendTo("ul.simpleTree > li"); + if(jQuery("ul.simpleTree > li > a").size() ==0)jQuery('').bind("click",function(e){addNode(0,e);}).appendTo("ul.simpleTree > li"); //ajax get data and transeform ul il jQuery.get(url,function(data){ @@ -16,17 +16,17 @@ function Tree(url){ var node = jQuery('
  • '+text+'
  • '); // button - jQuery('').bind("click",function(e){ + jQuery('').bind("click",function(e){ addNode(node_srl,e); return false; }).appendTo(node); - jQuery('').bind("click",function(e){ + jQuery('').bind("click",function(e){ modifyNode(node_srl,e); return false; }).appendTo(node); - jQuery('').bind("click",function(e){ + jQuery('').bind("click",function(e){ deleteNode(node_srl); return false; }).appendTo(node); @@ -96,7 +96,7 @@ function Tree(url){ // image url replace -// jQuery("#menu ul.simpleTree img").attr("src",function(){ return jQuery(this).attr("src").replace("images/","./common/tpl/images/tree/");}); +// jQuery("#menu ul.simpleTree img").attr("src",function(){ return jQuery(this).attr("src").replace("images/","./common/js/plugins/ui.tree/images/");}); @@ -162,4 +162,4 @@ function deleteNode(node_srl){ function completeInsertMenuItem(ret_obj) { jQuery('#menu_zone_info').html(''); Tree(xml_url); -} \ No newline at end of file +} diff --git a/modules/menu/tpl/menu_management.html b/modules/menu/tpl/menu_management.html index bea231afb..b7dea35a8 100644 --- a/modules/menu/tpl/menu_management.html +++ b/modules/menu/tpl/menu_management.html @@ -3,11 +3,12 @@ - - + + + @@ -84,4 +85,4 @@ var max_menu_depth = 999; var xml_url = "{$menu_info->xml_file}"; var lang_confirm_delete = "{$lang->confirm_delete}"; Tree(xml_url); - \ No newline at end of file + From 1c5551ea1bf8742bf7d7964c04b1b19bb5dedcda Mon Sep 17 00:00:00 2001 From: guny Date: Mon, 15 Dec 2008 22:30:15 +0000 Subject: [PATCH 086/135] =?UTF-8?q?=EC=B6=94=EA=B0=80=EB=90=9C=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD=EC=A4=91=20=EB=88=84=EB=9D=BD=EB=90=9C=20=EC=BB=B4?= =?UTF-8?q?=EB=A7=88=20=EC=B6=94=EA=B0=80.?= 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@5084 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/file/lang/es.lang.php | 2 +- modules/file/lang/fr.lang.php | 2 +- modules/file/lang/jp.lang.php | 2 +- modules/file/lang/ru.lang.php | 2 +- modules/file/lang/zh-CN.lang.php | 8 ++++---- modules/file/lang/zh-TW.lang.php | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/file/lang/es.lang.php b/modules/file/lang/es.lang.php index a8c2b769e..30133cb32 100644 --- a/modules/file/lang/es.lang.php +++ b/modules/file/lang/es.lang.php @@ -38,7 +38,7 @@ 'download_count' => 'Descargados (Sobre)', 'user_id' => '아이디', 'user_name' => '이름', - 'nick_name' => '닉네임' + 'nick_name' => '닉네임', 'regdate' => 'La fecha registrada', 'ipaddress' => 'Dirección IP', ); diff --git a/modules/file/lang/fr.lang.php b/modules/file/lang/fr.lang.php index ce5b05243..f12dfba2f 100644 --- a/modules/file/lang/fr.lang.php +++ b/modules/file/lang/fr.lang.php @@ -38,7 +38,7 @@ 'download_count' => 'Téléchargés (surplus)', 'user_id' => '아이디', 'user_name' => '이름', - 'nick_name' => '닉네임' + 'nick_name' => '닉네임', 'regdate' => 'Enrgistré', 'ipaddress' => 'Adresse IP', ); diff --git a/modules/file/lang/jp.lang.php b/modules/file/lang/jp.lang.php index 8848f0b5c..02dfbce6c 100644 --- a/modules/file/lang/jp.lang.php +++ b/modules/file/lang/jp.lang.php @@ -38,7 +38,7 @@ 'download_count' => 'ダウンロード数(以上)', 'user_id' => '아이디', 'user_name' => '이름', - 'nick_name' => '닉네임' + 'nick_name' => '닉네임', 'regdate' => '登録日', 'ipaddress' => 'IPアドレス', ); diff --git a/modules/file/lang/ru.lang.php b/modules/file/lang/ru.lang.php index b726d4eb4..a4cfae678 100644 --- a/modules/file/lang/ru.lang.php +++ b/modules/file/lang/ru.lang.php @@ -38,7 +38,7 @@ 'download_count' => 'Скачано (Выше)', 'user_id' => '아이디', 'user_name' => '이름', - 'nick_name' => '닉네임' + 'nick_name' => '닉네임', 'regdate' => 'Дата', 'ipaddress' => 'IP-Адрес', ); diff --git a/modules/file/lang/zh-CN.lang.php b/modules/file/lang/zh-CN.lang.php index 4fca33d7e..e041a556c 100644 --- a/modules/file/lang/zh-CN.lang.php +++ b/modules/file/lang/zh-CN.lang.php @@ -34,11 +34,11 @@ $lang->file_search_target_list = array( 'filename' => '文件名', 'filesize' => '文件大小 (byte, 以上)', - 'filesize_mega' => '파일크기 (Mb, 이상)', + 'filesize_mega' => '文件大小 (Mb, 以上)', 'download_count' => '下载次数 (以上)', - 'user_id' => '아이디', - 'user_name' => '이름', - 'nick_name' => '닉네임' + 'user_id' => '用户名', + 'user_name' => '姓名', + 'nick_name' => '昵称', 'regdate' => '登录日期', 'ipaddress' => 'IP地址', ); diff --git a/modules/file/lang/zh-TW.lang.php b/modules/file/lang/zh-TW.lang.php index 2be748b8c..c4902c0d0 100644 --- a/modules/file/lang/zh-TW.lang.php +++ b/modules/file/lang/zh-TW.lang.php @@ -38,7 +38,7 @@ 'download_count' => '下載次數 (以上)', 'user_id' => '아이디', 'user_name' => '이름', - 'nick_name' => '닉네임' + 'nick_name' => '닉네임', 'regdate' => '登錄日期', 'ipaddress' => 'IP位址', ); From 5132d79ec2ab82c99dafa8d3295e672b0e258621 Mon Sep 17 00:00:00 2001 From: guny Date: Tue, 16 Dec 2008 02:19:47 +0000 Subject: [PATCH 087/135] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5085 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/file/lang/zh-CN.lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/file/lang/zh-CN.lang.php b/modules/file/lang/zh-CN.lang.php index e041a556c..0fb59e187 100644 --- a/modules/file/lang/zh-CN.lang.php +++ b/modules/file/lang/zh-CN.lang.php @@ -40,6 +40,6 @@ 'user_name' => '姓名', 'nick_name' => '昵称', 'regdate' => '登录日期', - 'ipaddress' => 'IP地址', + 'ipaddress' => 'IP地址' ); ?> From 45fa90455f13fe59ac6ebb8012a652522600c4de Mon Sep 17 00:00:00 2001 From: guny Date: Tue, 16 Dec 2008 02:24:49 +0000 Subject: [PATCH 088/135] git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5086 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/file/lang/zh-CN.lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/file/lang/zh-CN.lang.php b/modules/file/lang/zh-CN.lang.php index 0fb59e187..e041a556c 100644 --- a/modules/file/lang/zh-CN.lang.php +++ b/modules/file/lang/zh-CN.lang.php @@ -40,6 +40,6 @@ 'user_name' => '姓名', 'nick_name' => '昵称', 'regdate' => '登录日期', - 'ipaddress' => 'IP地址' + 'ipaddress' => 'IP地址', ); ?> From a97a50f2fde2506217e2210acbe8d08c38106e81 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 16 Dec 2008 04:50:06 +0000 Subject: [PATCH 089/135] =?UTF-8?q?issueTracker=20=EB=AA=A8=EB=93=88?= =?UTF-8?q?=EC=9D=98=20=EB=A7=88=EC=9D=BC=EC=8A=A4=ED=86=A4=EC=9D=84=20ind?= =?UTF-8?q?ex=EB=A1=9C=20=EB=B3=80=EA=B2=BD.=20=EB=A7=88=EC=9D=BC=EC=8A=A4?= =?UTF-8?q?=ED=86=A4=20=EB=AA=A9=EB=A1=9D=EC=9D=84=20=EB=8D=B0=EB=93=9C?= =?UTF-8?q?=EB=9D=BC=EC=9D=B8=20=EC=97=AD=EC=88=9C=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= 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@5087 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/issuetracker/conf/module.xml | 4 ++-- modules/issuetracker/issuetracker.view.php | 2 +- modules/issuetracker/lang/ko.lang.php | 2 +- modules/issuetracker/queries/getMilestones.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/issuetracker/conf/module.xml b/modules/issuetracker/conf/module.xml index 560fa1052..ef86b7cb7 100644 --- a/modules/issuetracker/conf/module.xml +++ b/modules/issuetracker/conf/module.xml @@ -45,9 +45,9 @@ - + + - diff --git a/modules/issuetracker/issuetracker.view.php b/modules/issuetracker/issuetracker.view.php index 378e650ac..29697f792 100644 --- a/modules/issuetracker/issuetracker.view.php +++ b/modules/issuetracker/issuetracker.view.php @@ -64,7 +64,7 @@ } Context::set('display_option', $display_option); - if(!Context::get('act')) Context::set('act','dispIssuetrackerViewIssue'); + if(!Context::get('act')) Context::set('act','dispIssuetrackerViewMilestone'); } function dispIssuetrackerTimeline() { diff --git a/modules/issuetracker/lang/ko.lang.php b/modules/issuetracker/lang/ko.lang.php index 14a62f92c..5b6fb0eef 100644 --- a/modules/issuetracker/lang/ko.lang.php +++ b/modules/issuetracker/lang/ko.lang.php @@ -74,10 +74,10 @@ $lang->about_component = '문제의 대상 구성요소를 설정합니다'; $lang->project_menus = array( + 'dispIssuetrackerViewMilestone' => '개발계획', 'dispIssuetrackerViewIssue' => '문제 열람', 'dispIssuetrackerNewIssue' => '문제 작성', 'dispIssuetrackerTimeline' => '타임 라인', - 'dispIssuetrackerViewMilestone' => '개발계획', 'dispIssuetrackerViewSource' => '코드 열람', 'dispIssuetrackerDownload' => '다운로드', 'dispIssuetrackerAdminProjectSetting' => '설정', diff --git a/modules/issuetracker/queries/getMilestones.xml b/modules/issuetracker/queries/getMilestones.xml index 4137e583b..1e197df81 100644 --- a/modules/issuetracker/queries/getMilestones.xml +++ b/modules/issuetracker/queries/getMilestones.xml @@ -10,6 +10,6 @@ - + From 5a247e01258c03a9f87191133c22143dada6958e Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 16 Dec 2008 04:52:47 +0000 Subject: [PATCH 090/135] =?UTF-8?q?=EC=97=90=EB=94=94=ED=84=B0=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=EC=8B=9C=20=EB=86=92=EC=9D=B4=20=EC=A1=B0=EC=A0=88=20?= =?UTF-8?q?=EC=98=B5=EC=85=98=EC=9D=84=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=98=EB=8B=A4=EA=B3=A0=20=ED=8C=90=EB=8B=A8=ED=95=98?= =?UTF-8?q?=EC=97=AC=20=EC=A0=9C=EA=B1=B0.=20=EB=AC=B4=EC=A1=B0=EA=B1=B4?= =?UTF-8?q?=20=EB=86=92=EC=9D=B4=20=EC=A1=B0=EC=A0=88=20=EC=98=B5=EC=85=98?= =?UTF-8?q?=EC=9D=B4=20=EA=B8=B0=EB=B3=B8=EC=9C=BC=EB=A1=9C=20=EB=82=98?= =?UTF-8?q?=ED=83=80=EB=82=A8?= 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@5088 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/editor.controller.php | 6 ------ modules/editor/editor.model.php | 16 ---------------- modules/editor/skins/default/editor.html | 2 -- modules/editor/skins/xquared/editor.html | 2 -- modules/editor/tpl/editor_module_config.html | 12 ------------ 5 files changed, 38 deletions(-) diff --git a/modules/editor/editor.controller.php b/modules/editor/editor.controller.php index 5dc1efd1a..4467791ca 100644 --- a/modules/editor/editor.controller.php +++ b/modules/editor/editor.controller.php @@ -156,14 +156,8 @@ $editor_config->comment_editor_height = (int)Context::get('comment_editor_height'); - $editor_config->enable_height_resizable = Context::get('enable_height_resizable'); - - $editor_config->enable_comment_height_resizable = Context::get('enable_comment_height_resizable'); - $editor_config->enable_autosave = Context::get('enable_autosave'); - if($editor_config->enable_height_resizable != 'Y') $editor_config->enable_height_resizable = 'N'; - if($editor_config->enable_comment_height_resizable != 'Y') $editor_config->enable_comment_height_resizable = 'N'; if($editor_config->enable_autosave != 'Y') $editor_config->enable_autosave = 'N'; $oModuleController = &getController('module'); diff --git a/modules/editor/editor.model.php b/modules/editor/editor.model.php index 9a480e85d..412e720a1 100644 --- a/modules/editor/editor.model.php +++ b/modules/editor/editor.model.php @@ -44,8 +44,6 @@ if(!$editor_config->editor_height) $editor_config->editor_height = 500; if(!$editor_config->comment_editor_height) $editor_config->comment_editor_height = 120; - if($editor_config->enable_height_resizable!='N') $editor_config->enable_height_resizable= "Y"; - if($editor_config->enable_comment_height_resizable!='Y') $editor_config->enable_comment_height_resizable= "N"; if($editor_config->enable_autosave!='N') $editor_config->enable_autosave = "Y"; if(!$editor_config->editor_skin) $editor_config->editor_skin = 'default'; @@ -83,10 +81,6 @@ if($option->disable_html) $html_mode = false; else $html_mode = true; - // 크기 조절 옵션 설정 - if(!$option->resizable) $resizable = false; - else $resizable = true; - // 높이 설정 if(!$option->height) $editor_height = 400; else $editor_height = $option->height; @@ -178,11 +172,6 @@ **/ Context::set('html_mode', $html_mode); - /** - * resizable 가능한지 변수 설정 - **/ - Context::set('enable_resizable', $resizable); - /** * 에디터 세로 크기 설정 **/ @@ -228,7 +217,6 @@ $config->enable_component_grant = $editor_config->enable_component_grant; $config->enable_html_grant = $editor_config->enable_html_grant; $config->editor_height = $editor_config->editor_height; - $config->enable_height_resizable = $editor_config->enable_height_resizable; $config->enable_autosave = $editor_config->enable_autosave; } else { $config->editor_skin = $editor_config->comment_editor_skin; @@ -238,7 +226,6 @@ $config->enable_component_grant = $editor_config->enable_comment_component_grant; $config->enable_html_grant = $editor_config->enable_comment_html_grant; $config->editor_height = $editor_config->comment_editor_height; - $config->enable_height_resizable = $editor_config->enable_comment_height_resizable; $config->enable_autosave = 'N'; } @@ -304,9 +291,6 @@ // 높이 설정 $option->height = $config->editor_height; - // 높이 조절 옵션 설정 - $option->resizable = $config->enable_height_resizable=='Y'?true:false; - // 자동 저장 유무 옵션 설정 $option->enable_autosave = $config->enable_autosave=='Y'?true:false; diff --git a/modules/editor/skins/default/editor.html b/modules/editor/skins/default/editor.html index a94713a68..a37d0181d 100644 --- a/modules/editor/skins/default/editor.html +++ b/modules/editor/skins/default/editor.html @@ -186,9 +186,7 @@
    -
    - diff --git a/modules/editor/skins/xquared/editor.html b/modules/editor/skins/xquared/editor.html index fc9ed7e43..89615bf8d 100644 --- a/modules/editor/skins/xquared/editor.html +++ b/modules/editor/skins/xquared/editor.html @@ -44,9 +44,7 @@ -
    - diff --git a/modules/editor/tpl/editor_module_config.html b/modules/editor/tpl/editor_module_config.html index 5df56ab43..df600602d 100644 --- a/modules/editor/tpl/editor_module_config.html +++ b/modules/editor/tpl/editor_module_config.html @@ -120,18 +120,6 @@

    {$lang->about_editor_height}

    - -
    {$lang->height_resizable}
    - - enable_height_resizable=='Y')-->checked="checked"/> - - - enable_comment_height_resizable=='Y')-->checked="checked"/> - - - -

    {$lang->about_editor_height_resizable}

    -
    {$lang->enable_autosave}
    enable_autosave=='Y')-->checked="checked"/> From 7f71e0b03f8f4ca7341ff47044da118678f4cf38 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 16 Dec 2008 05:29:51 +0000 Subject: [PATCH 091/135] =?UTF-8?q?=EC=9D=B4=EC=8A=88=ED=8A=B8=EB=9E=98?= =?UTF-8?q?=EC=BB=A4=20=EB=AA=A8=EB=93=88=EC=97=90=EC=84=9C=20=EB=B0=9C?= =?UTF-8?q?=EC=83=9D=EB=B2=84=EC=A0=84=EC=9D=84=20=EC=9E=85=EB=A0=A5?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EC=95=84=EB=8F=84=20=EB=90=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= 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@5089 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/issuetracker/issuetracker.model.php | 51 ++++++++++--------- modules/issuetracker/issuetracker.view.php | 14 ++--- .../skins/xe_issuetracker/filter/insert.xml | 2 +- .../xe_issuetracker/filter/insert_history.xml | 2 +- 4 files changed, 36 insertions(+), 33 deletions(-) diff --git a/modules/issuetracker/issuetracker.model.php b/modules/issuetracker/issuetracker.model.php index 0c5332ec6..0139f803f 100644 --- a/modules/issuetracker/issuetracker.model.php +++ b/modules/issuetracker/issuetracker.model.php @@ -46,7 +46,8 @@ return $GLOBALS['__IssueItem__'][$document_srl]; } - function getIssuesCount($target, $value, $status = null) { + function getIssuesCount($module_srl,$target, $value, $status = null) { + $args->module_srl = $module_srl; $args->{$target} = $value; if($status !== null) $args->status = $status; $output = executeQuery('issuetracker.getIssuesCount', $args); @@ -386,30 +387,32 @@ $solvedHistory = array(); $output2 = executeQueryArray("issuetracker.getHistories", $args); - foreach($output2->data as $history) - { - $hist = unserialize($history->history); - $h = array(); - if(!is_array($hist)) continue; - $res = ""; - $bFirst = true; - foreach($hist as $key => $val) { - if($bFirst) { $bFirst = false; } - else { $res .= "
    "; } - if($val[0]) $str = Context::getLang('history_format'); - else $str = Context::getLang('history_format_not_source'); - $str = str_replace('[source]', $val[0], $str); - $str = str_replace('[target]', $val[1], $str); - $str = str_replace('[key]', Context::getLang($key), $str); - $res .= $str; + if(count($output2->data)) { + foreach($output2->data as $history) + { + $hist = unserialize($history->history); + $h = array(); + if(!is_array($hist)) continue; + $res = ""; + $bFirst = true; + foreach($hist as $key => $val) { + if($bFirst) { $bFirst = false; } + else { $res .= "
    "; } + if($val[0]) $str = Context::getLang('history_format'); + else $str = Context::getLang('history_format_not_source'); + $str = str_replace('[source]', $val[0], $str); + $str = str_replace('[target]', $val[1], $str); + $str = str_replace('[key]', Context::getLang($key), $str); + $res .= $str; + } + $obj = null; + $obj->date = $history->regdate; + $obj->type = "i"; + $obj->message = $res; + $obj->target_srl = $history->target_srl; + $obj->author = $history->nick_name; + $output->data[] = $obj; } - $obj = null; - $obj->date = $history->regdate; - $obj->type = "i"; - $obj->message = $res; - $obj->target_srl = $history->target_srl; - $obj->author = $history->nick_name; - $output->data[] = $obj; } usort($output->data, _compare); diff --git a/modules/issuetracker/issuetracker.view.php b/modules/issuetracker/issuetracker.view.php index 29697f792..b6cad33d7 100644 --- a/modules/issuetracker/issuetracker.view.php +++ b/modules/issuetracker/issuetracker.view.php @@ -106,13 +106,13 @@ if($output) { foreach($output as $key => $milestone) { $issues = null; - $issues['new'] = $oIssuetrackerModel->getIssuesCount('milestone_srl', $milestone->milestone_srl,'new'); - $issues['reviewing'] = $oIssuetrackerModel->getIssuesCount('milestone_srl', $milestone->milestone_srl,'reviewing'); - $issues['assign'] = $oIssuetrackerModel->getIssuesCount('milestone_srl', $milestone->milestone_srl,'assign'); - $issues['resolve'] = $oIssuetrackerModel->getIssuesCount('milestone_srl', $milestone->milestone_srl,'resolve'); - $issues['reopen'] = $oIssuetrackerModel->getIssuesCount('milestone_srl', $milestone->milestone_srl,'reopen'); - $issues['postponed'] = $oIssuetrackerModel->getIssuesCount('milestone_srl', $milestone->milestone_srl,'postponed'); - $issues['invalid'] = $oIssuetrackerModel->getIssuesCount('milestone_srl', $milestone->milestone_srl,'invalid'); + $issues['new'] = $oIssuetrackerModel->getIssuesCount($this->module_srl,'milestone_srl', $milestone->milestone_srl,'new'); + $issues['reviewing'] = $oIssuetrackerModel->getIssuesCount($this->module_srl,'milestone_srl', $milestone->milestone_srl,'reviewing'); + $issues['assign'] = $oIssuetrackerModel->getIssuesCount($this->module_srl,'milestone_srl', $milestone->milestone_srl,'assign'); + $issues['resolve'] = $oIssuetrackerModel->getIssuesCount($this->module_srl,'milestone_srl', $milestone->milestone_srl,'resolve'); + $issues['reopen'] = $oIssuetrackerModel->getIssuesCount($this->module_srl,'milestone_srl', $milestone->milestone_srl,'reopen'); + $issues['postponed'] = $oIssuetrackerModel->getIssuesCount($this->module_srl,'milestone_srl', $milestone->milestone_srl,'postponed'); + $issues['invalid'] = $oIssuetrackerModel->getIssuesCount($this->module_srl,'milestone_srl', $milestone->milestone_srl,'invalid'); $issues['total'] = $issues['new']+$issues['assign']+$issues['resolve']+$issues['reopen']+$issues['reviewing']; $milestone->issues = $issues; $milestones[$milestone->milestone_srl] = $milestone; diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml b/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml index a5794c81a..40bedff97 100644 --- a/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml +++ b/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml @@ -4,7 +4,7 @@ - + diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml b/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml index d520c19da..cf2192f0b 100644 --- a/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml +++ b/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml @@ -4,7 +4,7 @@ - + From 91f8519086b8788b4987c7c68e91b209863f9563 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 16 Dec 2008 05:51:02 +0000 Subject: [PATCH 092/135] =?UTF-8?q?=EC=9D=B4=EC=8A=88=ED=8A=B8=EB=9E=98?= =?UTF-8?q?=EC=BB=A4=20=EB=AA=A8=EB=93=88=EC=9D=98=20=EA=B6=8C=ED=95=9C?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EB=A9=94=EB=89=B4=20=EB=B3=B4?= =?UTF-8?q?=EC=97=AC=EC=A3=BC=EA=B8=B0=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20=ED=8C=A8=ED=82=A4=EC=A7=80=EA=B0=80=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=EC=95=88=EB=90=98=EC=97=88=EC=9D=84=20?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=ED=95=98=EC=A7=80=20=EC=95=8A=EC=95=84=EB=8F=84=20?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= 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@5090 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/issuetracker/conf/module.xml | 18 ++++++++++++------ modules/issuetracker/issuetracker.view.php | 12 +++++++++++- .../skins/xe_issuetracker/filter/insert.xml | 2 +- .../xe_issuetracker/filter/insert_history.xml | 2 +- .../skins/xe_issuetracker/header.html | 2 ++ .../skins/xe_issuetracker/newissue.html | 2 ++ .../skins/xe_issuetracker/view_issue.html | 16 ++++++++++------ 7 files changed, 39 insertions(+), 15 deletions(-) diff --git a/modules/issuetracker/conf/module.xml b/modules/issuetracker/conf/module.xml index ef86b7cb7..02589d2c1 100644 --- a/modules/issuetracker/conf/module.xml +++ b/modules/issuetracker/conf/module.xml @@ -7,12 +7,6 @@ 專案 プロジェクトへアクセス - - 소스 열람 - 查看代码 - 檢視原始碼 - ソース閲覧 - 티켓 열람 查看计划 @@ -25,6 +19,18 @@ 建立專案 チケット発行 + + 타임라인 + Timeline + Timeline + Timeline + + + 소스 열람 + 查看代码 + 檢視原始碼 + ソース閲覧 + 개발자 开发者 diff --git a/modules/issuetracker/issuetracker.view.php b/modules/issuetracker/issuetracker.view.php index b6cad33d7..313b363f4 100644 --- a/modules/issuetracker/issuetracker.view.php +++ b/modules/issuetracker/issuetracker.view.php @@ -37,6 +37,16 @@ $this->setTemplatePath($template_path); // 권한에 따른 메뉴 제한 + if(!$this->grant->access) { + $this->grant->ticket_view = $this->grant->ticket_write = $this->grant->timeline = $this->grant->browser_source = $this->grant->download = 0; + unset($GLOBALS['lang']->project_menus); + } else { + if(!$this->grant->ticket_view) unset($GLOBALS['lang']->project_menus['dispIssuetrackerViewIssue']); + if(!$this->grant->ticket_write) unset($GLOBALS['lang']->project_menus['dispIssuetrackerNewIssue']); + if(!$this->grant->timeline) unset($GLOBALS['lang']->project_menus['dispIssuetrackerTimeline']); + if(!$this->grant->browser_source) unset($GLOBALS['lang']->project_menus['dispIssuetrackerViewSource']); + if(!$this->grant->download) unset($GLOBALS['lang']->project_menus['dispIssuetrackerDownload']); + } if(!$this->grant->manager) unset($GLOBALS['lang']->project_menus['dispIssuetrackerAdminProjectSetting']); // 템플릿에서 사용할 검색옵션 세팅 (검색옵션 key값은 미리 선언되어 있는데 이에 대한 언어별 변경을 함) @@ -68,7 +78,7 @@ } function dispIssuetrackerTimeline() { - if(!$this->grant->access) return $this->dispIssuetrackerMessage('msg_not_permitted'); + if(!$this->grant->timeline) return $this->dispIssuetrackerMessage('msg_not_permitted'); $oController = &getController('issuetracker'); $oController->syncChangeset($this->module_info); $oModel = &getModel('issuetracker'); diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml b/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml index 40bedff97..ae70604ac 100644 --- a/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml +++ b/modules/issuetracker/skins/xe_issuetracker/filter/insert.xml @@ -4,7 +4,7 @@ - + diff --git a/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml b/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml index cf2192f0b..8305ad795 100644 --- a/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml +++ b/modules/issuetracker/skins/xe_issuetracker/filter/insert_history.xml @@ -4,7 +4,7 @@ - + diff --git a/modules/issuetracker/skins/xe_issuetracker/header.html b/modules/issuetracker/skins/xe_issuetracker/header.html index 2c2ae4751..58a63737f 100644 --- a/modules/issuetracker/skins/xe_issuetracker/header.html +++ b/modules/issuetracker/skins/xe_issuetracker/header.html @@ -21,6 +21,7 @@ +
      @@ -31,3 +32,4 @@
    + diff --git a/modules/issuetracker/skins/xe_issuetracker/newissue.html b/modules/issuetracker/skins/xe_issuetracker/newissue.html index 9db35eca1..e64453482 100644 --- a/modules/issuetracker/skins/xe_issuetracker/newissue.html +++ b/modules/issuetracker/skins/xe_issuetracker/newissue.html @@ -87,6 +87,7 @@ + @@ -109,6 +110,7 @@ + diff --git a/modules/issuetracker/skins/xe_issuetracker/view_issue.html b/modules/issuetracker/skins/xe_issuetracker/view_issue.html index 57c9a5ba1..2fa2e9e32 100644 --- a/modules/issuetracker/skins/xe_issuetracker/view_issue.html +++ b/modules/issuetracker/skins/xe_issuetracker/view_issue.html @@ -22,12 +22,6 @@ {$lang->component} : {$oIssue->getComponentTitle()} - - {$lang->package} : - {$oIssue->getPackageTitle()} - {$lang->occured_version} : - {$oIssue->getReleaseTitle()} - {$lang->status} : {$oIssue->getStatus()} @@ -40,6 +34,14 @@ + + + {$lang->package} : + {$oIssue->getPackageTitle()} + {$lang->occured_version} : + {$oIssue->getReleaseTitle()} + + @@ -195,6 +197,7 @@ + @@ -216,6 +219,7 @@ + From 769ee33f57e08d268d531fe87052a398fadc9668 Mon Sep 17 00:00:00 2001 From: ngleader Date: Tue, 16 Dec 2008 06:21:06 +0000 Subject: [PATCH 093/135] =?UTF-8?q?1.=20=EA=B2=8C=EC=8B=9C=EB=AC=BC=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=97=90=EC=84=9C=20=EC=9D=B4=EB=8F=99=20?= =?UTF-8?q?=EB=B3=B5=EC=82=AC=EC=8B=9C=20=EB=B6=84=EC=9C=A0=EC=97=86?= =?UTF-8?q?=EC=9D=8C=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20bugfix=202.=20?= =?UTF-8?q?=EC=97=90=EB=94=94=ED=84=B0=20=EB=AA=A8=EB=93=9C=20=EC=BF=A0?= =?UTF-8?q?=ED=82=A4=20=EA=B8=B0=EC=96=B5=203.=20=EB=B9=84=EB=B0=80?= =?UTF-8?q?=EA=B8=80=20=EA=B8=B0=EB=8A=A5=20=EC=98=B5=EC=85=98=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20(=EA=B2=8C=EC=8B=9C=EB=AC=BC=20=EB=8C=93=EA=B8=80)?= =?UTF-8?q?=204.=20=EC=97=90=EB=94=94=ED=84=B0=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=EB=84=8C=ED=8A=B8=20=EC=82=AC=EC=9A=A9=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EC=9D=84=EB=95=8C=20=EB=8F=84=EC=9B=80=EB=A7=90=20?= =?UTF-8?q?=EC=97=86=EC=95=B0=205.=20=EC=B2=A8=EB=B6=80=EC=8B=9C=20?= =?UTF-8?q?=EC=9A=A9=EB=9F=89=20=EC=A0=9C=ED=95=9C=20=ED=91=9C=EA=B8=B0=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20fix?= 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@5091 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/board/board.admin.controller.php | 1 + modules/board/lang/en.lang.php | 2 + modules/board/lang/es.lang.php | 2 + modules/board/lang/fr.lang.php | 2 + modules/board/lang/jp.lang.php | 2 + modules/board/lang/ko.lang.php | 4 ++ modules/board/lang/ru.lang.php | 2 + modules/board/lang/zh-CN.lang.php | 2 + modules/board/lang/zh-TW.lang.php | 2 + .../board/skins/xe_board/comment_form.html | 3 +- modules/board/skins/xe_board/write_form.html | 2 + modules/board/tpl/board_insert.html | 38 ++++++++++++------- modules/board/tpl/filter/insert_board.xml | 1 + modules/document/document.model.php | 11 ++++-- modules/document/tpl/checked_list.html | 2 +- modules/editor/skins/default/editor.html | 6 +-- modules/editor/tpl/js/editor.js | 25 ++++++++++++ modules/editor/tpl/js/uploader.js | 1 + modules/file/file.model.php | 7 ++++ 19 files changed, 92 insertions(+), 23 deletions(-) diff --git a/modules/board/board.admin.controller.php b/modules/board/board.admin.controller.php index 7b2e71ab8..ed821c8fd 100644 --- a/modules/board/board.admin.controller.php +++ b/modules/board/board.admin.controller.php @@ -155,6 +155,7 @@ $extra_vars->search_list_count = $args->search_list_count; $extra_vars->except_notice = $args->except_notice!='Y'?'N':'Y'; $extra_vars->consultation = $args->consultation!='Y'?'N':'Y'; + $extra_vars->secret = $args->secret!='Y'?'N':'Y'; $extra_vars->admin_mail = $args->admin_mail; $extra_vars->page_count = $args->page_count; diff --git a/modules/board/lang/en.lang.php b/modules/board/lang/en.lang.php index f403c2fd4..28aad64c5 100644 --- a/modules/board/lang/en.lang.php +++ b/modules/board/lang/en.lang.php @@ -21,6 +21,7 @@ $lang->category_group_srls = 'Accessable Group'; $lang->search_result = 'Search Result'; $lang->consultation = 'Consultation'; + $lang->secret = '비밀글 기능'; $lang->admin_mail = "Administrator's Mail"; // words used in button @@ -37,6 +38,7 @@ $lang->about_except_notice = 'Notice articles will not be displayed on normal list.'; $lang->about_board = 'This module is for creating and managing boards.'; $lang->about_consultation = "Non-administrator members would see their own articles.\nNon-members would not be able to write articles when using consultation."; + $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; $lang->about_admin_mail = 'A mail will be sent when an article or comment is submitted.
    Multiple mails can be sent with commas(,).'; $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; diff --git a/modules/board/lang/es.lang.php b/modules/board/lang/es.lang.php index 62f03a068..92b14d299 100644 --- a/modules/board/lang/es.lang.php +++ b/modules/board/lang/es.lang.php @@ -23,6 +23,7 @@ $lang->category_group_srls = 'Limitar el grupo'; $lang->search_result = 'Resultado de la búsqueda'; $lang->consultation = '상담 기능'; + $lang->secret = '비밀글 기능'; $lang->admin_mail = '관리자 메일'; // Palabras utilizadas en los botones @@ -39,6 +40,7 @@ $lang->about_except_notice = 'Aviso de los artículos no se mostrará en la lista normal.'; $lang->about_board = 'Este módulo es para crear y manejar los tableros.'; $lang->about_consultation = "No administrador de los miembros que consideran que su propia artocles. \ NNon miembros no serían capaces de escribir artículos al utilizar la consulta."; + $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; $lang->about_admin_mail = '글이나 댓글이 등록될때 등록된 메일주소로 메일이 발송됩니다
    ,(콤마)로 연결시 다수의 메일주소로 발송할 수 있습니다.'; $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; diff --git a/modules/board/lang/fr.lang.php b/modules/board/lang/fr.lang.php index c7dac2ed6..ae1a26acf 100644 --- a/modules/board/lang/fr.lang.php +++ b/modules/board/lang/fr.lang.php @@ -20,6 +20,7 @@ $lang->category_group_srls = 'Groupe Accessible'; $lang->search_result = 'Résultat de la Recherche'; $lang->consultation = 'Consultation'; + $lang->secret = '비밀글 기능'; $lang->admin_mail = 'Mél de l\'administrateur'; // Mots utilisés en bouton @@ -36,5 +37,6 @@ $lang->about_except_notice = "Le titre de Notice dont l'article se représentera toujours en tête de la liste ne sera exposé sur la liste générale."; $lang->about_board = 'Ce module se sert à créer et à administrer des Panneaux d\'Affichage.'; $lang->about_consultation = "Les membres non-administratifs verront seulement les ariticles d\'eux-même.\nNon-membres ne pourraient pas écrire des articles quand la Consultation est appliqué."; + $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; $lang->about_admin_mail = 'Un message éléctronique sera envoyé à l\'adresse inscrite quand un article ou commentaire se soumet.
    On peut inscrire multiple adresses délimité par les virgules.'; ?> \ No newline at end of file diff --git a/modules/board/lang/jp.lang.php b/modules/board/lang/jp.lang.php index d611e7587..3d80b91c0 100644 --- a/modules/board/lang/jp.lang.php +++ b/modules/board/lang/jp.lang.php @@ -25,6 +25,7 @@ $lang->category_group_srls = 'グループ制限'; $lang->search_result = '検索結果'; $lang->consultation = '相談機能'; + $lang->secret = '비밀글 기능'; $lang->admin_mail = '管理者メールアドレス'; // ボタンに使用する用語 @@ -41,6 +42,7 @@ $lang->about_except_notice = "リストの上段に常に表示されるお知らせの書き込みを一般リストからお知らせの書き込みが表示されないようにします。"; $lang->about_board = '掲示板の生成、および管理する掲示板モジュールです。'; $lang->about_consultation = "相談機能とは、管理権限のない会員に本人の書き込みだけを表示する機能です。\n但し、相談機能を使用する際は、非会員の書き込みは自動的に禁止されます。"; + $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; $lang->about_admin_mail = '書き込みやコメントが掲載される時、登録メールアドレス宛にメールが送信されます。
    複数のメールアドレスへ送信する場合は「,」(半額コンマ)区切りで登録して下さい。'; $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; diff --git a/modules/board/lang/ko.lang.php b/modules/board/lang/ko.lang.php index a416b50f6..1a0a3050f 100644 --- a/modules/board/lang/ko.lang.php +++ b/modules/board/lang/ko.lang.php @@ -22,8 +22,11 @@ $lang->category_group_srls = '그룹제한'; $lang->search_result = '검색결과'; $lang->consultation = '상담 기능'; + $lang->secret = '비밀글 기능'; $lang->admin_mail = '관리자 메일'; + + // 버튼에 사용되는 언어 $lang->cmd_board_list = '게시판 목록'; $lang->cmd_module_config = '게시판 공통 설정'; @@ -38,6 +41,7 @@ $lang->about_except_notice = '목록 상단에 늘 나타나는 공지사항을 일반 목록에서 공지사항을 출력하지 않도록 합니다.'; $lang->about_board = '게시판을 생성하고 관리할 수 있는 게시판 모듈입니다.'; $lang->about_consultation = "상담 기능은 관리권한이 없는 회원은 자신이 쓴 글만 보이도록 하는 기능입니다\n단 상담기능 사용시 비회원 글쓰기는 자동으로 금지됩니다."; + $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; $lang->about_admin_mail = '글이나 댓글이 등록될때 등록된 메일주소로 메일이 발송됩니다
    ,(콤마)로 연결시 다수의 메일주소로 발송할 수 있습니다.'; $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; diff --git a/modules/board/lang/ru.lang.php b/modules/board/lang/ru.lang.php index 45f69f6b1..b30e73b34 100644 --- a/modules/board/lang/ru.lang.php +++ b/modules/board/lang/ru.lang.php @@ -25,6 +25,7 @@ $lang->category_group_srls = 'Доступные группы'; $lang->search_result = 'Результат поиска'; $lang->consultation = '상담 기능'; + $lang->secret = '비밀글 기능'; $lang->admin_mail = '관리자 메일'; // слова, использованные в кнопке @@ -41,6 +42,7 @@ $lang->about_except_notice = "목록 상단에 늘 나타나는 공지사항을 일반 목록에서 공지사항을 출력하지 않도록 합니다."; $lang->about_board = 'Этот модуль служит для создания и управления форумами.'; $lang->about_consultation = "상담 기능은 관리권한이 없는 회원은 자신이 쓴 글만 보이도록 하는 기능입니다\n단 상담기능 사용시 비회원 글쓰기는 자동으로 금지됩니다."; + $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; $lang->about_admin_mail = '글이나 댓글이 등록될때 등록된 메일주소로 메일이 발송됩니다
    ,(콤마)로 연결시 다수의 메일주소로 발송할 수 있습니다.'; $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; diff --git a/modules/board/lang/zh-CN.lang.php b/modules/board/lang/zh-CN.lang.php index 13d560ee6..b2630be06 100644 --- a/modules/board/lang/zh-CN.lang.php +++ b/modules/board/lang/zh-CN.lang.php @@ -24,6 +24,7 @@ $lang->category_group_srls = '用户组'; $lang->search_result = '搜索结果'; $lang->consultation = '咨询功能'; + $lang->secret = '비밀글 기능'; $lang->admin_mail = '管理员电子邮件'; // 按钮语言 @@ -41,6 +42,7 @@ $lang->about_except_notice = "设置公告目录项不再重复显示到普通目录当中。"; $lang->about_board = "可生成及管理版面的模块。"; $lang->about_consultation = "咨询功能是指除有管理权限的会员以外,其他会员只能浏览自己发表的主题。\n使用咨询功能时系统将自动禁止非会员的发表主题权限。"; + $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; $lang->about_admin_mail = '有新的主题或评论时,将自动发电子邮件来通知管理员。
    多数电子邮件由逗号(,)来分隔。'; $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; ?> \ No newline at end of file diff --git a/modules/board/lang/zh-TW.lang.php b/modules/board/lang/zh-TW.lang.php index 2592b8d47..5a0dc063d 100644 --- a/modules/board/lang/zh-TW.lang.php +++ b/modules/board/lang/zh-TW.lang.php @@ -21,6 +21,7 @@ $lang->category_group_srls = '用戶組'; $lang->search_result = '搜尋結果'; $lang->consultation = '咨詢功能'; + $lang->secret = '비밀글 기능'; $lang->admin_mail = '管理員電子郵件'; // 按鈕語言 @@ -37,6 +38,7 @@ $lang->about_except_notice = '設置公告列表項目,不再重複顯示到普通列表當中。'; $lang->about_board = '可建立及管理討論板的模組。'; $lang->about_consultation = "咨詢功能是指除有管理權限的會員以外,其他會員只能瀏覽自己發表的主題。\n使用咨詢功能時系統將自動禁止非會員的發表主題權限。"; + $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; $lang->about_admin_mail = '有新的主題或評論時,將自動發電子郵件來通知管理員。
    多數電子郵件由逗號(,)區隔。'; $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; ?> \ No newline at end of file diff --git a/modules/board/skins/xe_board/comment_form.html b/modules/board/skins/xe_board/comment_form.html index 4714b2da9..4edf41f4e 100644 --- a/modules/board/skins/xe_board/comment_form.html +++ b/modules/board/skins/xe_board/comment_form.html @@ -48,9 +48,10 @@ useNotify())-->checked="checked" id="notify_message" /> - + isSecret())-->checked="checked" id="is_secret" /> +
    {$oComment->getEditor()}
    diff --git a/modules/board/skins/xe_board/write_form.html b/modules/board/skins/xe_board/write_form.html index 595621104..c951736e5 100644 --- a/modules/board/skins/xe_board/write_form.html +++ b/modules/board/skins/xe_board/write_form.html @@ -61,10 +61,12 @@ +
    isSecret())-->checked="checked" id="is_secret" />
    +
    allowComment())-->checked="checked" id="allow_comment" /> diff --git a/modules/board/tpl/board_insert.html b/modules/board/tpl/board_insert.html index 272b90404..2455b8b41 100644 --- a/modules/board/tpl/board_insert.html +++ b/modules/board/tpl/board_insert.html @@ -20,7 +20,7 @@ - +
    {$lang->is_default}
    is_default=='Y')-->checked="checked" id="fld_for_default" class="checkbox" /> @@ -43,7 +43,7 @@ - +
    {$lang->browser_title}
    @@ -64,7 +64,7 @@

    {$lang->about_layout}

    - +
    {$lang->skin}
    @@ -102,7 +102,7 @@ - +
    {$lang->list_count}
    @@ -116,7 +116,7 @@

    {$lang->about_search_list_count}

    - +
    {$lang->page_count}
    @@ -130,13 +130,20 @@

    {$lang->about_except_notice}

    - +
    {$lang->consultation}
    consultation=='Y')-->checked="checked" />

    {nl2br($lang->about_consultation)}

    + +
    {$lang->secret}
    + + secret=='Y')-->checked="checked" /> +

    {nl2br($lang->about_secret)}

    + +
    {$lang->admin_mail}
    @@ -144,7 +151,7 @@

    {$lang->about_admin_mail}

    - +
    {$lang->description}
    @@ -158,7 +165,7 @@

    {$lang->about_header_text}

    - +
    {$lang->footer_text}
    @@ -172,7 +179,7 @@

    {$lang->about_admin_id}

    - + @@ -198,7 +205,7 @@ - + @@ -214,7 +221,7 @@ - + @@ -222,7 +229,7 @@ - + @@ -230,7 +237,7 @@ - +
    {$lang->extra_vars} {$i}
    {$lang->column_name}
    {$lang->is_required}
    checked="checked" />
    {$lang->default_value}

    {$lang->about_extra_vars_default_value}

    {$lang->description}
    {$lang->cmd_search}
    checked="checked" />
    @@ -239,3 +246,6 @@
    + \ No newline at end of file diff --git a/modules/board/tpl/filter/insert_board.xml b/modules/board/tpl/filter/insert_board.xml index 71d5a806a..62f97dabf 100644 --- a/modules/board/tpl/filter/insert_board.xml +++ b/modules/board/tpl/filter/insert_board.xml @@ -20,6 +20,7 @@ + diff --git a/modules/document/document.model.php b/modules/document/document.model.php index 16182dc18..a9c58f536 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -655,11 +655,14 @@ function getDocumentCategories() { $module_srl = Context::get('module_srl'); $categories= $this->getCategoryList($module_srl); - if(!$categories) return; + $lang = Context::get('lang'); - $output = ''; - foreach($categories as $category_srl => $category) { - $output .= sprintf("%d,%d,%s\n",$category_srl, $category->depth,$category->title); + // 분류 없음 추가 + $output = "0,0,{$lang->none_category}\n"; + if($categories){ + foreach($categories as $category_srl => $category) { + $output .= sprintf("%d,%d,%s\n",$category_srl, $category->depth,$category->title); + } } $this->add('categories', $output); } diff --git a/modules/document/tpl/checked_list.html b/modules/document/tpl/checked_list.html index 84f60cba7..c17c67b1f 100644 --- a/modules/document/tpl/checked_list.html +++ b/modules/document/tpl/checked_list.html @@ -14,7 +14,7 @@
    - {$lang->cmd_select} + {$lang->cmd_select}
    • {$document->getNickName()}
      {$document->getTitle()}
    • diff --git a/modules/editor/skins/default/editor.html b/modules/editor/skins/default/editor.html index a37d0181d..46d18c900 100644 --- a/modules/editor/skins/default/editor.html +++ b/modules/editor/skins/default/editor.html @@ -145,6 +145,8 @@ + +
      @@ -167,7 +169,7 @@
    - + @@ -236,8 +238,6 @@ editorStart("{$editor_sequence}", "{$editor_primary_key_name}", "{$editor_content_key_name}", '{$editor_height}' , '#000'); - - //]]> diff --git a/modules/editor/tpl/js/editor.js b/modules/editor/tpl/js/editor.js index 1d1bcb886..4351192e5 100755 --- a/modules/editor/tpl/js/editor.js +++ b/modules/editor/tpl/js/editor.js @@ -174,6 +174,24 @@ function editorStart(editor_sequence, primary_key, content_key, editor_height, f // 자동저장 필드가 있다면 자동 저장 기능 활성화 if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence); + + + // 좋지는 않으나;; 스타일 변형을 막기 위해 start 할때 html이면 바꿔주자 + if (xGetCookie('editor_mode') == 'html'){ + var iframe_obj = editorGetIFrame(editor_sequence); + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; + textarea_obj = editorGetTextArea(editor_sequence); + textarea_obj.value = content; + xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); + xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); + editorMode[editor_sequence] = 'html'; + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; + xGetElementById('use_rich_'+editor_sequence).className = ''; + xGetElementById('preview_html_'+editor_sequence).className = ''; + xGetElementById('use_html_'+editor_sequence).className = 'active'; + } + } } @@ -401,6 +419,13 @@ function editorChangeHeader(obj,srl) { **/ function editorChangeMode(mode, editor_sequence) { + + if(mode == 'html' || mode ==''){ + var expire = new Date(); + expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); + xSetCookie('editor_mode', mode, expire); + } + var iframe_obj = editorGetIFrame(editor_sequence); if(!iframe_obj) return; diff --git a/modules/editor/tpl/js/uploader.js b/modules/editor/tpl/js/uploader.js index 05fd9157c..70dbadf06 100755 --- a/modules/editor/tpl/js/uploader.js +++ b/modules/editor/tpl/js/uploader.js @@ -221,6 +221,7 @@ function reloadFileList(settings) { var params = new Array(); params["file_list_area_id"] = settings["fileListAreaID"]; params["editor_sequence"] = settings["editorSequence"]; + params["mid"] = current_mid; var response_tags = new Array("error","message","files","upload_status","upload_target_srl","editor_sequence"); exec_xml("file","getFileList", params, completeReloadFileList, response_tags, settings); } diff --git a/modules/file/file.model.php b/modules/file/file.model.php index fbf60f1c6..a9404646c 100644 --- a/modules/file/file.model.php +++ b/modules/file/file.model.php @@ -17,6 +17,12 @@ * @brief 특정 문서에 속한 첨부파일 목록을 return **/ function getFileList() { + + $mid = Context::get("mid"); + $oModuleModel = &getModel('module'); + $config = $oModuleModel->getModuleInfoByMid($mid); + Context::set("module_srl",$config->module_srl); + $editor_sequence = Context::get("editor_sequence"); $upload_target_srl = $_SESSION['upload_info'][$editor_sequence]->upload_target_srl; if($upload_target_srl) { @@ -89,6 +95,7 @@ if(!$config->allowed_attach_size) $config->allowed_attach_size = '3'; if(!$config->allowed_filetypes) $config->allowed_filetypes = '*.*'; if(!$config->download_grant) $config->download_grant = array(); + return $config; } From 0201823fb05c76c5ca76488761654c98d3f5713f Mon Sep 17 00:00:00 2001 From: supershop Date: Tue, 16 Dec 2008 06:51:11 +0000 Subject: [PATCH 094/135] =?UTF-8?q?=EC=98=81=EC=96=B4=20-=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B2=88=EC=97=AD?= 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@5092 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/board/lang/en.lang.php | 8 ++++---- modules/file/lang/en.lang.php | 8 ++++---- modules/module/lang/en.lang.php | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/modules/board/lang/en.lang.php b/modules/board/lang/en.lang.php index 28aad64c5..f870bc280 100644 --- a/modules/board/lang/en.lang.php +++ b/modules/board/lang/en.lang.php @@ -16,12 +16,12 @@ // Item $lang->parent_category_title = 'Parent Category'; $lang->category_title = 'Category'; - $lang->category_color = '분류 폰트색깔'; + $lang->category_color = 'Category Font Color'; $lang->expand = 'Expand'; $lang->category_group_srls = 'Accessable Group'; $lang->search_result = 'Search Result'; $lang->consultation = 'Consultation'; - $lang->secret = '비밀글 기능'; + $lang->secret = 'Secret'; $lang->admin_mail = "Administrator's Mail"; // words used in button @@ -38,8 +38,8 @@ $lang->about_except_notice = 'Notice articles will not be displayed on normal list.'; $lang->about_board = 'This module is for creating and managing boards.'; $lang->about_consultation = "Non-administrator members would see their own articles.\nNon-members would not be able to write articles when using consultation."; - $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; + $lang->about_secret = 'Users will be able to write secret articles or comments.'; $lang->about_admin_mail = 'A mail will be sent when an article or comment is submitted.
    Multiple mails can be sent with commas(,).'; - $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; + $lang->about_category_color = 'You can set font color of category.'; ?> \ No newline at end of file diff --git a/modules/file/lang/en.lang.php b/modules/file/lang/en.lang.php index a21eb2185..65054cf0e 100644 --- a/modules/file/lang/en.lang.php +++ b/modules/file/lang/en.lang.php @@ -35,12 +35,12 @@ $lang->file_search_target_list = array( 'filename' => 'File Name', 'filesize' => 'File Size (byte, over)', - 'filesize_mega' => '파일크기 (Mb, 이상)', + 'filesize_mega' => 'File Size (mbyte, over)', 'download_count' => 'Downloads (over)', 'regdate' => 'Registered Date', - 'user_id' => '아이디', - 'user_name' => '이름', - 'nick_name' => '닉네임', + 'user_id' => 'User UD', + 'user_name' => 'User Name', + 'nick_name' => 'Nickname', 'ipaddress' => 'IP Address', ); ?> diff --git a/modules/module/lang/en.lang.php b/modules/module/lang/en.lang.php index 21002ea1f..145475feb 100644 --- a/modules/module/lang/en.lang.php +++ b/modules/module/lang/en.lang.php @@ -45,6 +45,7 @@ $lang->msg_no_checked_document = 'No checked articles exist.'; $lang->msg_move_failed = 'Failed to move'; $lang->msg_cannot_delete_for_child = 'Cannot delete a category having child categories.'; + $lang->msg_limit_mid ="Only alphabets+[alphabets+numbers+_] can be used as module name."; $lang->about_browser_title = "It will be shown in the browser title. It will be also used in a RSS/Trackback."; $lang->about_mid = "The module name will be used like http://address/?mid=ModuleName.\n(only english alphabet + [english alphabet ,numbers, and underscore(_)] are allowed)"; From b6207ff319790ca96122d667d6da208e51c6055b Mon Sep 17 00:00:00 2001 From: royallin Date: Tue, 16 Dec 2008 06:54:36 +0000 Subject: [PATCH 095/135] Modified and Translation for zh-TW git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5093 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/board/lang/zh-TW.lang.php | 8 ++++---- modules/comment/lang/zh-TW.lang.php | 2 +- modules/file/lang/zh-TW.lang.php | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/board/lang/zh-TW.lang.php b/modules/board/lang/zh-TW.lang.php index 5a0dc063d..863ed9186 100644 --- a/modules/board/lang/zh-TW.lang.php +++ b/modules/board/lang/zh-TW.lang.php @@ -16,12 +16,12 @@ // 項目 $lang->parent_category_title = '主分類'; $lang->category_title = '分類名稱'; - $lang->category_color = '분류 폰트색깔'; + $lang->category_color = '分類顏色'; $lang->expand = '展開'; $lang->category_group_srls = '用戶組'; $lang->search_result = '搜尋結果'; $lang->consultation = '咨詢功能'; - $lang->secret = '비밀글 기능'; + $lang->secret = '秘密'; $lang->admin_mail = '管理員電子郵件'; // 按鈕語言 @@ -38,7 +38,7 @@ $lang->about_except_notice = '設置公告列表項目,不再重複顯示到普通列表當中。'; $lang->about_board = '可建立及管理討論板的模組。'; $lang->about_consultation = "咨詢功能是指除有管理權限的會員以外,其他會員只能瀏覽自己發表的主題。\n使用咨詢功能時系統將自動禁止非會員的發表主題權限。"; - $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; + $lang->about_secret = '可用於討論板或回覆時使用。'; $lang->about_admin_mail = '有新的主題或評論時,將自動發電子郵件來通知管理員。
    多數電子郵件由逗號(,)區隔。'; - $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; + $lang->about_category_color = '設定分類顏色。'; ?> \ No newline at end of file diff --git a/modules/comment/lang/zh-TW.lang.php b/modules/comment/lang/zh-TW.lang.php index af67fe367..56dd113c7 100644 --- a/modules/comment/lang/zh-TW.lang.php +++ b/modules/comment/lang/zh-TW.lang.php @@ -5,7 +5,7 @@ * @brief 評論(comment)模組語言 **/ - $lang->cmd_comment_do = '將把此評論..'; + $lang->cmd_comment_do = '將此評論..'; $lang->comment_list = '評論列表'; $lang->cmd_toggle_checked_comment = '反選'; diff --git a/modules/file/lang/zh-TW.lang.php b/modules/file/lang/zh-TW.lang.php index c4902c0d0..eb7d95979 100644 --- a/modules/file/lang/zh-TW.lang.php +++ b/modules/file/lang/zh-TW.lang.php @@ -20,7 +20,7 @@ $lang->about_allowed_filesize = '最大單一上傳檔案大小(管理員不受此限制)。'; $lang->about_allowed_attach_size = '每個主題最大上傳檔案大小(管理員不受此限制)。'; - $lang->about_allowed_filetypes = '只允許上傳指定的檔案類型。 可以用"*.副檔名"來指定或用 ";"來 區分多個副檔名
    例) *.* or *.jpg;*.gif;
    (管理員不受此限制)'; + $lang->about_allowed_filetypes = '設定允許上傳的檔案類型。 可以用"*.副檔名"來指定或用 ";"來 區分多個副檔名
    例) *.* or *.jpg;*.gif;
    (管理員不受此限制)'; $lang->cmd_delete_checked_file = '刪除所選項目'; $lang->cmd_move_to_document = '檢視原始主題'; @@ -29,16 +29,16 @@ $lang->msg_not_permitted_download = '您不具備下載的權限。'; $lang->msg_cart_is_null = ' 請選擇要刪除的檔案。'; $lang->msg_checked_file_is_deleted = '已刪除%d個檔案!'; - $lang->msg_exceeds_limit_size = '已超過系統指定的上傳檔案大小!'; + $lang->msg_exceeds_limit_size = '已超過系統指定的檔案大小!'; $lang->file_search_target_list = array( 'filename' => '檔案名稱', 'filesize' => '檔案大小 (byte, 以上)', - 'filesize_mega' => '파일크기 (Mb, 이상)', + 'filesize_mega' => '檔案大小 (Mb, 以上)', 'download_count' => '下載次數 (以上)', - 'user_id' => '아이디', - 'user_name' => '이름', - 'nick_name' => '닉네임', + 'user_id' => '帳號', + 'user_name' => '姓名', + 'nick_name' => '暱稱', 'regdate' => '登錄日期', 'ipaddress' => 'IP位址', ); From e332eeec0e6cde6086e9e499b918c12688d9f044 Mon Sep 17 00:00:00 2001 From: ngleader Date: Tue, 16 Dec 2008 06:58:40 +0000 Subject: [PATCH 096/135] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=EB=AC=BC=20=EC=9D=B8?= =?UTF-8?q?=EC=87=84=EC=8B=9C=20=ED=99=95=EC=9E=A5=EB=B3=80=EC=88=98=20?= =?UTF-8?q?=EC=B6=9C=EB=A0=A5?= 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@5094 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/document/document.view.php | 13 ++++++++++++- modules/document/tpl/print_page.html | 10 ++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/modules/document/document.view.php b/modules/document/document.view.php index 951b28fcd..7fb35b2e2 100644 --- a/modules/document/document.view.php +++ b/modules/document/document.view.php @@ -31,9 +31,20 @@ // 권한 체크 if(!$oDocument->isAccessible()) return new Object(-1,'msg_not_permitted'); + + // 설정된 확장 변수를 찾는다. + $oModuleModel = &getModel('module'); + $module_info = $oModuleModel->getModuleInfoByDocumentSrl($document_srl); + $extra_vars = array(); + foreach($module_info->extra_vars as $key => $extra_var){ + $extra_vars[$key]->name = $extra_var->name; + $extra_vars[$key]->value = $oDocument->getExtraValue($key); + if(is_array($extra_vars[$key]->value)) $extra_vars[$key]->value = join("",$extra_vars[$key]->value); + } + Context::set('extra_vars', $extra_vars); + // 브라우저 타이틀 설정 Context::setBrowserTitle($oDocument->getTitleText()); - Context::set('oDocument', $oDocument); Context::set('layout','none'); diff --git a/modules/document/tpl/print_page.html b/modules/document/tpl/print_page.html index 27b100108..9a5c178cc 100644 --- a/modules/document/tpl/print_page.html +++ b/modules/document/tpl/print_page.html @@ -7,15 +7,17 @@
    {$oDocument->get('nick_name')}
    {$oDocument->getRegdate()}
    -
    + + +
    {$extra_var->name} : {$extra_var->value}
    +
    +
    {$oDocument->getContent(false, false)}
    - - +//]]> \ No newline at end of file From d2e802463e759b8e9cb8a993f0053b68cb1138a4 Mon Sep 17 00:00:00 2001 From: ngleader Date: Tue, 16 Dec 2008 07:07:49 +0000 Subject: [PATCH 097/135] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20tr=20clas?= =?UTF-8?q?s=3Drow2=20=EC=A7=80=EC=9A=B0=EA=B3=A0=20=EC=9D=BC=EA=B4=84=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=ED=95=98=EB=8F=84=EB=A1=9D?= 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@5095 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/tpl/js/admin.js | 3 +++ modules/board/tpl/board_insert.html | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/admin/tpl/js/admin.js b/modules/admin/tpl/js/admin.js index 0c1f955af..a1353e981 100644 --- a/modules/admin/tpl/js/admin.js +++ b/modules/admin/tpl/js/admin.js @@ -52,3 +52,6 @@ function doRecompileCacheFile() { } +jQuery(function(){ + jQuery("table.adminTable tr").attr('class','').filter(":nth-child(even)").attr('class','row2'); +}); \ No newline at end of file diff --git a/modules/board/tpl/board_insert.html b/modules/board/tpl/board_insert.html index 2455b8b41..4bef5990a 100644 --- a/modules/board/tpl/board_insert.html +++ b/modules/board/tpl/board_insert.html @@ -245,7 +245,4 @@ - - \ No newline at end of file + \ No newline at end of file From 9e80783d861dcaf8a596dba7390a2b4d9af0bb50 Mon Sep 17 00:00:00 2001 From: haneul Date: Tue, 16 Dec 2008 08:03:35 +0000 Subject: [PATCH 098/135] JSSpec added git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5096 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/unittest/JSSpec/COPYING | 459 +++++ common/js/unittest/JSSpec/JSSpec.js | 1548 +++++++++++++++++ common/js/unittest/JSSpec/demo.html | 210 +++ common/js/unittest/JSSpec/diff_match_patch.js | 1 + common/js/unittest/css/JSSpec.css | 224 +++ 5 files changed, 2442 insertions(+) create mode 100644 common/js/unittest/JSSpec/COPYING create mode 100644 common/js/unittest/JSSpec/JSSpec.js create mode 100644 common/js/unittest/JSSpec/demo.html create mode 100644 common/js/unittest/JSSpec/diff_match_patch.js create mode 100644 common/js/unittest/css/JSSpec.css diff --git a/common/js/unittest/JSSpec/COPYING b/common/js/unittest/JSSpec/COPYING new file mode 100644 index 000000000..a3460b2ab --- /dev/null +++ b/common/js/unittest/JSSpec/COPYING @@ -0,0 +1,459 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + diff --git a/common/js/unittest/JSSpec/JSSpec.js b/common/js/unittest/JSSpec/JSSpec.js new file mode 100644 index 000000000..91cd142b3 --- /dev/null +++ b/common/js/unittest/JSSpec/JSSpec.js @@ -0,0 +1,1548 @@ +/** + * JSSpec + * + * Copyright 2007 Alan Kang + * - mailto:jania902@gmail.com + * - http://jania.pe.kr + * + * http://jania.pe.kr/aw/moin.cgi/JSSpec + * + * Dependencies: + * - diff_match_patch.js ( http://code.google.com/p/google-diff-match-patch ) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * Namespace + */ + +var JSSpec = { + specs: [], + + EMPTY_FUNCTION: function() {}, + + Browser: { + // By Rendering Engines + Trident: navigator.appName === "Microsoft Internet Explorer", + Webkit: navigator.userAgent.indexOf('AppleWebKit/') > -1, + Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') === -1, + KHTML: navigator.userAgent.indexOf('KHTML') !== -1, + Presto: navigator.appName === "Opera", + + // By Platforms + Mac: navigator.userAgent.indexOf("Macintosh") !== -1, + Ubuntu: navigator.userAgent.indexOf('Ubuntu') !== -1, + Win: navigator.userAgent.indexOf('Windows') !== -1, + + // By Browsers + IE: navigator.appName === "Microsoft Internet Explorer", + IE6: navigator.userAgent.indexOf('MSIE 6') !== -1, + IE7: navigator.userAgent.indexOf('MSIE 7') !== -1, + IE8: navigator.userAgent.indexOf('MSIE 8') !== -1, + + FF: navigator.userAgent.indexOf('Firefox') !== -1, + FF2: navigator.userAgent.indexOf('Firefox/2') !== -1, + FF3: navigator.userAgent.indexOf('Firefox/3') !== -1, + Safari: navigator.userAgent.indexOf('Safari') !== -1 + } +}; + + + +/** + * Executor + */ +JSSpec.Executor = function(target, onSuccess, onException) { + this.target = target; + this.onSuccess = typeof onSuccess == 'function' ? onSuccess : JSSpec.EMPTY_FUNCTION; + this.onException = typeof onException == 'function' ? onException : JSSpec.EMPTY_FUNCTION; + + if(JSSpec.Browser.Trident) { + // Exception handler for Trident. It helps to collect exact line number where exception occured. + window.onerror = function(message, fileName, lineNumber) { + var self = window._curExecutor; + var ex = {message:message, fileName:fileName, lineNumber:lineNumber}; + + if(JSSpec._secondPass) { + ex = self.mergeExceptions(JSSpec._assertionFailure, ex); + delete JSSpec._secondPass; + delete JSSpec._assertionFailure; + + ex.type = "failure"; + self.onException(self, ex); + } else if(JSSpec._assertionFailure) { + JSSpec._secondPass = true; + self.run(); + } else { + self.onException(self, ex); + } + + return true; + }; + } +}; +JSSpec.Executor.prototype.mergeExceptions = function(assertionFailure, normalException) { + var merged = { + message:assertionFailure.message, + fileName:normalException.fileName, + lineNumber:normalException.lineNumber + }; + + return merged; +}; + +JSSpec.Executor.prototype.run = function() { + var self = this; + var target = this.target; + var onSuccess = this.onSuccess; + var onException = this.onException; + + window.setTimeout( + function() { + var result; + if(JSSpec.Browser.Trident) { + window._curExecutor = self; + + result = self.target(); + self.onSuccess(self, result); + } else { + try { + result = self.target(); + self.onSuccess(self, result); + } catch(ex) { + if(JSSpec.Browser.Webkit) ex = {message:ex.message, fileName:ex.sourceURL, lineNumber:ex.line}; + + if(JSSpec._secondPass) { + ex = self.mergeExceptions(JSSpec._assertionFailure, ex); + delete JSSpec._secondPass; + delete JSSpec._assertionFailure; + + ex.type = "failure"; + self.onException(self, ex); + } else if(JSSpec._assertionFailure) { + JSSpec._secondPass = true; + self.run(); + } else { + self.onException(self, ex); + } + } + } + }, + 0 + ); +}; + + + +/** + * CompositeExecutor composites one or more executors and execute them sequencially. + */ +JSSpec.CompositeExecutor = function(onSuccess, onException, continueOnException) { + this.queue = []; + this.onSuccess = typeof onSuccess == 'function' ? onSuccess : JSSpec.EMPTY_FUNCTION; + this.onException = typeof onException == 'function' ? onException : JSSpec.EMPTY_FUNCTION; + this.continueOnException = !!continueOnException; +}; + +JSSpec.CompositeExecutor.prototype.addFunction = function(func) { + this.addExecutor(new JSSpec.Executor(func)); +}; + +JSSpec.CompositeExecutor.prototype.addExecutor = function(executor) { + var last = this.queue.length == 0 ? null : this.queue[this.queue.length - 1]; + if(last) { + last.next = executor; + } + + executor.parent = this; + executor.onSuccessBackup = executor.onSuccess; + executor.onSuccess = function(result) { + this.onSuccessBackup(result); + if(this.next) { + this.next.run(); + } else { + this.parent.onSuccess(); + } + }; + executor.onExceptionBackup = executor.onException; + executor.onException = function(executor, ex) { + this.onExceptionBackup(executor, ex); + + if(this.parent.continueOnException) { + if(this.next) { + this.next.run(); + } else { + this.parent.onSuccess(); + } + } else { + this.parent.onException(executor, ex); + } + }; + + this.queue.push(executor); +}; + +JSSpec.CompositeExecutor.prototype.run = function() { + if(this.queue.length > 0) { + this.queue[0].run(); + } +}; + +/** + * Spec is a set of Examples in a specific context + */ +JSSpec.Spec = function(context, entries) { + this.id = JSSpec.Spec.id++; + this.context = context; + this.url = location.href; + + this.filterEntriesByEmbeddedExpressions(entries); + this.extractOutSpecialEntries(entries); + this.examples = this.makeExamplesFromEntries(entries); + this.examplesMap = this.makeMapFromExamples(this.examples); +}; + +JSSpec.Spec.id = 0; +JSSpec.Spec.prototype.getExamples = function() { + return this.examples; +}; + +JSSpec.Spec.prototype.hasException = function() { + return this.getTotalFailures() > 0 || this.getTotalErrors() > 0; +}; + +JSSpec.Spec.prototype.getTotalFailures = function() { + var examples = this.examples; + var failures = 0; + for(var i = 0; i < examples.length; i++) { + if(examples[i].isFailure()) failures++; + } + return failures; +}; + +JSSpec.Spec.prototype.getTotalErrors = function() { + var examples = this.examples; + var errors = 0; + for(var i = 0; i < examples.length; i++) { + if(examples[i].isError()) errors++; + } + return errors; +}; + +JSSpec.Spec.prototype.filterEntriesByEmbeddedExpressions = function(entries) { + var isTrue; + for(name in entries) if(entries.hasOwnProperty(name)) { + var m = name.match(/\[\[(.+)\]\]/); + if(m && m[1]) { + eval("isTrue = (" + m[1] + ")"); + if(!isTrue) delete entries[name]; + } + } +}; + +JSSpec.Spec.prototype.extractOutSpecialEntries = function(entries) { + this.beforeEach = JSSpec.EMPTY_FUNCTION; + this.beforeAll = JSSpec.EMPTY_FUNCTION; + this.afterEach = JSSpec.EMPTY_FUNCTION; + this.afterAll = JSSpec.EMPTY_FUNCTION; + + for(name in entries) if(entries.hasOwnProperty(name)) { + if(name == 'before' || name == 'before each' || name == 'before_each') { + this.beforeEach = entries[name]; + } else if(name == 'before all' || name == 'before_all') { + this.beforeAll = entries[name]; + } else if(name == 'after' || name == 'after each' || name == 'after_each') { + this.afterEach = entries[name]; + } else if(name == 'after all' || name == 'after_all') { + this.afterAll = entries[name]; + } + } + + delete entries['before']; + delete entries['before each']; + delete entries['before_each']; + delete entries['before all']; + delete entries['before_all']; + delete entries['after']; + delete entries['after each']; + delete entries['after_each']; + delete entries['after all']; + delete entries['after_all']; +}; + +JSSpec.Spec.prototype.makeExamplesFromEntries = function(entries) { + var examples = []; + for(name in entries) if(entries.hasOwnProperty(name)) { + examples.push(new JSSpec.Example(name, entries[name], this.beforeEach, this.afterEach)); + } + return examples; +}; + +JSSpec.Spec.prototype.makeMapFromExamples = function(examples) { + var map = {}; + for(var i = 0; i < examples.length; i++) { + var example = examples[i]; + map[example.id] = examples[i]; + } + return map; +}; + +JSSpec.Spec.prototype.getExampleById = function(id) { + return this.examplesMap[id]; +}; + +JSSpec.Spec.prototype.getExecutor = function() { + var self = this; + var onException = function(executor, ex) { + self.exception = ex; + }; + + var composite = new JSSpec.CompositeExecutor(); + composite.addFunction(function() {JSSpec.log.onSpecStart(self);}); + composite.addExecutor(new JSSpec.Executor(this.beforeAll, null, function(exec, ex) { + self.exception = ex; + JSSpec.log.onSpecEnd(self); + })); + + var exampleAndAfter = new JSSpec.CompositeExecutor(null,null,true); + for(var i = 0; i < this.examples.length; i++) { + exampleAndAfter.addExecutor(this.examples[i].getExecutor()); + } + exampleAndAfter.addExecutor(new JSSpec.Executor(this.afterAll, null, onException)); + exampleAndAfter.addFunction(function() {JSSpec.log.onSpecEnd(self);}); + composite.addExecutor(exampleAndAfter); + + return composite; +}; + +/** + * Example + */ +JSSpec.Example = function(name, target, before, after) { + this.id = JSSpec.Example.id++; + this.name = name; + this.target = target; + this.before = before; + this.after = after; +}; + +JSSpec.Example.id = 0; +JSSpec.Example.prototype.isFailure = function() { + return this.exception && this.exception.type == "failure"; +}; + +JSSpec.Example.prototype.isError = function() { + return this.exception && !this.exception.type; +}; + +JSSpec.Example.prototype.getExecutor = function() { + var self = this; + var onException = function(executor, ex) { + self.exception = ex; + }; + + var composite = new JSSpec.CompositeExecutor(); + composite.addFunction(function() {JSSpec.log.onExampleStart(self);}); + composite.addExecutor(new JSSpec.Executor(this.before, null, function(exec, ex) { + self.exception = ex; + JSSpec.log.onExampleEnd(self); + })); + + var targetAndAfter = new JSSpec.CompositeExecutor(null,null,true); + + targetAndAfter.addExecutor(new JSSpec.Executor(this.target, null, onException)); + targetAndAfter.addExecutor(new JSSpec.Executor(this.after, null, onException)); + targetAndAfter.addFunction(function() {JSSpec.log.onExampleEnd(self);}); + + composite.addExecutor(targetAndAfter); + + return composite; +}; + +/** + * Runner + */ +JSSpec.Runner = function(specs, logger) { + JSSpec.log = logger; + + this.totalExamples = 0; + this.specs = []; + this.specsMap = {}; + this.addAllSpecs(specs); +}; + +JSSpec.Runner.prototype.addAllSpecs = function(specs) { + for(var i = 0; i < specs.length; i++) { + this.addSpec(specs[i]); + } +}; + +JSSpec.Runner.prototype.addSpec = function(spec) { + this.specs.push(spec); + this.specsMap[spec.id] = spec; + this.totalExamples += spec.getExamples().length; +}; + +JSSpec.Runner.prototype.getSpecById = function(id) { + return this.specsMap[id]; +}; + +JSSpec.Runner.prototype.getSpecByContext = function(context) { + for(var i = 0; i < this.specs.length; i++) { + if(this.specs[i].context == context) return this.specs[i]; + } + return null; +}; + +JSSpec.Runner.prototype.getSpecs = function() { + return this.specs; +}; + +JSSpec.Runner.prototype.hasException = function() { + return this.getTotalFailures() > 0 || this.getTotalErrors() > 0; +}; + +JSSpec.Runner.prototype.getTotalFailures = function() { + var specs = this.specs; + var failures = 0; + for(var i = 0; i < specs.length; i++) { + failures += specs[i].getTotalFailures(); + } + return failures; +}; + +JSSpec.Runner.prototype.getTotalErrors = function() { + var specs = this.specs; + var errors = 0; + for(var i = 0; i < specs.length; i++) { + errors += specs[i].getTotalErrors(); + } + return errors; +}; + + +JSSpec.Runner.prototype.run = function() { + JSSpec.log.onRunnerStart(); + var executor = new JSSpec.CompositeExecutor(function() {JSSpec.log.onRunnerEnd()},null,true); + for(var i = 0; i < this.specs.length; i++) { + executor.addExecutor(this.specs[i].getExecutor()); + } + executor.run(); +}; + + +JSSpec.Runner.prototype.rerun = function(context) { + JSSpec.runner = new JSSpec.Runner([this.getSpecByContext(context)], JSSpec.log); + JSSpec.runner.run(); +}; + +/** + * Logger + */ +JSSpec.Logger = function() { + this.finishedExamples = 0; + this.startedAt = null; +}; + +JSSpec.Logger.prototype.onRunnerStart = function() { + this._title = document.title; + + this.startedAt = new Date(); + var container = document.getElementById('jsspec_container'); + if(container) { + container.innerHTML = ""; + } else { + container = document.createElement("DIV"); + container.id = "jsspec_container"; + document.body.appendChild(container); + } + + var title = document.createElement("DIV"); + title.id = "title"; + title.innerHTML = [ + '

    JSSpec

    ', + '
      ', + JSSpec.options.rerun ? '
    • [X] ' + JSSpec.util.escapeTags(decodeURIComponent(JSSpec.options.rerun)) + '
    • ' : '', + '
    • ' + JSSpec.runner.totalExamples + ' examples
    • ', + '
    • 0 failures
    • ', + '
    • 0 errors
    • ', + '
    • 0% done
    • ', + '
    • 0 secs
    • ', + '
    ', + '

    JSSpec homepage

    ', + ].join(""); + container.appendChild(title); + + var list = document.createElement("DIV"); + list.id = "list"; + list.innerHTML = [ + '

    List

    ', + '' + ].join(""); + container.appendChild(list); + + var log = document.createElement("DIV"); + log.id = "log"; + log.innerHTML = [ + '

    Log

    ', + '
      ', + function() { + var specs = JSSpec.runner.getSpecs(); + var sb = []; + for(var i = 0; i < specs.length; i++) { + var spec = specs[i]; + sb.push('
    • '); + sb.push('

      ' + JSSpec.util.escapeTags(specs[i].context) + ' [rerun]

      '); + sb.push('
        '); + for(var j = 0; j < spec.examples.length; j++) { + var example = spec.examples[j]; + sb.push('
      • '); + sb.push('

        ' + JSSpec.util.escapeTags(example.name) + '

        '); + sb.push('
        '+JSSpec.util.escapeTags(example.target.toString())+'
        '); + sb.push('
      • '); + } + sb.push('
      '); + sb.push('
    • '); + } + return sb.join(""); + }(), + '
    ' + ].join(""); + + container.appendChild(log); + + // add event handler for toggling + var specs = JSSpec.runner.getSpecs(); + var sb = []; + for(var i = 0; i < specs.length; i++) { + var spec = document.getElementById("spec_" + specs[i].id); + var title = spec.getElementsByTagName("H3")[0]; + title.onclick = function(e) { + var target = document.getElementById(this.parentNode.id + "_examples"); + target.style.display = target.style.display == "none" ? "block" : "none"; + return true; + } + } +}; + +JSSpec.Logger.prototype.onRunnerEnd = function() { + if(JSSpec.runner.hasException()) { + var times = 4; + var title1 = "*" + this._title; + var title2 = "*F" + JSSpec.runner.getTotalFailures() + " E" + JSSpec.runner.getTotalErrors() + "* " + this._title; + } else { + var times = 2; + var title1 = this._title; + var title2 = "Success"; + } + this.blinkTitle(times,title1,title2); +}; + +JSSpec.Logger.prototype.blinkTitle = function(times, title1, title2) { + var times = times * 2; + var mode = true; + + var f = function() { + if(times > 0) { + document.title = mode ? title1 : title2; + mode = !mode; + times--; + window.setTimeout(f, 500); + } else { + document.title = title1; + } + }; + + f(); +}; + +JSSpec.Logger.prototype.onSpecStart = function(spec) { + var spec_list = document.getElementById("spec_" + spec.id + "_list"); + var spec_log = document.getElementById("spec_" + spec.id); + + spec_list.className = "ongoing"; + spec_log.className = "ongoing"; +}; + +JSSpec.Logger.prototype.onSpecEnd = function(spec) { + var spec_list = document.getElementById("spec_" + spec.id + "_list"); + var spec_log = document.getElementById("spec_" + spec.id); + var examples = document.getElementById("spec_" + spec.id + "_examples"); + var className = spec.hasException() ? "exception" : "success"; + + spec_list.className = className; + spec_log.className = className; + + if(JSSpec.options.autocollapse && !spec.hasException()) examples.style.display = "none"; + + if(spec.exception) { + spec_log.appendChild(document.createTextNode(" - " + spec.exception.message)); + } +}; + +JSSpec.Logger.prototype.onExampleStart = function(example) { + var li = document.getElementById("example_" + example.id); + li.className = "ongoing"; +}; + +JSSpec.Logger.prototype.onExampleEnd = function(example) { + var li = document.getElementById("example_" + example.id); + li.className = example.exception ? "exception" : "success"; + + if(example.exception) { + var div = document.createElement("DIV"); + div.innerHTML = example.exception.message + "


    " + " at " + example.exception.fileName + ", line " + example.exception.lineNumber + "

    "; + li.appendChild(div); + } + + var title = document.getElementById("title"); + var runner = JSSpec.runner; + + title.className = runner.hasException() ? "exception" : "success"; + + this.finishedExamples++; + document.getElementById("total_failures").innerHTML = runner.getTotalFailures(); + document.getElementById("total_errors").innerHTML = runner.getTotalErrors(); + var progress = parseInt(this.finishedExamples / runner.totalExamples * 100); + document.getElementById("progress").innerHTML = progress; + document.getElementById("total_elapsed").innerHTML = (new Date().getTime() - this.startedAt.getTime()) / 1000; + + document.title = progress + "%: " + this._title; +}; + +/** + * IncludeMatcher + */ +JSSpec.IncludeMatcher = function(actual, expected, condition) { + this.actual = actual; + this.expected = expected; + this.condition = condition; + this.match = false; + this.explaination = this.makeExplain(); +}; + +JSSpec.IncludeMatcher.createInstance = function(actual, expected, condition) { + return new JSSpec.IncludeMatcher(actual, expected, condition); +}; + +JSSpec.IncludeMatcher.prototype.matches = function() { + return this.match; +}; + +JSSpec.IncludeMatcher.prototype.explain = function() { + return this.explaination; +}; + +JSSpec.IncludeMatcher.prototype.makeExplain = function() { + if(typeof this.actual.length == 'undefined') { + return this.makeExplainForNotArray(); + } else { + return this.makeExplainForArray(); + } +}; + +JSSpec.IncludeMatcher.prototype.makeExplainForNotArray = function() { + if(this.condition) { + this.match = !!this.actual[this.expected]; + } else { + this.match = !this.actual[this.expected]; + } + + var sb = []; + sb.push('

    actual value:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual, false, this.expected) + '

    '); + sb.push('

    should ' + (this.condition ? '' : 'not') + ' include:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.expected) + '

    '); + return sb.join(""); +}; + +JSSpec.IncludeMatcher.prototype.makeExplainForArray = function() { + var matches; + if(this.condition) { + for(var i = 0; i < this.actual.length; i++) { + matches = JSSpec.EqualityMatcher.createInstance(this.expected, this.actual[i]).matches(); + if(matches) { + this.match = true; + break; + } + } + } else { + for(var i = 0; i < this.actual.length; i++) { + matches = JSSpec.EqualityMatcher.createInstance(this.expected, this.actual[i]).matches(); + if(matches) { + this.match = false; + break; + } + } + } + + if(this.match) return ""; + + var sb = []; + sb.push('

    actual value:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual, false, this.condition ? null : i) + '

    '); + sb.push('

    should ' + (this.condition ? '' : 'not') + ' include:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.expected) + '

    '); + return sb.join(""); +}; + +/** + * PropertyLengthMatcher + */ +JSSpec.PropertyLengthMatcher = function(num, property, o, condition) { + this.num = num; + this.o = o; + this.property = property; + if((property == 'characters' || property == 'items') && typeof o.length != 'undefined') { + this.property = 'length'; + } + + this.condition = condition; + this.conditionMet = function(x) { + if(condition == 'exactly') return x.length == num; + if(condition == 'at least') return x.length >= num; + if(condition == 'at most') return x.length <= num; + + throw "Unknown condition '" + condition + "'"; + }; + this.match = false; + this.explaination = this.makeExplain(); +}; + +JSSpec.PropertyLengthMatcher.prototype.makeExplain = function() { + if(this.o._type == 'String' && this.property == 'length') { + this.match = this.conditionMet(this.o); + return this.match ? '' : this.makeExplainForString(); + } else if(typeof this.o.length != 'undefined' && this.property == "length") { + this.match = this.conditionMet(this.o); + return this.match ? '' : this.makeExplainForArray(); + } else if(typeof this.o[this.property] != 'undefined' && this.o[this.property] != null) { + this.match = this.conditionMet(this.o[this.property]); + return this.match ? '' : this.makeExplainForObject(); + } else if(typeof this.o[this.property] == 'undefined' || this.o[this.property] == null) { + this.match = false; + return this.makeExplainForNoProperty(); + } + + this.match = true; +}; + +JSSpec.PropertyLengthMatcher.prototype.makeExplainForString = function() { + var sb = []; + + var exp = this.num == 0 ? + 'be an empty string' : + 'have ' + this.condition + ' ' + this.num + ' characters'; + + sb.push('

    actual value has ' + this.o.length + ' characters:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.o) + '

    '); + sb.push('

    but it should ' + exp + '.

    '); + + return sb.join(""); +}; + +JSSpec.PropertyLengthMatcher.prototype.makeExplainForArray = function() { + var sb = []; + + var exp = this.num == 0 ? + 'be an empty array' : + 'have ' + this.condition + ' ' + this.num + ' items'; + + sb.push('

    actual value has ' + this.o.length + ' items:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.o) + '

    '); + sb.push('

    but it should ' + exp + '.

    '); + + return sb.join(""); +}; + +JSSpec.PropertyLengthMatcher.prototype.makeExplainForObject = function() { + var sb = []; + + var exp = this.num == 0 ? + 'be empty' : + 'have ' + this.condition + ' ' + this.num + ' ' + this.property + '.'; + + sb.push('

    actual value has ' + this.o[this.property].length + ' ' + this.property + ':

    '); + sb.push('

    ' + JSSpec.util.inspect(this.o, false, this.property) + '

    '); + sb.push('

    but it should ' + exp + '.

    '); + + return sb.join(""); +}; + +JSSpec.PropertyLengthMatcher.prototype.makeExplainForNoProperty = function() { + var sb = []; + + sb.push('

    actual value:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.o) + '

    '); + sb.push('

    should have ' + this.condition + ' ' + this.num + ' ' + this.property + ' but there\'s no such property.

    '); + + return sb.join(""); +}; + +JSSpec.PropertyLengthMatcher.prototype.matches = function() { + return this.match; +}; + +JSSpec.PropertyLengthMatcher.prototype.explain = function() { + return this.explaination; +}; + +JSSpec.PropertyLengthMatcher.createInstance = function(num, property, o, condition) { + return new JSSpec.PropertyLengthMatcher(num, property, o, condition); +}; + +/** + * EqualityMatcher + */ +JSSpec.EqualityMatcher = {}; + +JSSpec.EqualityMatcher.createInstance = function(expected, actual) { + if(expected == null || actual == null) { + return new JSSpec.NullEqualityMatcher(expected, actual); + } else if(expected._type && expected._type == actual._type) { + if(expected._type == "String") { + return new JSSpec.StringEqualityMatcher(expected, actual); + } else if(expected._type == "Date") { + return new JSSpec.DateEqualityMatcher(expected, actual); + } else if(expected._type == "Number") { + return new JSSpec.NumberEqualityMatcher(expected, actual); + } else if(expected._type == "Array") { + return new JSSpec.ArrayEqualityMatcher(expected, actual); + } else if(expected._type == "Boolean") { + return new JSSpec.BooleanEqualityMatcher(expected, actual); + } + } + + return new JSSpec.ObjectEqualityMatcher(expected, actual); +}; + +JSSpec.EqualityMatcher.basicExplain = function(expected, actual, expectedDesc, actualDesc) { + var sb = []; + + sb.push(actualDesc || '

    actual value:

    '); + sb.push('

    ' + JSSpec.util.inspect(actual) + '

    '); + sb.push(expectedDesc || '

    should be:

    '); + sb.push('

    ' + JSSpec.util.inspect(expected) + '

    '); + + return sb.join(""); +}; + +JSSpec.EqualityMatcher.diffExplain = function(expected, actual) { + var sb = []; + + sb.push('

    diff:

    '); + sb.push('

    '); + + var dmp = new diff_match_patch(); + var diff = dmp.diff_main(expected, actual); + dmp.diff_cleanupEfficiency(diff); + + sb.push(JSSpec.util.inspect(dmp.diff_prettyHtml(diff), true)); + + sb.push('

    '); + + return sb.join(""); +}; + +/** + * BooleanEqualityMatcher + */ +JSSpec.BooleanEqualityMatcher = function(expected, actual) { + this.expected = expected; + this.actual = actual; +}; + +JSSpec.BooleanEqualityMatcher.prototype.explain = function() { + var sb = []; + + sb.push('

    actual value:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual) + '

    '); + sb.push('

    should be:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.expected) + '

    '); + + return sb.join(""); +}; + +JSSpec.BooleanEqualityMatcher.prototype.matches = function() { + return this.expected == this.actual; +}; + +/** + * NullEqualityMatcher + */ +JSSpec.NullEqualityMatcher = function(expected, actual) { + this.expected = expected; + this.actual = actual; +}; + +JSSpec.NullEqualityMatcher.prototype.matches = function() { + return this.expected == this.actual && typeof this.expected == typeof this.actual; +}; + +JSSpec.NullEqualityMatcher.prototype.explain = function() { + return JSSpec.EqualityMatcher.basicExplain(this.expected, this.actual); +}; + +JSSpec.DateEqualityMatcher = function(expected, actual) { + this.expected = expected; + this.actual = actual; +}; + +JSSpec.DateEqualityMatcher.prototype.matches = function() { + return this.expected.getTime() == this.actual.getTime(); +}; + +JSSpec.DateEqualityMatcher.prototype.explain = function() { + var sb = []; + + sb.push(JSSpec.EqualityMatcher.basicExplain(this.expected, this.actual)); + sb.push(JSSpec.EqualityMatcher.diffExplain(this.expected.toString(), this.actual.toString())); + + return sb.join(""); +}; + +/** + * ObjectEqualityMatcher + */ +JSSpec.ObjectEqualityMatcher = function(expected, actual) { + this.expected = expected; + this.actual = actual; + this.match = this.expected == this.actual; + this.explaination = this.makeExplain(); +}; + +JSSpec.ObjectEqualityMatcher.prototype.matches = function() {return this.match}; + +JSSpec.ObjectEqualityMatcher.prototype.explain = function() {return this.explaination}; + +JSSpec.ObjectEqualityMatcher.prototype.makeExplain = function() { + if(this.expected == this.actual) { + this.match = true; + return ""; + } + + if(JSSpec.util.isDomNode(this.expected)) { + return this.makeExplainForDomNode(); + } + + var key, expectedHasItem, actualHasItem; + + for(key in this.expected) { + expectedHasItem = this.expected[key] != null && typeof this.expected[key] != 'undefined'; + actualHasItem = this.actual[key] != null && typeof this.actual[key] != 'undefined'; + if(expectedHasItem && !actualHasItem) return this.makeExplainForMissingItem(key); + } + for(key in this.actual) { + expectedHasItem = this.expected[key] != null && typeof this.expected[key] != 'undefined'; + actualHasItem = this.actual[key] != null && typeof this.actual[key] != 'undefined'; + if(actualHasItem && !expectedHasItem) return this.makeExplainForUnknownItem(key); + } + + for(key in this.expected) { + var matcher = JSSpec.EqualityMatcher.createInstance(this.expected[key], this.actual[key]); + if(!matcher.matches()) return this.makeExplainForItemMismatch(key); + } + + this.match = true; +}; + +JSSpec.ObjectEqualityMatcher.prototype.makeExplainForDomNode = function(key) { + var sb = []; + + sb.push(JSSpec.EqualityMatcher.basicExplain(this.expected, this.actual)); + + return sb.join(""); +}; + +JSSpec.ObjectEqualityMatcher.prototype.makeExplainForMissingItem = function(key) { + var sb = []; + + sb.push('

    actual value has no item named ' + JSSpec.util.inspect(key) + '

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual, false, key) + '

    '); + sb.push('

    but it should have the item whose value is ' + JSSpec.util.inspect(this.expected[key]) + '

    '); + sb.push('

    ' + JSSpec.util.inspect(this.expected, false, key) + '

    '); + + return sb.join(""); +}; + +JSSpec.ObjectEqualityMatcher.prototype.makeExplainForUnknownItem = function(key) { + var sb = []; + + sb.push('

    actual value has item named ' + JSSpec.util.inspect(key) + '

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual, false, key) + '

    '); + sb.push('

    but there should be no such item

    '); + sb.push('

    ' + JSSpec.util.inspect(this.expected, false, key) + '

    '); + + return sb.join(""); +}; + +JSSpec.ObjectEqualityMatcher.prototype.makeExplainForItemMismatch = function(key) { + var sb = []; + + sb.push('

    actual value has an item named ' + JSSpec.util.inspect(key) + ' whose value is ' + JSSpec.util.inspect(this.actual[key]) + '

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual, false, key) + '

    '); + sb.push('

    but it\'s value should be ' + JSSpec.util.inspect(this.expected[key]) + '

    '); + sb.push('

    ' + JSSpec.util.inspect(this.expected, false, key) + '

    '); + + return sb.join(""); +}; + + + + +/** + * ArrayEqualityMatcher + */ +JSSpec.ArrayEqualityMatcher = function(expected, actual) { + this.expected = expected; + this.actual = actual; + this.match = this.expected == this.actual; + this.explaination = this.makeExplain(); +}; + +JSSpec.ArrayEqualityMatcher.prototype.matches = function() {return this.match}; + +JSSpec.ArrayEqualityMatcher.prototype.explain = function() {return this.explaination}; + +JSSpec.ArrayEqualityMatcher.prototype.makeExplain = function() { + if(this.expected.length != this.actual.length) return this.makeExplainForLengthMismatch(); + + for(var i = 0; i < this.expected.length; i++) { + var matcher = JSSpec.EqualityMatcher.createInstance(this.expected[i], this.actual[i]); + if(!matcher.matches()) return this.makeExplainForItemMismatch(i); + } + + this.match = true; +}; + +JSSpec.ArrayEqualityMatcher.prototype.makeExplainForLengthMismatch = function() { + return JSSpec.EqualityMatcher.basicExplain( + this.expected, + this.actual, + '

    but it should be ' + this.expected.length + '

    ', + '

    actual value has ' + this.actual.length + ' items

    ' + ); +}; + +JSSpec.ArrayEqualityMatcher.prototype.makeExplainForItemMismatch = function(index) { + var postfix = ["th", "st", "nd", "rd", "th"][Math.min((index + 1) % 10,4)]; + + var sb = []; + + sb.push('

    ' + (index + 1) + postfix + ' item (index ' + index + ') of actual value is ' + JSSpec.util.inspect(this.actual[index]) + ':

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual, false, index) + '

    '); + sb.push('

    but it should be ' + JSSpec.util.inspect(this.expected[index]) + ':

    '); + sb.push('

    ' + JSSpec.util.inspect(this.expected, false, index) + '

    '); + + return sb.join(""); +}; + +/** + * NumberEqualityMatcher + */ +JSSpec.NumberEqualityMatcher = function(expected, actual) { + this.expected = expected; + this.actual = actual; +}; + +JSSpec.NumberEqualityMatcher.prototype.matches = function() { + if(this.expected == this.actual) return true; +}; + +JSSpec.NumberEqualityMatcher.prototype.explain = function() { + return JSSpec.EqualityMatcher.basicExplain(this.expected, this.actual); +}; + +/** + * StringEqualityMatcher + */ +JSSpec.StringEqualityMatcher = function(expected, actual) { + this.expected = expected; + this.actual = actual; +}; + +JSSpec.StringEqualityMatcher.prototype.matches = function() { + return this.expected == this.actual; +}; + +JSSpec.StringEqualityMatcher.prototype.explain = function() { + var sb = []; + + sb.push(JSSpec.EqualityMatcher.basicExplain(this.expected, this.actual)); + sb.push(JSSpec.EqualityMatcher.diffExplain(this.expected, this.actual)); + return sb.join(""); +}; + +/** + * PatternMatcher + */ +JSSpec.PatternMatcher = function(actual, pattern, condition) { + this.actual = actual; + this.pattern = pattern; + this.condition = condition; + this.match = false; + this.explaination = this.makeExplain(); +}; + +JSSpec.PatternMatcher.createInstance = function(actual, pattern, condition) { + return new JSSpec.PatternMatcher(actual, pattern, condition); +}; + +JSSpec.PatternMatcher.prototype.makeExplain = function() { + var sb; + if(this.actual == null || this.actual._type != 'String') { + sb = []; + sb.push('

    actual value:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual) + '

    '); + sb.push('

    should ' + (this.condition ? '' : 'not') + ' match with pattern:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.pattern) + '

    '); + sb.push('

    but pattern matching cannot be performed.

    '); + return sb.join(""); + } else { + this.match = this.condition == !!this.actual.match(this.pattern); + if(this.match) return ""; + + sb = []; + sb.push('

    actual value:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.actual) + '

    '); + sb.push('

    should ' + (this.condition ? '' : 'not') + ' match with pattern:

    '); + sb.push('

    ' + JSSpec.util.inspect(this.pattern) + '

    '); + return sb.join(""); + } +}; + +JSSpec.PatternMatcher.prototype.matches = function() { + return this.match; +}; + +JSSpec.PatternMatcher.prototype.explain = function() { + return this.explaination; +}; + +/** + * Domain Specific Languages + */ +JSSpec.DSL = {}; + +JSSpec.DSL.forString = { + normalizeHtml: function() { + var html = this; + + // Uniformize quotation, turn tag names and attribute names into lower case + html = html.replace(/<(\/?)(\w+)([^>]*?)>/img, function(str, closingMark, tagName, attrs) { + var sortedAttrs = JSSpec.util.sortHtmlAttrs(JSSpec.util.correctHtmlAttrQuotation(attrs).toLowerCase()) + return "<" + closingMark + tagName.toLowerCase() + sortedAttrs + ">" + }); + + // validation self-closing tags + html = html.replace(/<(br|hr|img)([^>]*?)>/mg, function(str, tag, attrs) { + return "<" + tag + attrs + " />"; + }); + + // append semi-colon at the end of style value + html = html.replace(/style="(.*?)"/mg, function(str, styleStr) { + styleStr = JSSpec.util.sortStyleEntries(styleStr.strip()); // for Safari + if(styleStr.charAt(styleStr.length - 1) != ';') styleStr += ";" + + return 'style="' + styleStr + '"' + }); + + // sort style entries + + // remove empty style attributes + html = html.replace(/ style=";"/mg, ""); + + // remove new-lines + html = html.replace(/\r/mg, ''); + html = html.replace(/\n/mg, ''); + + return html; + } +}; + + +JSSpec.DSL.describe = function(context, entries, base) { + if(base) { + for(var i = 0; i < JSSpec.specs.length; i++) { + if(JSSpec.specs[i].context === base) { + base = JSSpec.specs[i]; + break; + } + } + + for(var i = 0; i < base.examples.length; i++) { + var example = base.examples[i]; + + if(!entries[example.name]) entries[example.name] = example.target; + } + } + + JSSpec.specs.push(new JSSpec.Spec(context, entries)); +}; + +JSSpec.DSL.value_of = function(target) { + if(JSSpec._secondPass) return {}; + + var subject = new JSSpec.DSL.Subject(target); + return subject; +}; + +JSSpec.DSL.Subject = function(target) { + this.target = target; +}; + +JSSpec.DSL.Subject.prototype._type = 'Subject'; + +JSSpec.DSL.Subject.prototype.should_fail = function(message) { + JSSpec._assertionFailure = {message:message}; + throw JSSpec._assertionFailure; +}; + +JSSpec.DSL.Subject.prototype.should_be = function(expected) { + var matcher = JSSpec.EqualityMatcher.createInstance(expected, this.target); + if(!matcher.matches()) { + JSSpec._assertionFailure = {message:matcher.explain()}; + throw JSSpec._assertionFailure; + } +}; + +JSSpec.DSL.Subject.prototype.should_not_be = function(expected) { + // TODO JSSpec.EqualityMatcher should support 'condition' + var matcher = JSSpec.EqualityMatcher.createInstance(expected, this.target); + if(matcher.matches()) { + JSSpec._assertionFailure = {message:"'" + this.target + "' should not be '" + expected + "'"}; + throw JSSpec._assertionFailure; + } +}; + +JSSpec.DSL.Subject.prototype.should_be_empty = function() { + this.should_have(0, this.getType() == 'String' ? 'characters' : 'items'); +}; + +JSSpec.DSL.Subject.prototype.should_not_be_empty = function() { + this.should_have_at_least(1, this.getType() == 'String' ? 'characters' : 'items'); +}; + +JSSpec.DSL.Subject.prototype.should_be_true = function() { + this.should_be(true); +}; + +JSSpec.DSL.Subject.prototype.should_be_false = function() { + this.should_be(false); +}; + +JSSpec.DSL.Subject.prototype.should_be_null = function() { + this.should_be(null); +}; + +JSSpec.DSL.Subject.prototype.should_be_undefined = function() { + this.should_be(undefined); +}; + +JSSpec.DSL.Subject.prototype.should_not_be_null = function() { + this.should_not_be(null); +}; + +JSSpec.DSL.Subject.prototype.should_not_be_undefined = function() { + this.should_not_be(undefined); +}; + +JSSpec.DSL.Subject.prototype._should_have = function(num, property, condition) { + var matcher = JSSpec.PropertyLengthMatcher.createInstance(num, property, this.target, condition); + if(!matcher.matches()) { + JSSpec._assertionFailure = {message:matcher.explain()}; + throw JSSpec._assertionFailure; + } +}; + +JSSpec.DSL.Subject.prototype.should_have = function(num, property) { + this._should_have(num, property, "exactly"); +}; + +JSSpec.DSL.Subject.prototype.should_have_exactly = function(num, property) { + this._should_have(num, property, "exactly"); +}; + +JSSpec.DSL.Subject.prototype.should_have_at_least = function(num, property) { + this._should_have(num, property, "at least"); +}; + +JSSpec.DSL.Subject.prototype.should_have_at_most = function(num, property) { + this._should_have(num, property, "at most"); +}; + +JSSpec.DSL.Subject.prototype.should_include = function(expected) { + var matcher = JSSpec.IncludeMatcher.createInstance(this.target, expected, true); + if(!matcher.matches()) { + JSSpec._assertionFailure = {message:matcher.explain()}; + throw JSSpec._assertionFailure; + } +}; + +JSSpec.DSL.Subject.prototype.should_not_include = function(expected) { + var matcher = JSSpec.IncludeMatcher.createInstance(this.target, expected, false); + if(!matcher.matches()) { + JSSpec._assertionFailure = {message:matcher.explain()}; + throw JSSpec._assertionFailure; + } +}; + +JSSpec.DSL.Subject.prototype.should_match = function(pattern) { + var matcher = JSSpec.PatternMatcher.createInstance(this.target, pattern, true); + if(!matcher.matches()) { + JSSpec._assertionFailure = {message:matcher.explain()}; + throw JSSpec._assertionFailure; + } +} +JSSpec.DSL.Subject.prototype.should_not_match = function(pattern) { + var matcher = JSSpec.PatternMatcher.createInstance(this.target, pattern, false); + if(!matcher.matches()) { + JSSpec._assertionFailure = {message:matcher.explain()}; + throw JSSpec._assertionFailure; + } +}; + +JSSpec.DSL.Subject.prototype.getType = function() { + if(typeof this.target == 'undefined') { + return 'undefined'; + } else if(this.target == null) { + return 'null'; + } else if(this.target._type) { + return this.target._type; + } else if(JSSpec.util.isDomNode(this.target)) { + return 'DomNode'; + } else { + return 'object'; + } +}; + +/** + * Utilities + */ +JSSpec.util = { + escapeTags: function(string) { + return string.replace(//img, '>'); + }, + escapeMetastring: function(string) { + return string.replace(/\r/img, '\\r').replace(/\n/img, '\\n').replace(/\¶\;\/img, '\\n').replace(/\t/img, '\\t'); + }, + parseOptions: function(defaults) { + var options = defaults; + + var url = location.href; + var queryIndex = url.indexOf('?'); + if(queryIndex == -1) return options; + + var query = url.substring(queryIndex + 1).split('#')[0]; + var pairs = query.split('&'); + for(var i = 0; i < pairs.length; i++) { + var tokens = pairs[i].split('='); + options[tokens[0]] = tokens[1]; + } + + return options; + }, + correctHtmlAttrQuotation: function(html) { + html = html.replace(/(\w+)=['"]([^'"]+)['"]/mg,function (str, name, value) {return name + '=' + '"' + value + '"';}); + html = html.replace(/(\w+)=([^ '"]+)/mg,function (str, name, value) {return name + '=' + '"' + value + '"';}); + html = html.replace(/'/mg, '"'); + + return html; + }, + sortHtmlAttrs: function(html) { + var attrs = []; + html.replace(/((\w+)="[^"]+")/mg, function(str, matched) { + attrs.push(matched); + }); + return attrs.length == 0 ? "" : " " + attrs.sort().join(" "); + }, + sortStyleEntries: function(styleText) { + var entries = styleText.split(/; /); + return entries.sort().join("; "); + }, + escapeHtml: function(str) { + if(!this._div) { + this._div = document.createElement("DIV"); + this._text = document.createTextNode(''); + this._div.appendChild(this._text); + } + this._text.data = str; + return this._div.innerHTML; + }, + isDomNode: function(o) { + // TODO: make it more stricter + return (typeof o.nodeName == 'string') && (typeof o.nodeType == 'number'); + }, + inspectDomPath: function(o) { + var sb = []; + while(o && o.nodeName != '#document' && o.parent) { + var siblings = o.parentNode.childNodes; + for(var i = 0; i < siblings.length; i++) { + if(siblings[i] == o) { + sb.push(o.nodeName + (i == 0 ? '' : '[' + i + ']')); + break; + } + } + o = o.parentNode; + } + return sb.join(" > "); + }, + inspectDomNode: function(o) { + if(o.nodeType == 1) { + var nodeName = o.nodeName.toLowerCase(); + var sb = []; + sb.push(''); + sb.push("<"); + sb.push(nodeName); + + var attrs = o.attributes; + for(var i = 0; i < attrs.length; i++) { + if( + attrs[i].nodeValue && + attrs[i].nodeName != 'contentEditable' && + attrs[i].nodeName != 'style' && + typeof attrs[i].nodeValue != 'function' + ) sb.push(' ' + attrs[i].nodeName.toLowerCase() + '="' + attrs[i].nodeValue + '"'); + } + if(o.style && o.style.cssText) { + sb.push(' style="' + o.style.cssText + '"'); + } + sb.push('>'); + sb.push(JSSpec.util.escapeHtml(o.innerHTML)); + sb.push('</' + nodeName + '>'); + sb.push(' (' + JSSpec.util.inspectDomPath(o) + ')' ); + sb.push(''); + return sb.join(""); + } else if(o.nodeType == 3) { + return '#text ' + o.nodeValue + ''; + } else { + return 'UnknownDomNode'; + } + }, + inspect: function(o, dontEscape, emphasisKey) { + var sb, inspected; + + if(typeof o == 'undefined') return 'undefined'; + if(o == null) return 'null'; + if(o._type == 'String') return '"' + (dontEscape ? JSSpec.util.escapeMetastring(o) : JSSpec.util.escapeHtml(JSSpec.util.escapeMetastring(o))) + '"'; + + if(o._type == 'Date') { + return '"' + o.toString() + '"'; + } + + if(o._type == 'Number') return '' + (dontEscape ? o : JSSpec.util.escapeHtml(o)) + ''; + + if(o._type == 'Boolean') return '' + o + ''; + + if(o._type == 'RegExp') return '' + JSSpec.util.escapeHtml(o.toString()) + ''; + + if(JSSpec.util.isDomNode(o)) return JSSpec.util.inspectDomNode(o); + + if(o._type == 'Array' || typeof o.length != 'undefined') { + sb = []; + for(var i = 0; i < o.length; i++) { + inspected = JSSpec.util.inspect(o[i]); + sb.push(i == emphasisKey ? ('' + inspected + '') : inspected); + } + return '[' + sb.join(', ') + ']'; + } + + // object + sb = []; + for(var key in o) { + if(key == 'should') continue; + + inspected = JSSpec.util.inspect(key) + ":" + JSSpec.util.inspect(o[key]); + sb.push(key == emphasisKey ? ('' + inspected + '') : inspected); + } + return '{' + sb.join(', ') + '}'; + } +}; + +describe = JSSpec.DSL.describe; +behavior_of = JSSpec.DSL.describe; +value_of = JSSpec.DSL.value_of; +expect = JSSpec.DSL.value_of; // @deprecated + +String.prototype._type = "String"; +Number.prototype._type = "Number"; +Date.prototype._type = "Date"; +Array.prototype._type = "Array"; +Boolean.prototype._type = "Boolean"; +RegExp.prototype._type = "RegExp"; + +var targets = [Array.prototype, Date.prototype, Number.prototype, String.prototype, Boolean.prototype, RegExp.prototype]; + +String.prototype.normalizeHtml = JSSpec.DSL.forString.normalizeHtml; +String.prototype.asHtml = String.prototype.normalizeHtml; //@deprecated +String.prototype.strip = function() {return this.replace(/^\s+/, '').replace(/\s+$/, '');} + + +/** + * Main + */ +JSSpec.defaultOptions = { + autorun: 1, + specIdBeginsWith: 0, + exampleIdBeginsWith: 0, + autocollapse: 1 +}; +JSSpec.options = JSSpec.util.parseOptions(JSSpec.defaultOptions); + +JSSpec.Spec.id = JSSpec.options.specIdBeginsWith; +JSSpec.Example.id = JSSpec.options.exampleIdBeginsWith; + + + +window.onload = function() { + if(JSSpec.specs.length > 0) { + if(!JSSpec.options.inSuite) { + JSSpec.runner = new JSSpec.Runner(JSSpec.specs, new JSSpec.Logger()); + if(JSSpec.options.rerun) { + JSSpec.runner.rerun(decodeURIComponent(JSSpec.options.rerun)); + } else { + JSSpec.runner.run(); + } + } else { + // in suite, send all specs to parent + var parentWindow = window.frames.parent.window; + for(var i = 0; i < JSSpec.specs.length; i++) { + parentWindow.JSSpec.specs.push(JSSpec.specs[i]); + } + } + } else { + var links = document.getElementById('list').getElementsByTagName('A'); + var frameContainer = document.createElement('DIV'); + frameContainer.style.display = 'none'; + document.body.appendChild(frameContainer); + + for(var i = 0; i < links.length; i++) { + var frame = document.createElement('IFRAME'); + frame.src = links[i].href + '?inSuite=0&specIdBeginsWith=' + (i * 10000) + '&exampleIdBeginsWith=' + (i * 10000); + frameContainer.appendChild(frame); + } + } +} \ No newline at end of file diff --git a/common/js/unittest/JSSpec/demo.html b/common/js/unittest/JSSpec/demo.html new file mode 100644 index 000000000..21a097111 --- /dev/null +++ b/common/js/unittest/JSSpec/demo.html @@ -0,0 +1,210 @@ + + + + +JSSpec results + + + + + +

    A

    B

    + diff --git a/common/js/unittest/JSSpec/diff_match_patch.js b/common/js/unittest/JSSpec/diff_match_patch.js new file mode 100644 index 000000000..885e051dd --- /dev/null +++ b/common/js/unittest/JSSpec/diff_match_patch.js @@ -0,0 +1 @@ +function diff_match_patch(){this.Diff_Timeout=1.0;this.Diff_EditCost=4;this.Diff_DualThreshold=32;this.Match_Balance=0.5;this.Match_Threshold=0.5;this.Match_MinLength=100;this.Match_MaxLength=1000;this.Patch_Margin=4;function getMaxBits(){var maxbits=0;var oldi=1;var newi=2;while(oldi!=newi){maxbits++;oldi=newi;newi=newi<<1}return maxbits}this.Match_MaxBits=getMaxBits()}var DIFF_DELETE=-1;var DIFF_INSERT=1;var DIFF_EQUAL=0;diff_match_patch.prototype.diff_main=function(text1,text2,opt_checklines){if(text1==text2){return[[DIFF_EQUAL,text1]]}if(typeof opt_checklines=='undefined'){opt_checklines=true}var checklines=opt_checklines;var commonlength=this.diff_commonPrefix(text1,text2);var commonprefix=text1.substring(0,commonlength);text1=text1.substring(commonlength);text2=text2.substring(commonlength);commonlength=this.diff_commonSuffix(text1,text2);var commonsuffix=text1.substring(text1.length-commonlength);text1=text1.substring(0,text1.length-commonlength);text2=text2.substring(0,text2.length-commonlength);var diffs=this.diff_compute(text1,text2,checklines);if(commonprefix){diffs.unshift([DIFF_EQUAL,commonprefix])}if(commonsuffix){diffs.push([DIFF_EQUAL,commonsuffix])}this.diff_cleanupMerge(diffs);return diffs};diff_match_patch.prototype.diff_compute=function(text1,text2,checklines){var diffs;if(!text1){return[[DIFF_INSERT,text2]]}if(!text2){return[[DIFF_DELETE,text1]]}var longtext=text1.length>text2.length?text1:text2;var shorttext=text1.length>text2.length?text2:text1;var i=longtext.indexOf(shorttext);if(i!=-1){diffs=[[DIFF_INSERT,longtext.substring(0,i)],[DIFF_EQUAL,shorttext],[DIFF_INSERT,longtext.substring(i+shorttext.length)]];if(text1.length>text2.length){diffs[0][0]=diffs[2][0]=DIFF_DELETE}return diffs}longtext=shorttext=null;var hm=this.diff_halfMatch(text1,text2);if(hm){var text1_a=hm[0];var text1_b=hm[1];var text2_a=hm[2];var text2_b=hm[3];var mid_common=hm[4];var diffs_a=this.diff_main(text1_a,text2_a,checklines);var diffs_b=this.diff_main(text1_b,text2_b,checklines);return diffs_a.concat([[DIFF_EQUAL,mid_common]],diffs_b)}if(checklines&&text1.length+text2.length<250){checklines=false}var linearray;if(checklines){var a=this.diff_linesToChars(text1,text2);text1=a[0];text2=a[1];linearray=a[2]}diffs=this.diff_map(text1,text2);if(!diffs){diffs=[[DIFF_DELETE,text1],[DIFF_INSERT,text2]]}if(checklines){this.diff_charsToLines(diffs,linearray);this.diff_cleanupSemantic(diffs);diffs.push([DIFF_EQUAL,'']);var pointer=0;var count_delete=0;var count_insert=0;var text_delete='';var text_insert='';while(pointer=1&&count_insert>=1){var a=this.diff_main(text_delete,text_insert,false);diffs.splice(pointer-count_delete-count_insert,count_delete+count_insert);pointer=pointer-count_delete-count_insert;for(var j=a.length-1;j>=0;j--){diffs.splice(pointer,0,a[j])}pointer=pointer+a.length}count_insert=0;count_delete=0;text_delete='';text_insert=''}pointer++}diffs.pop()}return diffs};diff_match_patch.prototype.diff_linesToChars=function(text1,text2){var linearray=[];var linehash={};linearray.push('');function diff_linesToCharsMunge(text){var chars='';while(text){var i=text.indexOf('\n');if(i==-1){i=text.length}var line=text.substring(0,i+1);text=text.substring(i+1);if(linehash.hasOwnProperty?linehash.hasOwnProperty(line):(linehash[line]!==undefined)){chars+=String.fromCharCode(linehash[line])}else{linearray.push(line);linehash[line]=linearray.length-1;chars+=String.fromCharCode(linearray.length-1)}}return chars}var chars1=diff_linesToCharsMunge(text1);var chars2=diff_linesToCharsMunge(text2);return[chars1,chars2,linearray]};diff_match_patch.prototype.diff_charsToLines=function(diffs,linearray){for(var x=0;x0&&(new Date()).getTime()>ms_end){return null}v_map1[d]={};for(var k=-d;k<=d;k+=2){if(k==-d||k!=d&&v1[k-1]=0;d--){while(1){if(v_map[d].hasOwnProperty?v_map[d].hasOwnProperty((x-1)+','+y):(v_map[d][(x-1)+','+y]!==undefined)){x--;if(last_op===DIFF_DELETE){path[0][1]=text1.charAt(x)+path[0][1]}else{path.unshift([DIFF_DELETE,text1.charAt(x)])}last_op=DIFF_DELETE;break}else if(v_map[d].hasOwnProperty?v_map[d].hasOwnProperty(x+','+(y-1)):(v_map[d][x+','+(y-1)]!==undefined)){y--;if(last_op===DIFF_INSERT){path[0][1]=text2.charAt(y)+path[0][1]}else{path.unshift([DIFF_INSERT,text2.charAt(y)])}last_op=DIFF_INSERT;break}else{x--;y--;if(last_op===DIFF_EQUAL){path[0][1]=text1.charAt(x)+path[0][1]}else{path.unshift([DIFF_EQUAL,text1.charAt(x)])}last_op=DIFF_EQUAL}}}return path};diff_match_patch.prototype.diff_path2=function(v_map,text1,text2){var path=[];var x=text1.length;var y=text2.length;var last_op=null;for(var d=v_map.length-2;d>=0;d--){while(1){if(v_map[d].hasOwnProperty?v_map[d].hasOwnProperty((x-1)+','+y):(v_map[d][(x-1)+','+y]!==undefined)){x--;if(last_op===DIFF_DELETE){path[path.length-1][1]+=text1.charAt(text1.length-x-1)}else{path.push([DIFF_DELETE,text1.charAt(text1.length-x-1)])}last_op=DIFF_DELETE;break}else if(v_map[d].hasOwnProperty?v_map[d].hasOwnProperty(x+','+(y-1)):(v_map[d][x+','+(y-1)]!==undefined)){y--;if(last_op===DIFF_INSERT){path[path.length-1][1]+=text2.charAt(text2.length-y-1)}else{path.push([DIFF_INSERT,text2.charAt(text2.length-y-1)])}last_op=DIFF_INSERT;break}else{x--;y--;if(last_op===DIFF_EQUAL){path[path.length-1][1]+=text1.charAt(text1.length-x-1)}else{path.push([DIFF_EQUAL,text1.charAt(text1.length-x-1)])}last_op=DIFF_EQUAL}}}return path};diff_match_patch.prototype.diff_commonPrefix=function(text1,text2){if(!text1||!text2||text1.charCodeAt(0)!==text2.charCodeAt(0)){return 0}var pointermin=0;var pointermax=Math.min(text1.length,text2.length);var pointermid=pointermax;var pointerstart=0;while(pointermintext2.length?text1:text2;var shorttext=text1.length>text2.length?text2:text1;if(longtext.length<10||shorttext.length<1){return null}var dmp=this;function diff_halfMatchI(longtext,shorttext,i){var seed=longtext.substring(i,i+Math.floor(longtext.length/4));var j=-1;var best_common='';var best_longtext_a,best_longtext_b,best_shorttext_a,best_shorttext_b;while((j=shorttext.indexOf(seed,j+1))!=-1){var prefixLength=dmp.diff_commonPrefix(longtext.substring(i),shorttext.substring(j));var suffixLength=dmp.diff_commonSuffix(longtext.substring(0,i),shorttext.substring(0,j));if(best_common.length=longtext.length/2){return[best_longtext_a,best_longtext_b,best_shorttext_a,best_shorttext_b,best_common]}else{return null}}var hm1=diff_halfMatchI(longtext,shorttext,Math.ceil(longtext.length/4));var hm2=diff_halfMatchI(longtext,shorttext,Math.ceil(longtext.length/2));var hm;if(!hm1&&!hm2){return null}else if(!hm2){hm=hm1}else if(!hm1){hm=hm2}else{hm=hm1[4].length>hm2[4].length?hm1:hm2}var text1_a,text1_b,text2_a,text2_b;if(text1.length>text2.length){text1_a=hm[0];text1_b=hm[1];text2_a=hm[2];text2_b=hm[3]}else{text2_a=hm[0];text2_b=hm[1];text1_a=hm[2];text1_b=hm[3]}var mid_common=hm[4];return[text1_a,text1_b,text2_a,text2_b,mid_common]};diff_match_patch.prototype.diff_cleanupSemantic=function(diffs){var changes=false;var equalities=[];var lastequality=null;var pointer=0;var length_changes1=0;var length_changes2=0;while(pointer=bestScore){bestScore=score;bestEquality1=equality1;bestEdit=edit;bestEquality2=equality2}}if(diffs[pointer-1][1]!=bestEquality1){diffs[pointer-1][1]=bestEquality1;diffs[pointer][1]=bestEdit;diffs[pointer+1][1]=bestEquality2}}pointer++}};diff_match_patch.prototype.diff_cleanupEfficiency=function(diffs){var changes=false;var equalities=[];var lastequality='';var pointer=0;var pre_ins=false;var pre_del=false;var post_ins=false;var post_del=false;while(pointer0&&diffs[pointer-count_delete-count_insert-1][0]==DIFF_EQUAL){diffs[pointer-count_delete-count_insert-1][1]+=text_insert.substring(0,commonlength)}else{diffs.splice(0,0,[DIFF_EQUAL,text_insert.substring(0,commonlength)]);pointer++}text_insert=text_insert.substring(commonlength);text_delete=text_delete.substring(commonlength)}commonlength=this.diff_commonSuffix(text_insert,text_delete);if(commonlength!==0){diffs[pointer][1]=text_insert.substring(text_insert.length-commonlength)+diffs[pointer][1];text_insert=text_insert.substring(0,text_insert.length-commonlength);text_delete=text_delete.substring(0,text_delete.length-commonlength)}}if(count_delete===0){diffs.splice(pointer-count_delete-count_insert,count_delete+count_insert,[DIFF_INSERT,text_insert])}else if(count_insert===0){diffs.splice(pointer-count_delete-count_insert,count_delete+count_insert,[DIFF_DELETE,text_delete])}else{diffs.splice(pointer-count_delete-count_insert,count_delete+count_insert,[DIFF_DELETE,text_delete],[DIFF_INSERT,text_insert])}pointer=pointer-count_delete-count_insert+(count_delete?1:0)+(count_insert?1:0)+1}else if(pointer!==0&&diffs[pointer-1][0]==DIFF_EQUAL){diffs[pointer-1][1]+=diffs[pointer][1];diffs.splice(pointer,1)}else{pointer++}count_insert=0;count_delete=0;text_delete='';text_insert=''}}if(diffs[diffs.length-1][1]===''){diffs.pop()}var changes=false;pointer=1;while(pointerloc){break}last_chars1=chars1;last_chars2=chars2}if(diffs.length!=x&&diffs[x][0]===DIFF_DELETE){return last_chars2}return last_chars2+(loc-last_chars1)};diff_match_patch.prototype.diff_prettyHtml=function(diffs){this.diff_addIndex(diffs);var html=[];for(var x=0;x/g,'>');t=t.replace(/\n/g,'¶
    ');if(m===DIFF_DELETE){html.push('',t,'')}else if(m===DIFF_INSERT){html.push('',t,'')}else{html.push('',t,'')}}return html.join('')};diff_match_patch.prototype.diff_text1=function(diffs){var txt=[];for(var x=0;xthis.Match_MaxBits){return alert('Pattern too long for this browser.')}var s=this.match_alphabet(pattern);var score_text_length=text.length;score_text_length=Math.max(score_text_length,this.Match_MinLength);score_text_length=Math.min(score_text_length,this.Match_MaxLength);var dmp=this;function match_bitapScore(e,x){var d=Math.abs(loc-x);return(e/pattern.length/dmp.Match_Balance)+(d/score_text_length/(1.0-dmp.Match_Balance))}var score_threshold=this.Match_Threshold;var best_loc=text.indexOf(pattern,loc);if(best_loc!=-1){score_threshold=Math.min(match_bitapScore(0,best_loc),score_threshold)}best_loc=text.lastIndexOf(pattern,loc+pattern.length);if(best_loc!=-1){score_threshold=Math.min(match_bitapScore(0,best_loc),score_threshold)}var matchmask=1<<(pattern.length-1);best_loc=null;var bin_min,bin_mid;var bin_max=Math.max(loc+loc,text.length);var last_rd;for(var d=0;d=start;j--){if(d===0){rd[j]=((rd[j+1]<<1)|1)&s[text.charAt(j)]}else{rd[j]=((rd[j+1]<<1)|1)&s[text.charAt(j)]|((last_rd[j+1]<<1)|1)|((last_rd[j]<<1)|1)|last_rd[j+1]}if(rd[j]&matchmask){var score=match_bitapScore(d,j);if(score<=score_threshold){score_threshold=score;best_loc=j;if(j>loc){start=Math.max(0,loc-(j-loc))}else{break}}}}if(match_bitapScore(d+1,loc)>score_threshold){break}last_rd=rd}return best_loc};diff_match_patch.prototype.match_alphabet=function(pattern){var s=Object();for(var i=0;i2){this.diff_cleanupSemantic(diffs);this.diff_cleanupEfficiency(diffs)}}if(diffs.length===0){return[]}var patches=[];var patch=new patch_obj();var char_count1=0;var char_count2=0;var prepatch_text=text1;var postpatch_text=text1;for(var x=0;x=2*this.Patch_Margin){if(patch.diffs.length!==0){this.patch_addContext(patch,prepatch_text);patches.push(patch);patch=new patch_obj();prepatch_text=postpatch_text}}if(diff_type!==DIFF_INSERT){char_count1+=diff_text.length}if(diff_type!==DIFF_DELETE){char_count2+=diff_text.length}}if(patch.diffs.length!==0){this.patch_addContext(patch,prepatch_text);patches.push(patch)}return patches};diff_match_patch.prototype.patch_apply=function(patches,text){this.patch_splitMax(patches);var results=[];var delta=0;for(var x=0;xthis.Match_MaxBits){var bigpatch=patches[x];patches.splice(x,1);var patch_size=this.Match_MaxBits;var start1=bigpatch.start1;var start2=bigpatch.start2;var precontext='';while(bigpatch.diffs.length!==0){var patch=new patch_obj();var empty=true;patch.start1=start1-precontext.length;patch.start2=start2-precontext.length;if(precontext!==''){patch.length1=patch.length2=precontext.length;patch.diffs.push([DIFF_EQUAL,precontext])}while(bigpatch.diffs.length!==0&&patch.length1 Date: Tue, 16 Dec 2008 08:10:06 +0000 Subject: [PATCH 099/135] =?UTF-8?q?issuetracker=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=9D=B4=EC=8A=88=20=EB=AA=A9=EB=A1=9D=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=EC=9D=98=20=EA=B2=BD=EC=9A=B0=20che?= =?UTF-8?q?ckbox=EB=A5=BC=20=EB=AA=A8=EB=91=90=20=EB=8B=B4=EC=9D=84=20?= =?UTF-8?q?=EC=88=98=20=EC=9E=88=EB=8F=84=EB=A1=9D=20checkbox=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= 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@5097 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/issuetracker/skins/xe_issuetracker/issue_list.html | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/issuetracker/skins/xe_issuetracker/issue_list.html b/modules/issuetracker/skins/xe_issuetracker/issue_list.html index a4d8341b4..1563d76d2 100644 --- a/modules/issuetracker/skins/xe_issuetracker/issue_list.html +++ b/modules/issuetracker/skins/xe_issuetracker/issue_list.html @@ -111,7 +111,12 @@ -
    {$v->title}
    + +
    + + {$v->title} +
    + From 999f3d36fc1b1e89e63a51b48f43e718b1c328c1 Mon Sep 17 00:00:00 2001 From: zero Date: Tue, 16 Dec 2008 09:16:16 +0000 Subject: [PATCH 100/135] =?UTF-8?q?issueTracker=EC=97=90=20permanent=20?= =?UTF-8?q?=EB=A7=81=ED=81=AC=EB=A1=9C=20=EC=A7=81=EC=A0=91=20=EC=A0=91?= =?UTF-8?q?=EC=86=8D=EC=8B=9C=EC=97=90=20=EC=9D=B4=EC=8A=88=20=EB=B3=B4?= =?UTF-8?q?=EB=8A=94=20=ED=8E=98=EC=9D=B4=EC=A7=80=EB=A1=9C=20act=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EB=B3=80=EA=B2=BD?= 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@5098 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/issuetracker/issuetracker.view.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/issuetracker/issuetracker.view.php b/modules/issuetracker/issuetracker.view.php index 313b363f4..30fd7d65d 100644 --- a/modules/issuetracker/issuetracker.view.php +++ b/modules/issuetracker/issuetracker.view.php @@ -74,6 +74,11 @@ } Context::set('display_option', $display_option); + if(Context::get('document_srl')) { + $this->act = 'dispIssuetrackerViewIssue'; + Context::set('act','dispIssuetrackerViewIssue'); + } + if(!Context::get('act')) Context::set('act','dispIssuetrackerViewMilestone'); } From 82210cf968c0a2468b90f5bf0104abdfa892ad72 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 17 Dec 2008 02:33:13 +0000 Subject: [PATCH 101/135] =?UTF-8?q?XMLRPC,=20JSON=20=EB=93=B1=EC=9D=98=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=EC=8B=9C=EC=97=90=20stripslashes()=ED=95=A8?= =?UTF-8?q?=EC=88=98=EA=B0=80=20=EB=8F=99=EC=9E=91=ED=95=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EA=B2=8C=20=ED=95=98=EC=97=AC=20=EB=82=B4=EC=9A=A9?= =?UTF-8?q?=EC=A4=91=20=EC=97=AD=EC=8A=AC=EB=9E=98=EC=8B=9C(\\)=EA=B0=80?= =?UTF-8?q?=20=EC=82=AC=EC=9E=90=EB=A6=AC=EC=A7=80=20=EC=95=8A=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95?= 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@5099 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/context/Context.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index b617c6e9b..6e5ed3695 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -573,7 +573,7 @@ parse_str($GLOBALS['HTTP_RAW_POST_DATA'],$params); foreach($params as $key => $val) { - $val = $this->_filterRequestVar($key, $val); + $val = $this->_filterRequestVar($key, $val,0); $this->_set($key, $val, true); } } @@ -592,7 +592,7 @@ unset($params->attrs); if(!count($params)) return; foreach($params as $key => $obj) { - $val = $this->_filterRequestVar($key, $obj->body); + $val = $this->_filterRequestVar($key, $obj->body,0); $this->_set($key, $val, true); } } @@ -601,16 +601,16 @@ * @brief 변수명에 따라서 필터링 처리 * _srl, page, cpage등의 변수는 integer로 형변환 **/ - function _filterRequestVar($key, $val) { + function _filterRequestVar($key, $val, $do_stripslashes = 1) { if( ($key == "page" || $key == "cpage" || substr($key,-3)=="srl")) return !preg_match('/^[0-9,]+$/',$val)?(int)$val:$val; if(is_array($val) && count($val) ) { foreach($val as $k => $v) { - if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $v = stripslashes($v); + if($do_stripslashes && version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $v = stripslashes($v); $v = trim($v); $val[$k] = $v; } } else { - if(version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $val = stripslashes($val); + if($do_stripslashes && version_compare(PHP_VERSION, "5.9.0", "<") && get_magic_quotes_gpc()) $val = stripslashes($val); $val = trim($val); } return $val; From 9ac6a5a64df08c1094589a0b04647af138536dc0 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 17 Dec 2008 02:59:38 +0000 Subject: [PATCH 102/135] =?UTF-8?q?MySQL=EC=97=90=EC=84=9C=20index=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=EC=8B=9C=20=ED=95=98=EB=82=98=EC=9D=98=20?= =?UTF-8?q?=EC=9D=B8=EB=8D=B1=EC=8A=A4=EB=A7=8C=20=EC=9E=88=EC=9D=84?= =?UTF-8?q?=EB=95=8C=20=EC=98=A4=EB=A5=98=EA=B0=80=20=EB=82=98=EB=8A=94=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=20=EC=88=98=EC=A0=95?= 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@5100 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DBFirebird.class.php | 3 ++- classes/db/DBMysql.class.php | 2 ++ classes/db/DBMysql_innodb.class.php | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/classes/db/DBFirebird.class.php b/classes/db/DBFirebird.class.php index bee644159..d3facb5be 100644 --- a/classes/db/DBFirebird.class.php +++ b/classes/db/DBFirebird.class.php @@ -450,7 +450,8 @@ $output = $this->_fetch($result); //commit(); @ibase_commit($this->fd); - + if(!$output) return; + if(!is_array($output)) $output = array($output); for($i=0;$iKEY_NAME) == $index_name) return true; } diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index 74a2a9881..dee547f95 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -278,6 +278,8 @@ $result = $this->_query($query); if($this->isError()) return; $output = $this->_fetch($result); + if(!$output) return; + if(!is_array($output)) $output = array($output); for($i=0;$iKey_name == $index_name) return true; diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php index 6af639392..f9cfa704e 100644 --- a/classes/db/DBMysql_innodb.class.php +++ b/classes/db/DBMysql_innodb.class.php @@ -287,6 +287,8 @@ $result = $this->_query($query); if($this->isError()) return; $output = $this->_fetch($result); + if(!$output) return; + if(!is_array($output)) $output = array($output); for($i=0;$iKey_name == $index_name) return true; From 7cbc482c25c76db68b19588f99b0208458b82ab8 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 17 Dec 2008 04:39:41 +0000 Subject: [PATCH 103/135] =?UTF-8?q?#17551069=20=EC=88=98=EC=A0=95?= 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@5101 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/issuetracker/skins/xe_issuetracker/timeline.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/issuetracker/skins/xe_issuetracker/timeline.html b/modules/issuetracker/skins/xe_issuetracker/timeline.html index 394e57774..5911bf58c 100644 --- a/modules/issuetracker/skins/xe_issuetracker/timeline.html +++ b/modules/issuetracker/skins/xe_issuetracker/timeline.html @@ -15,7 +15,7 @@ {zdate($changeset->date,"H:i")} {@ $oIssue = $issues[$changeset->target_srl]; } - Issue #{$changeset->target_srl} ({$issues[$changeset->target_srl]->getTitleText(30)}) by {$changeset->author} + Issue #{$changeset->target_srl} ({htmlspecialchars($issues[$changeset->target_srl]->getTitleText(30))}) by {$changeset->author} Changeset [{$changeset->revision}] by {$changeset->author} From cf91699c4ff17c34f2e06ea527e2cb3283f149f1 Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 17 Dec 2008 05:28:25 +0000 Subject: [PATCH 104/135] bug fix git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5103 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/document/document.class.php | 2 +- modules/document/document.model.php | 2 +- .../queries/getDocumentListWithinTag.xml | 2 +- modules/document/queries/getDocuments.xml | 2 +- modules/document/tpl/checked_list.html | 4 ++ modules/editor/tpl/editor_module_config.html | 47 +++++++++++++++---- modules/member/lang/en.lang.php | 4 ++ modules/member/lang/es.lang.php | 4 ++ modules/member/lang/fr.lang.php | 4 ++ modules/member/lang/jp.lang.php | 4 ++ modules/member/lang/ko.lang.php | 4 ++ modules/member/lang/ru.lang.php | 4 ++ modules/member/lang/zh-CN.lang.php | 4 ++ modules/member/lang/zh-TW.lang.php | 4 ++ modules/member/member.admin.model.php | 16 ++++++- modules/member/queries/getMemberList.xml | 4 ++ .../queries/getMemberListWithinGroup.xml | 4 ++ 17 files changed, 101 insertions(+), 14 deletions(-) diff --git a/modules/document/document.class.php b/modules/document/document.class.php index 4d78963b3..feeb4f7fa 100644 --- a/modules/document/document.class.php +++ b/modules/document/document.class.php @@ -224,7 +224,7 @@ if($logged_info->is_admin=='Y') return true; $actions = array('procDocumentAdminAddCart','dispDocumentAdminManageDocument','procDocumentAdminManageCheckedDocument'); - if(!in_array($this->act, $actions)) return false; + if(in_array($this->act, $actions)) return true; $oModuleModel = &getModel('module'); if($oModuleModel->isSiteAdmin()) return true; diff --git a/modules/document/document.model.php b/modules/document/document.model.php index a9c58f536..1afa5a3e6 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -330,7 +330,7 @@ $target_args->document_srls = implode(',',$target_srls); $target_args->list_order = $args->sort_index; - $target_args->order = $args->order_type; + $target_args->order_type = $args->order_type; $target_args->list_count = $args->list_count; $target_args->page = 1; $output = executeQueryArray('document.getDocuments', $target_args); diff --git a/modules/document/queries/getDocumentListWithinTag.xml b/modules/document/queries/getDocumentListWithinTag.xml index 2f747c613..d6f0441b3 100644 --- a/modules/document/queries/getDocumentListWithinTag.xml +++ b/modules/document/queries/getDocumentListWithinTag.xml @@ -14,7 +14,7 @@ - + diff --git a/modules/document/queries/getDocuments.xml b/modules/document/queries/getDocuments.xml index e4e73f82f..61e2110a9 100644 --- a/modules/document/queries/getDocuments.xml +++ b/modules/document/queries/getDocuments.xml @@ -9,7 +9,7 @@ - + diff --git a/modules/document/tpl/checked_list.html b/modules/document/tpl/checked_list.html index c17c67b1f..7179975d9 100644 --- a/modules/document/tpl/checked_list.html +++ b/modules/document/tpl/checked_list.html @@ -63,8 +63,12 @@
    + + {$lang->cmd_move} {$lang->cmd_copy} + + {$lang->cmd_delete} {$lang->cmd_close} diff --git a/modules/editor/tpl/editor_module_config.html b/modules/editor/tpl/editor_module_config.html index df600602d..8ec54ec8a 100644 --- a/modules/editor/tpl/editor_module_config.html +++ b/modules/editor/tpl/editor_module_config.html @@ -14,7 +14,7 @@ - +
    {$lang->editor_skin}
    enable_html_grant))-->checked="checked"/>
    + + + + enable_comment_html_grant))-->checked="checked"/>
    + + + + +

    {$lang->about_enable_html_grant}

    - +
    {$lang->upload_file_grant}
    upload_file_grant))-->checked="checked"/>
    + + + + comment_upload_file_grant))-->checked="checked"/>
    + + + +

    {$lang->about_upload_file_grant}

    - +
    {$lang->enable_default_component_grant}
    enable_default_component_grant))-->checked="checked"/>
    + + enable_comment_default_component_grant))-->checked="checked"/>
    + + + +

    {$lang->about_default_component_grant}

    - +
    {$lang->enable_component_grant}
    enable_component_grant))-->checked="checked"/>
    + + + + enable_comment_component_grant))-->checked="checked"/>
    + + + +

    {$lang->about_component_grant}

    - +
    {$lang->editor_height}
    px @@ -120,14 +151,14 @@

    {$lang->about_editor_height}

    - +
    {$lang->enable_autosave}
    enable_autosave=='Y')-->checked="checked"/>

    {$lang->about_enable_autosave}

    - + diff --git a/modules/member/lang/en.lang.php b/modules/member/lang/en.lang.php index 4877d4b5e..4fbdd9749 100644 --- a/modules/member/lang/en.lang.php +++ b/modules/member/lang/en.lang.php @@ -73,7 +73,11 @@ 'nick_name' => 'Nickname', 'email_address' => 'Email Address', 'regdate' => 'Join Date', + 'regdate_more' => '가입일시(이상)', + 'regdate_less' => '가입일시(이하)', 'last_login' => 'Last Login Date', + 'last_login_more' => '최근로그인일시(이상)', + 'last_login_less' => '최근로그인일시(이하)', 'extra_vars' => 'Extra Vars', ); diff --git a/modules/member/lang/es.lang.php b/modules/member/lang/es.lang.php index aa1646a19..823337997 100644 --- a/modules/member/lang/es.lang.php +++ b/modules/member/lang/es.lang.php @@ -72,7 +72,11 @@ 'nick_name' => 'Apodo', 'email_address' => 'Dirección de Email', 'regdate' => 'Fecha del registro', + 'regdate_more' => '가입일시(이상)', + 'regdate_less' => '가입일시(이하)', 'last_login' => 'Fecha de su última conección', + 'last_login_more' => '최근로그인일시(이상)', + 'last_login_less' => '최근로그인일시(이하)', 'extra_vars' => 'Variables Extra', ); diff --git a/modules/member/lang/fr.lang.php b/modules/member/lang/fr.lang.php index 07e888fc7..2ce4d94c4 100644 --- a/modules/member/lang/fr.lang.php +++ b/modules/member/lang/fr.lang.php @@ -73,7 +73,11 @@ 'nick_name' => 'Surnom', 'email_address' => 'Mél', 'regdate' => 'Jour d\'Inscription', + 'regdate_more' => '가입일시(이상)', + 'regdate_less' => '가입일시(이하)', 'last_login' => 'Jour de la connexion dernière', + 'last_login_more' => '최근로그인일시(이상)', + 'last_login_less' => '최근로그인일시(이하)', 'extra_vars' => 'Variables additionnels ', ); diff --git a/modules/member/lang/jp.lang.php b/modules/member/lang/jp.lang.php index d4ed92a91..a375fb18a 100644 --- a/modules/member/lang/jp.lang.php +++ b/modules/member/lang/jp.lang.php @@ -73,7 +73,11 @@ 'nick_name' => 'ニックネーム', 'email_address' => 'メールアドレス', 'regdate' => '加入日', + 'regdate_more' => '가입일시(이상)', + 'regdate_less' => '가입일시(이하)', 'last_login' => '最近のログイン', + 'last_login_more' => '최근로그인일시(이상)', + 'last_login_less' => '최근로그인일시(이하)', 'extra_vars' => '拡張変数', ); diff --git a/modules/member/lang/ko.lang.php b/modules/member/lang/ko.lang.php index bad678e07..96b5d7dc2 100644 --- a/modules/member/lang/ko.lang.php +++ b/modules/member/lang/ko.lang.php @@ -73,7 +73,11 @@ 'nick_name' => '닉네임', 'email_address' => '메일주소', 'regdate' => '가입일시', + 'regdate_more' => '가입일시(이상)', + 'regdate_less' => '가입일시(이하)', 'last_login' => '최근로그인일시', + 'last_login_more' => '최근로그인일시(이상)', + 'last_login_less' => '최근로그인일시(이하)', 'extra_vars' => '확장변수', ); diff --git a/modules/member/lang/ru.lang.php b/modules/member/lang/ru.lang.php index af6e11855..66ee8a9b8 100644 --- a/modules/member/lang/ru.lang.php +++ b/modules/member/lang/ru.lang.php @@ -71,7 +71,11 @@ 'nick_name' => 'Ник', 'email_address' => 'Email', 'regdate' => 'Дата регистрации', + 'regdate_more' => '가입일시(이상)', + 'regdate_less' => '가입일시(이하)', 'last_login' => 'Дата последнего входа', + 'last_login_more' => '최근로그인일시(이상)', + 'last_login_less' => '최근로그인일시(이하)', 'extra_vars' => 'Экстра перем.', ); diff --git a/modules/member/lang/zh-CN.lang.php b/modules/member/lang/zh-CN.lang.php index 356f40ab0..f8cfcfeb2 100644 --- a/modules/member/lang/zh-CN.lang.php +++ b/modules/member/lang/zh-CN.lang.php @@ -73,7 +73,11 @@ 'nick_name' => '昵称', 'email_address' => '邮箱地址', 'regdate' => '注册日期', + 'regdate_more' => '가입일시(이상)', + 'regdate_less' => '가입일시(이하)', 'last_login' => '最近登录', + 'last_login_more' => '최근로그인일시(이상)', + 'last_login_less' => '최근로그인일시(이하)', 'extra_vars' => '扩展变数', ); diff --git a/modules/member/lang/zh-TW.lang.php b/modules/member/lang/zh-TW.lang.php index d50458b6c..9e4186c8e 100644 --- a/modules/member/lang/zh-TW.lang.php +++ b/modules/member/lang/zh-TW.lang.php @@ -73,7 +73,11 @@ 'nick_name' => '暱稱', 'email_address' => '郵件地址', 'regdate' => '註冊日期', + 'regdate_more' => '가입일시(이상)', + 'regdate_less' => '가입일시(이하)', 'last_login' => '最近登入', + 'last_login_more' => '최근로그인일시(이상)', + 'last_login_less' => '최근로그인일시(이하)', 'extra_vars' => '延伸變數', ); diff --git a/modules/member/member.admin.model.php b/modules/member/member.admin.model.php index 40e294adb..5f5f8b14a 100644 --- a/modules/member/member.admin.model.php +++ b/modules/member/member.admin.model.php @@ -51,13 +51,25 @@ $args->s_email_address = $search_keyword; break; case 'regdate' : - $args->s_regdate = $search_keyword; + $args->s_regdate = ereg_replace("[^0-9]","",$search_keyword); + break; + case 'regdate_more' : + $args->s_regdate_more = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14); + break; + case 'regdate_less' : + $args->s_regdate_less = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14); break; case 'last_login' : $args->s_last_login = $search_keyword; break; + case 'last_login_more' : + $args->s_last_login_more = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14); + break; + case 'last_login_less' : + $args->s_last_login_less = substr(ereg_replace("[^0-9]","",$search_keyword) . '00000000000000',0,14); + break; case 'extra_vars' : - $args->s_extra_vars = $search_keyword; + $args->s_extra_vars = ereg_replace("[^0-9]","",$search_keyword); break; } } diff --git a/modules/member/queries/getMemberList.xml b/modules/member/queries/getMemberList.xml index 97bd4c0d1..95bf6961d 100644 --- a/modules/member/queries/getMemberList.xml +++ b/modules/member/queries/getMemberList.xml @@ -16,6 +16,10 @@ + + + + diff --git a/modules/member/queries/getMemberListWithinGroup.xml b/modules/member/queries/getMemberListWithinGroup.xml index a2c37bdae..e80affa2f 100644 --- a/modules/member/queries/getMemberListWithinGroup.xml +++ b/modules/member/queries/getMemberListWithinGroup.xml @@ -19,6 +19,10 @@ + + + + From 4aa8481539d8c1d48dbfd811c725fa3597f8f8f8 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 17 Dec 2008 06:05:01 +0000 Subject: [PATCH 105/135] =?UTF-8?q?=EC=B5=9C=EA=B7=BC=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20>=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20cloud=EC=9D=98=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95=20=EB=B0=8F=20=EC=B6=9C?= =?UTF-8?q?=EB=A0=A5=20=EA=B2=B0=EA=B3=BC=EB=AC=BC=20=EC=A0=95=EB=A6=AC.?= =?UTF-8?q?=20=EB=8B=A8=20cloud=5Fpopup=EC=9D=80=20=ED=98=84=EC=9E=AC=20cl?= =?UTF-8?q?oud=EC=99=80=20=EB=8F=99=EC=9D=BC=ED=95=9C=20=EB=8F=99=EC=9E=91?= =?UTF-8?q?=EC=9D=84=20=ED=95=A8=20(=EC=B0=A8=ED=9B=84=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EC=98=88=EC=A0=95)?= 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@5104 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../newest_images/skins/cloud/css/normal.css | 48 +++---- widgets/newest_images/skins/cloud/list.html | 119 ++++++------------ .../skins/cloud_preview/css/normal.css | 49 +++----- .../skins/cloud_preview/list.html | 119 ++++++------------ .../skins/cloud_preview/skin.xml | 2 +- 5 files changed, 117 insertions(+), 220 deletions(-) diff --git a/widgets/newest_images/skins/cloud/css/normal.css b/widgets/newest_images/skins/cloud/css/normal.css index dd2842c81..d20e4ad63 100644 --- a/widgets/newest_images/skins/cloud/css/normal.css +++ b/widgets/newest_images/skins/cloud/css/normal.css @@ -1,4 +1,4 @@ -.imgcloudoutline { padding-bottom:5px; overflow:hidden; position:relative; text-align:center;} +.imgcloudoutline { padding-bottom:5px; overflow:hidden; position:relative; } .imgcloudoutline h2 { text-align:left; font-size:1em; display:block; height:21px; padding:9px 0 0 9px; margin-bottom:5px; color:#000000; background:url(../images/normal/lineNotice.gif) no-repeat left bottom;} .imgcloudoutline { padding-bottom:5px; overflow:hidden; position:relative;} @@ -6,35 +6,21 @@ .imgcloudoutline a.more { text-decoration:none;} .imgcloudoutline a.more:hover { text-decoration:underline;} - .imgcloudoutline table { - margin: 1px auto; - border: 0px solid #ddd; - } - - .imgcloudoutline img.imgcloud { - border: 1px solid #e0e1db; - padding: 2px; - overflow: hidden; - display:block; - } +.imgcloudoutline table { + border:1px solid #ddd; +} - .imgcloudoutline img.imgcloud:hover { - border: 2px solid #7899AF; - padding: 1px; - overflow: hidden; - display:block; - cursor: pointer; - } +.imgcloudoutline table td { + vertical-align:middle; + text-align:center; +} - .imgcloudoutline img.imgcloudbig { - border: 1px solid #e0e1db; - padding: 2px; - overflow: hidden; - } - - .imgcloudoutline img.imgcloudbig:hover { - border: 2px solid #7899AF; - padding: 1px; - overflow: hidden; - cursor: pointer; - } +.imgcloudoutline table tbody tr td { + padding:1px; + background-color:transparent; + vertical-align:middle; +} + +.imgcloudoutline table tbody tr td:hover { + background-color:#7899AF; +} diff --git a/widgets/newest_images/skins/cloud/list.html b/widgets/newest_images/skins/cloud/list.html index be8b64f4a..961797f4b 100644 --- a/widgets/newest_images/skins/cloud/list.html +++ b/widgets/newest_images/skins/cloud/list.html @@ -1,9 +1,22 @@ - + + {@ shuffle($widget_info->document_list)} + + + {@ $width = 40} + + {@ $width = $widget_info->thumbnail_width } + + + {@ $height = 40} + + {@ $height = $widget_info->thumbnail_height } + +

    {$widget_info->title}

    @@ -13,86 +26,36 @@ more - - {@ shuffle($widget_info->document_list)} + + + + + + + + + - - {@ - $width = $widget_info->thumbnail_width ? $widget_info->thumbnail_width : "40"; - $height = $widget_info->thumbnail_height ? $widget_info->thumbnail_height : "40"; - $image[$i] = ($widget_info->document_list[$i]->document_srl) ? $widget_info->document_list[$i]->getThumbnail($width*2,$height*2,$widget_info->thumbnail_type) : $tpl_path."/images/blank.gif"; - $url[$i] = ($widget_info->document_list[$i]->document_srl) ? "href=\"".getUrl('','document_srl',$widget_info->document_list[$i]->document_srl)."\"" : ""; - } - + + + + + - + + + + + + - - {@ $colsrows = $widget_info->cols_list_count * $j} -
    - - - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - + +
    diff --git a/widgets/newest_images/skins/cloud_preview/css/normal.css b/widgets/newest_images/skins/cloud_preview/css/normal.css index 409773177..0df27573e 100644 --- a/widgets/newest_images/skins/cloud_preview/css/normal.css +++ b/widgets/newest_images/skins/cloud_preview/css/normal.css @@ -1,4 +1,4 @@ -.imgcloudoutline_preview { padding-bottom:5px; overflow:hidden; position:relative; text-align:center;} +.imgcloudoutline_preview { padding-bottom:5px; overflow:hidden; position:relative;} .imgcloudoutline_preview h2 { text-align:left; font-size:1em; display:block; height:21px; padding:9px 0 0 9px; margin-bottom:5px; color:#000000; background:url(../images/normal/lineNotice.gif) no-repeat left bottom;} .imgcloudoutline_preview { padding-bottom:5px; overflow:hidden; position:relative;} @@ -6,36 +6,21 @@ .imgcloudoutline_preview a.more { text-decoration:none;} .imgcloudoutline_preview a.more:hover { text-decoration:underline;} - .imgcloudoutline_preview table { - margin: 0px auto; - border:1px solid #ddd; - } - - .imgcloudoutline_preview .imgcloud { - border:1px solid #ddd; - padding: 1px; - overflow: hidden; - } +.imgcloudoutline_preview table { + border:1px solid #ddd; +} - .imgcloudoutline_preview .imgcloud:hover { - border: 2px solid #7899AF; - padding: 0px; - overflow: hidden; - } +.imgcloudoutline_preview table td { + vertical-align:middle; + text-align:center; +} - .imgcloudoutline_preview .imgcloudbig { - border:1px solid #ddd; - padding: 1px; - overflow: hidden; - } - - .imgcloudoutline_preview .imgcloudbig:hover { - border: 2px solid #7899AF; - padding: 0px; - overflow: hidden; - } - - .imgcloudoutline_preview .cloudimg { - border: 0px; - cursor: pointer; - } \ No newline at end of file +.imgcloudoutline_preview table tbody tr td { + padding:1px; + background-color:transparent; + vertical-align:middle; +} + +.imgcloudoutline_preview table tbody tr td:hover { + background-color:#7899AF; +} diff --git a/widgets/newest_images/skins/cloud_preview/list.html b/widgets/newest_images/skins/cloud_preview/list.html index 780755381..1435d8f5e 100644 --- a/widgets/newest_images/skins/cloud_preview/list.html +++ b/widgets/newest_images/skins/cloud_preview/list.html @@ -1,9 +1,22 @@ - + + {@ shuffle($widget_info->document_list)} + + + {@ $width = 40} + + {@ $width = $widget_info->thumbnail_width } + + + {@ $height = 40} + + {@ $height = $widget_info->thumbnail_height } + +

    {$widget_info->title}

    @@ -13,86 +26,36 @@ more - - {@ shuffle($widget_info->document_list)} + + + + + + + + + - - {@ - $width = $widget_info->thumbnail_width ? $widget_info->thumbnail_width : "40"; - $height = $widget_info->thumbnail_height ? $widget_info->thumbnail_height : "40"; - $ratio = $width / $height; + + + + + - $image[$i] = ($widget_info->document_list[$i]->document_srl) ? $widget_info->document_list[$i]->getThumbnail(200*$ratio,200,$widget_info->thumbnail_type) : $tpl_path."/images/blank.gif"; - } - + + + + + + - + + + + + - - {@ $colsrows = $widget_info->cols_list_count * $j} -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    + +
    diff --git a/widgets/newest_images/skins/cloud_preview/skin.xml b/widgets/newest_images/skins/cloud_preview/skin.xml index b0a9ba76c..6d8721b5a 100644 --- a/widgets/newest_images/skins/cloud_preview/skin.xml +++ b/widgets/newest_images/skins/cloud_preview/skin.xml @@ -28,4 +28,4 @@ 預設顏色 - \ No newline at end of file + From 8caba4c579b2c619910ad054a9074b3b703e5660 Mon Sep 17 00:00:00 2001 From: ngleader Date: Wed, 17 Dec 2008 06:09:08 +0000 Subject: [PATCH 106/135] =?UTF-8?q?document/comment=20update=20=EC=8B=9C?= =?UTF-8?q?=20=EC=8A=A4=ED=8C=B8=ED=95=84=ED=84=B0=20=ED=8A=B8=EB=A6=AC?= =?UTF-8?q?=EA=B1=B0=20=EC=B6=94=EA=B0=80?= 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@5105 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/spamfilter/spamfilter.class.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/modules/spamfilter/spamfilter.class.php b/modules/spamfilter/spamfilter.class.php index 831fd989e..5b47fc27b 100644 --- a/modules/spamfilter/spamfilter.class.php +++ b/modules/spamfilter/spamfilter.class.php @@ -22,6 +22,12 @@ $oModuleController->insertTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before'); $oModuleController->insertTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before'); + + //2008-12-17 글 수정시 스펨필터 추가 + $oModuleController->insertTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before'); + $oModuleController->insertTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before'); + + return new Object(); } @@ -36,6 +42,9 @@ if(!$oModuleModel->getTrigger('comment.insertComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before')) return true; if(!$oModuleModel->getTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before')) return true; + //2008-12-17 글 수정시 스펨필터 추가 + if(!$oModuleModel->getTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before')) return true; + if(!$oModuleModel->getTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before')) return true; return false; } @@ -54,6 +63,14 @@ if(!$oModuleModel->getTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before')) $oModuleController->insertTrigger('trackback.insertTrackback', 'spamfilter', 'controller', 'triggerInsertTrackback', 'before'); + //2008-12-17 글 수정시 스펨필터 추가 + if(!$oModuleModel->getTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before')){ + $oModuleController->insertTrigger('comment.updateComment', 'spamfilter', 'controller', 'triggerInsertComment', 'before'); + } + //2008-12-17 글 수정시 스펨필터 추가 + if(!$oModuleModel->getTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before')){ + $oModuleController->insertTrigger('document.updateDocument', 'spamfilter', 'controller', 'triggerInsertDocument', 'before'); + } return new Object(0,'success_updated'); } From 20ac50a0e36598113e2c1c173eb399597234aa93 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 17 Dec 2008 06:10:53 +0000 Subject: [PATCH 107/135] =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=EC=8B=9C=20=ED=95=B4=EB=8B=B9=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83=20=EA=B4=80=EB=A0=A8=20=EC=BA=90?= =?UTF-8?q?=EC=8B=9C=20=ED=8C=8C=EC=9D=BC=20=EB=AA=A8=EB=91=90=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= 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@5106 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/layout/layout.admin.controller.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/layout/layout.admin.controller.php b/modules/layout/layout.admin.controller.php index 8339a5ecb..0751b7f6d 100644 --- a/modules/layout/layout.admin.controller.php +++ b/modules/layout/layout.admin.controller.php @@ -155,7 +155,7 @@ $cache_list = FileHandler::readDir("./files/cache/layout","",false,true); if(count($cache_list)) { foreach($cache_list as $cache_file) { - $pos = strpos($cache_file, $layout_srl.'_'); + $pos = strpos($cache_file, $layout_srl.'.'); if($pos>0)FileHandler::removeFile($cache_file); } } From 26141317eb06416f8cd04c763ac56bc1ccc12a63 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 17 Dec 2008 06:24:55 +0000 Subject: [PATCH 108/135] =?UTF-8?q?document.getDocuments=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=20=EC=98=A4=EB=A5=98=20=EB=B0=9C=EC=83=9D=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=B6=80=EB=B6=84=20=EC=88=98=EC=A0=95?= 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@5107 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/document/document.model.php | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/document/document.model.php b/modules/document/document.model.php index 1afa5a3e6..bc1248588 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -122,6 +122,7 @@ } $args->document_srls = $document_srls; $args->list_count = $list_count; + $args->order_type = 'asc'; $output = executeQuery('document.getDocuments', $args); $document_list = $output->data; From b92ae79baab17f82072ecd42dd132f9c6e8d85c9 Mon Sep 17 00:00:00 2001 From: royallin Date: Wed, 17 Dec 2008 09:37:45 +0000 Subject: [PATCH 109/135] Modified and Translation zh-TW languages git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5108 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/install/lang/zh-TW.lang.php | 59 ++++++++++++++--------------- modules/member/lang/zh-TW.lang.php | 10 ++--- modules/planet/lang/zh-TW.lang.php | 16 ++++---- 3 files changed, 42 insertions(+), 43 deletions(-) diff --git a/modules/install/lang/zh-TW.lang.php b/modules/install/lang/zh-TW.lang.php index 5e76bbe31..1f05ea754 100644 --- a/modules/install/lang/zh-TW.lang.php +++ b/modules/install/lang/zh-TW.lang.php @@ -5,16 +5,15 @@ * @brief 正體中文語言(包含基本內容) **/ - $lang->introduce_title = '安裝 XE'; + $lang->introduce_title = 'XE程式安裝'; $lang->license = <<GNU通用公共許可證 - 翻譯文 -1991.6第二版 - -版權所有(c)1989,1991 free software foundation, inc. - -675 mass ave, cambridge,mao2139, usa +Version2、1991年6月 +Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 允許每個人複製和發佈此許可證原始檔案的副本,但絕對不允許對它進行任何修改。 @@ -186,45 +185,45 @@ END OF TERMS AND CONDITIONS EndOfLicense; - $lang->install_condition_title = "確認安裝所需環境。"; + $lang->install_condition_title = "確認安裝時必須要具備的條件"; $lang->install_checklist_title = array( 'php_version' => 'PHP版本', 'permission' => '權限', - 'xml' => 'XML', - 'iconv' => 'ICONV', - 'gd' => 'GD', - 'session' => 'Session.auto_start 設置', + 'xml' => 'XML Library', + 'iconv' => 'ICONV Library', + 'gd' => 'GD Library', + 'session' => 'Session.auto_start設置', ); $lang->install_checklist_desc = array( - 'php_version' => '[需求] 由於 PHP 5.2.2 版本的 BUG,無法安裝 XE。', - 'permission' => '[需求] XE的安裝路徑或 ./files資料夾權限必須是707', - 'xml' => '[需求]為了 XML通訊,將需要安裝 XML', - 'session' => '[需求] 為了能使用暫存功能,在 php.ini 中必須將 session.auto_start=0', - 'iconv' => '為了使 UTF-8和其他語言環境之間能互相轉換,必須安裝 iconv', - 'gd' => '使用圖片轉換功能前,必須先得安裝 GD', + 'php_version' => '[必須] 由於 PHP 5.2.2 版本的問題,無法安裝 XE程式。', + 'permission' => '[必須] XE的資料夾或 ./files資料夾權限必須是『707』。', + 'xml' => '[必須] 必須要安裝 XML Library,才能夠使用 XML通訊。', + 'session' => '[必須] 在『php.ini』中必須要設定『session.auto_start=0』,才能使用暫存功能', + 'iconv' => '安裝『iconv』,才能夠使 UTF-8和其他語言文字能互相轉換。', + 'gd' => '安裝『GD Library』才可以使用圖片轉換功能。', ); - $lang->install_checklist_xml = '安裝 XML'; - $lang->install_without_xml = '還沒有安裝 XML!'; - $lang->install_checklist_gd = '安裝 GD'; - $lang->install_without_gd = '還沒有安裝負責轉換圖片功能的 GD!'; - $lang->install_checklist_gd = '安裝 GD'; - $lang->install_without_iconv = '還沒有安裝負責處理字串的 iconv!'; + $lang->install_checklist_xml = '安裝 XML Library'; + $lang->install_without_xml = '尚未安裝 XML Library!'; + $lang->install_checklist_gd = '安裝 GD Library'; + $lang->install_without_gd = '尚未安裝負責轉換圖片功能的 GD Library!'; + $lang->install_checklist_gd = '安裝 GD Library'; + $lang->install_without_iconv = '尚未安裝負責處理字串的 iconv!'; $lang->install_session_auto_start = 'PHP設置中設置成 session.auto_start==1,可能在處理 session時會發生錯誤。'; - $lang->install_permission_denied = '安裝目錄權限不是 707!'; + $lang->install_permission_denied = '安裝目錄權限不是『707』!'; $lang->cmd_agree_license = '同意使用條款'; - $lang->cmd_install_fix_checklist = '已設置了必要的安裝條件。'; + $lang->cmd_install_fix_checklist = '重新檢查'; $lang->cmd_install_next = '開始進行安裝'; $lang->cmd_ignore = '忽略'; $lang->db_desc = array( - 'mysql' => '利用 php的 mysql*()函數使用 mysql 資料庫。
    資料庫數據是以 myisam 建立,因此不能實現 transaction。', - 'mysql_innodb' => '利用innodb使用 mysql 資料庫。
    innodb可以使用 transaction。', - 'sqlite2' => '支援用檔案形式保存數據的 sqlite2。
    安裝時,資料庫數據應建立在 web無法訪問的地方。
    (尚未通過安全測試)', - 'sqlite3_pdo' => '用 PHP的 PDO支援 sqlite3。
    安裝時,資料庫數據應建立在 web無法訪問的地方。', + 'mysql' => '利用PHP的『mysql*()』函數使用MySQL資料庫。
    利用『myisam』建立資料庫檔案,因此不能實現 transaction。', + 'mysql_innodb' => '利用『innodb』使用 mysql 資料庫。
    innodb可以使用 transaction。', + 'sqlite2' => '支援用檔案形式保存數據的『sqlite2』。
    安裝時,資料庫數據應建立在 web無法訪問的地方。
    (尚未通過安全測試)', + 'sqlite3_pdo' => '用 PHP的 PDO支援『sqlite3』。
    安裝時,資料庫數據應建立在 web無法訪問的地方。', 'cubrid' => '使用 CUBRID DB。', 'postgresql' => '使用 PostgreSql DB。', 'firebird' => '使用 Firebird DB。', diff --git a/modules/member/lang/zh-TW.lang.php b/modules/member/lang/zh-TW.lang.php index 9e4186c8e..b2750db52 100644 --- a/modules/member/lang/zh-TW.lang.php +++ b/modules/member/lang/zh-TW.lang.php @@ -71,13 +71,13 @@ 'user_id' => '帳號', 'user_name' => '姓名', 'nick_name' => '暱稱', - 'email_address' => '郵件地址', + 'email_address' => '電子郵件', 'regdate' => '註冊日期', - 'regdate_more' => '가입일시(이상)', - 'regdate_less' => '가입일시(이하)', + 'regdate_more' => '註冊日期(更多)', + 'regdate_less' => '註冊日期(較少)', 'last_login' => '最近登入', - 'last_login_more' => '최근로그인일시(이상)', - 'last_login_less' => '최근로그인일시(이하)', + 'last_login_more' => '最近登入(更多)', + 'last_login_less' => '最近登入(較少)', 'extra_vars' => '延伸變數', ); diff --git a/modules/planet/lang/zh-TW.lang.php b/modules/planet/lang/zh-TW.lang.php index 7d898972a..fa5aad464 100644 --- a/modules/planet/lang/zh-TW.lang.php +++ b/modules/planet/lang/zh-TW.lang.php @@ -18,8 +18,8 @@ $lang->planet_reply_content = "微型部落格的回覆內容"; $lang->about_planet = - "XE 微型部落格模組。每個會員都能建立自己的微型部落格。 - 網站模組所使用的網域名稱可能無法用於微型部落格。 + "XE微型部落格模組,可讓會員建立自己的微型部落格。 + 網站模組所使用的網域名稱無法用於微型部落格模組。 如果想將微型部落格當作首頁,請先在網站模組中設定其他的網域名稱。"; $lang->planet_mid = "微型部落格連結網址"; @@ -149,26 +149,26 @@ $lang->planet_total_articles = "全部"; $lang->planet_wantyou = "推薦"; $lang->planet_best = "熱門討論"; - $lang->planet_catch = "釣った記事"; - $lang->planet_fish = "釣られた記事"; + $lang->planet_catch = "文章選擇"; + $lang->planet_fish = "選擇文章"; $lang->planet_bigfish = "熱門討論"; $lang->cmd_send_me2day = "me2day傳送"; $lang->msg_already_have_phone_number = '已註冊的手機號碼。'; - $lang->planet_mobile_receive = 'Mobile work'; + $lang->planet_mobile_receive = '行動上網'; $lang->planet_mobile_number = '手機號碼'; $lang->msg_success_set_phone_number = '手機號碼註冊成功。'; $lang->planet_tagtab = "標籤頁"; $lang->about_planet_tagtab = "以「,」區分多個標籤,這些標籤將顯示在標籤頁。"; - $lang->planet_tagtab_after = "新增標籤分頁"; - $lang->about_planet_tagtab_after = "기본 태그탭 이후에 여러개의 Tag 탭을 추가할 수 있습니다. 以「,」區分多個標籤。"; + $lang->planet_tagtab_after = "新增標籤頁"; + $lang->about_planet_tagtab_after = "可新增多個標籤頁。以「,」區分多個標籤。"; $lang->planet_smstag = "SMS標籤"; $lang->about_planet_smstag = "以「,」區分多個標籤,用SMS傳送時將自動新增標籤。"; $lang->planet_use_mobile = "開啟SMS"; $lang->about_use_mobile = "可用手機發送SMS"; $lang->planet_use_me2day = "Me2day"; - $lang->about_use_me2day = "發表主題的同時也傳送到 me2day(http://me2day.net)。"; + $lang->about_use_me2day = "發表主題的同時也傳送到Me2day(http://me2day.net)。"; $lang->msg_search_thisplanet = "搜尋微型部落格"; ?> From 3dc23c0223d34a8e14583e03c28b8962310a1132 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 17 Dec 2008 09:42:07 +0000 Subject: [PATCH 110/135] 17523819 : enable setting SSL and HTTP port git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5109 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/context/Context.class.php | 32 +++++++---- common/js/common.js | 25 +++++++- common/js/unittest/unittest_common.html | 60 ++++++++++++++++++++ common/tpl/common_layout.html | 2 + modules/admin/admin.admin.view.php | 10 ++++ modules/admin/lang/ko.lang.php | 9 +++ modules/admin/tpl/config.html | 19 +++++++ modules/install/install.admin.controller.php | 25 ++++++++ modules/member/member.admin.controller.php | 3 +- modules/member/member.class.php | 4 -- modules/member/tpl/member_config.html | 8 --- 11 files changed, 170 insertions(+), 27 deletions(-) create mode 100644 common/js/unittest/unittest_common.html diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index 6e5ed3695..adf6bd6c5 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -21,7 +21,6 @@ var $db_info = NULL; ///< @brief DB 정보 var $ftp_info = NULL; ///< @brief FTP 정보 - var $ssl_port = NULL; ///< @brief SSL Port number var $ssl_actions = array(); ///< @brief ssl로 전송해야 할 action등록 (common/js/xml_handler.js에서 ajax통신시 활용) var $js_files = array(); ///< @brief display시에 사용하게 되는 js files의 목록 var $css_files = array(); ///< @brief display시에 사용하게 되는 css files의 목록 @@ -204,11 +203,21 @@ else $db_info->use_optimizer = 'N'; if(!$db_info->qmail_compatibility || $db_info->qmail_compatibility != 'Y') $db_info->qmail_compatibility = 'N'; else $db_info->qmail_compatibility = 'Y'; + if(!$db_info->use_ssl) $db_info->use_ssl = 'none'; $this->_setDBInfo($db_info); $GLOBALS['_time_zone'] = $db_info->time_zone; $GLOBALS['_qmail_compatibility'] = $db_info->qmail_compatibility; + $GLOBALS['_use_ssl'] = $db_info->use_ssl; + if($db_info->http_port) + { + $GLOBALS['_http_port'] = $db_info->http_port; + } + if($db_info->https_port) + { + $GLOBALS['_https_port'] = $db_info->https_port; + } } /** @@ -801,8 +810,17 @@ } $url_info = parse_url('http://'.$target_url); - if($use_ssl && $this->ssl_port && $this->ssl_port != 443) { - $url_info['port'] = $this->ssl_port; + if($use_ssl) + { + if($GLOBALS["_https_port"] && $GLOBALS["_https_port"] != 443) { + $url_info['port'] = $GLOBALS["_https_port"]; + } + } + else + { + if($GLOBALS["_http_port"] && $GLOBALS["_http_port"] != 80) { + $url_info['port'] = $GLOBALS["_http_port"]; + } } $url[$ssl_mode][$domain_key] = sprintf("%s://%s%s%s",$use_ssl?'https':$url_info['scheme'], $url_info['host'], $url_info['port']&&$url_info['port']!=80?':'.$url_info['port']:'',$url_info['path']); @@ -1261,13 +1279,5 @@ return dirname($_SERVER['PHP_SELF']) . "/" . $url; } - function setSSLPort($port) { - $oContext = &Context::getInstance(); - $oContext->_setSSLPort($port); - } - - function _setSSLPort($port) { - $this->ssl_port = (int) $port; - } } ?> diff --git a/common/js/common.js b/common/js/common.js index a90c55a31..1d1345589 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -317,12 +317,33 @@ String.prototype.setQuery = function(key, val) { if(val.toString().trim()) uri = uri+"?"+key+"="+val; } - uri = uri.replace(/^https:\/\//i,'http://'); + var re = /https:\/\/([^:\/]+)(:\d+|)/i; + var check = re.exec(uri); + if(check) + { + var toReplace = "http://"+check[1]; + if(typeof(http_port)!='undefined' && http_port != 80) + { + toReplace += ":" + http_port; + } + uri = uri.replace(re,toReplace); + } + if(typeof(ssl_actions)!='undefined' && typeof(ssl_actions.length)!='undefined' && uri.getQuery('act')) { var act = uri.getQuery('act'); for(i=0;i + + + +JSSpec results + + + + + + + +

    A

    B

    + + diff --git a/common/tpl/common_layout.html b/common/tpl/common_layout.html index 81caf7640..15d4c315f 100644 --- a/common/tpl/common_layout.html +++ b/common/tpl/common_layout.html @@ -51,6 +51,8 @@ var current_mid = "{$mid}"; var waiting_message = "{$lang->msg_call_server}"; var ssl_actions = new Array("{implode('","',$ssl_actions)}"); + var http_port = {$GLOBALS["_http_port"]}; + var https_port = {$GLOBALS["_https_port"]}; //]]> {Context::getHtmlHeader()} diff --git a/modules/admin/admin.admin.view.php b/modules/admin/admin.admin.view.php index 444b64e70..f5e17314d 100644 --- a/modules/admin/admin.admin.view.php +++ b/modules/admin/admin.admin.view.php @@ -44,6 +44,15 @@ Context::set('use_rewrite', $db_info->use_rewrite=='Y'?'Y':'N'); Context::set('use_optimizer', $db_info->use_optimizer!='N'?'Y':'N'); Context::set('qmail_compatibility', $db_info->qmail_compatibility=='Y'?'Y':'N'); + Context::set('use_ssl', $db_info->use_ssl?$db_info->use_ssl:"none"); + if($db_info->http_port) + { + Context::set('http_port', $db_info->http_port); + } + if($db_info->https_port) + { + Context::set('https_port', $db_info->https_port); + } Context::setBrowserTitle("XE Admin Page"); } @@ -205,6 +214,7 @@ **/ function dispAdminConfig() { $db_info = Context::getDBInfo(); + debugPrint($db_info); Context::set('selected_lang', $db_info->lang_type); Context::set('lang_supported', Context::loadLangSupported()); diff --git a/modules/admin/lang/ko.lang.php b/modules/admin/lang/ko.lang.php index 916181cdb..b52acdacb 100644 --- a/modules/admin/lang/ko.lang.php +++ b/modules/admin/lang/ko.lang.php @@ -57,4 +57,13 @@ $lang->cmd_lang_select = "언어선택"; $lang->about_cmd_lang_select = "선택된 언어들만 서비스 됩니다"; $lang->about_recompile_cache = "쓸모 없어졌거나 잘못된 캐시파일들을 정리할 수 있습니다"; + $lang->use_ssl = "SSL 사용"; + $lang->ssl_options = array( + 'none' => "사용안함", + 'optional' => "선택적으로", + 'always' => "항상사용" + ); + $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; + $lang->server_ports = "서버포트지정"; + $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; ?> diff --git a/modules/admin/tpl/config.html b/modules/admin/tpl/config.html index a0bc434f8..81c1b2c8e 100644 --- a/modules/admin/tpl/config.html +++ b/modules/admin/tpl/config.html @@ -53,6 +53,25 @@

    {$lang->about_qmail_compatibility}

    + +
    {$lang->use_ssl}
    + + +

    {$lang->about_use_ssl}

    + + + +
    {$lang->server_ports}
    + + HTTP : , + HTTPS: +

    {$lang->about_server_ports}

    + + diff --git a/modules/install/install.admin.controller.php b/modules/install/install.admin.controller.php index 5218c03b6..442241f4f 100644 --- a/modules/install/install.admin.controller.php +++ b/modules/install/install.admin.controller.php @@ -56,12 +56,37 @@ $qmail_compatibility = Context::get('qmail_compatibility'); if($qmail_compatibility!='Y') $qmail_compatibility = 'N'; + $use_ssl = Context::get('use_ssl'); + if(!$use_ssl) $use_ssl = 'none'; + + $http_port = Context::get('http_port'); + $https_port = Context::get('https_port'); + $db_info = Context::getDBInfo(); $db_info->time_zone = $time_zone; $db_info->qmail_compatibility = $qmail_compatibility; $db_info->use_rewrite = $use_rewrite; $db_info->use_optimizer = $use_optimizer; $db_info->lang_type = Context::get('lang_type'); + $db_info->use_ssl = $use_ssl; + if($http_port) + { + $db_info->http_port = (int) $http_port; + } + else if($db_info->http_port) + { + unset($db_info->http_port); + } + + if($https_port) + { + $db_info->https_port = (int) $https_port; + } + else if($db_info->https_port) + { + unset($db_info->https_port); + } + Context::setDBInfo($db_info); $oInstallController = &getController('install'); diff --git a/modules/member/member.admin.controller.php b/modules/member/member.admin.controller.php index e10273045..c70c74636 100644 --- a/modules/member/member.admin.controller.php +++ b/modules/member/member.admin.controller.php @@ -83,13 +83,12 @@ **/ function procMemberAdminInsertConfig() { // 기본 정보를 받음 - $args = Context::gets('webmaster_name','webmaster_email','skin','colorset','enable_openid','enable_join','enable_confirm','enable_ssl','limit_day','after_login_url','after_logout_url','redirect_url','agreement','profile_image','profile_image_max_width','profile_image_max_height','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height','signature_max_height','editor_skin','editor_colorset', 'ssl_port'); + $args = Context::gets('webmaster_name','webmaster_email','skin','colorset','enable_openid','enable_join','enable_confirm','limit_day','after_login_url','after_logout_url','redirect_url','agreement','profile_image','profile_image_max_width','profile_image_max_height','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height','signature_max_height','editor_skin','editor_colorset'); if(!$args->skin) $args->skin = "default"; if(!$args->colorset) $args->colorset = "white"; if(!$args->editor_skin) $args->editor_skin= "default"; if(!$args->editor_colorset) $args->editor_colorset = "white"; if($args->enable_join!='Y') $args->enable_join = 'N'; - if($args->enable_ssl!='Y') $args->enable_ssl = 'N'; if($args->enable_openid!='Y') $args->enable_openid= 'N'; if($args->profile_image !='Y') $args->profile_image = 'N'; if($args->image_name!='Y') $args->image_name = 'N'; diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 0b770b516..394c239ce 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -28,10 +28,6 @@ Context::addSSLAction('procMemberInsert'); Context::addSSLAction('procMemberModifyInfo'); Context::addSSLAction('procMemberOpenIDLogin'); - if($member_config->ssl_port) - { - Context::setSSLPort($member_config->ssl_port); - } } } diff --git a/modules/member/tpl/member_config.html b/modules/member/tpl/member_config.html index 826747a01..32fbfc544 100644 --- a/modules/member/tpl/member_config.html +++ b/modules/member/tpl/member_config.html @@ -43,14 +43,6 @@ {$lang->about_enable_confirm} - -
    {$lang->enable_ssl}
    - - enable_ssl=='Y')-->checked="checked" class="checkbox" /> - {$lang->about_enable_ssl}
    - {$lang->about_ssl_port} - -
    {$lang->limit_day}
    From 0808c6e6bb8a8eb6f58c8d07721931bea2f5ff87 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 17 Dec 2008 09:43:37 +0000 Subject: [PATCH 111/135] add lang files git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5110 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/lang/en.lang.php | 9 +++++++++ modules/admin/lang/es.lang.php | 9 +++++++++ modules/admin/lang/fr.lang.php | 9 +++++++++ modules/admin/lang/jp.lang.php | 9 +++++++++ modules/admin/lang/ru.lang.php | 9 +++++++++ modules/admin/lang/zh-CN.lang.php | 9 +++++++++ modules/admin/lang/zh-TW.lang.php | 9 +++++++++ 7 files changed, 63 insertions(+) diff --git a/modules/admin/lang/en.lang.php b/modules/admin/lang/en.lang.php index 11fdb7793..947b50dbb 100644 --- a/modules/admin/lang/en.lang.php +++ b/modules/admin/lang/en.lang.php @@ -57,4 +57,13 @@ $lang->cmd_lang_select = "Language"; $lang->about_cmd_lang_select = "Selected languages only will be serviced"; $lang->about_recompile_cache = "You can arrange useless or invalid cache files"; + $lang->use_ssl = "SSL 사용"; + $lang->ssl_options = array( + 'none' => "사용안함", + 'optional' => "선택적으로", + 'always' => "항상사용" + ); + $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; + $lang->server_ports = "서버포트지정"; + $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; ?> diff --git a/modules/admin/lang/es.lang.php b/modules/admin/lang/es.lang.php index fec5ce90f..2d6faa3a3 100644 --- a/modules/admin/lang/es.lang.php +++ b/modules/admin/lang/es.lang.php @@ -58,4 +58,13 @@ $lang->cmd_lang_select = "언어선택"; $lang->about_cmd_lang_select = "선택된 언어들만 서비스 됩니다"; $lang->about_recompile_cache = "쓸모없어졌거나 잘못된 캐시파일들을 정리할 수 있습니다"; + $lang->use_ssl = "SSL 사용"; + $lang->ssl_options = array( + 'none' => "사용안함", + 'optional' => "선택적으로", + 'always' => "항상사용" + ); + $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; + $lang->server_ports = "서버포트지정"; + $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; ?> diff --git a/modules/admin/lang/fr.lang.php b/modules/admin/lang/fr.lang.php index 35024acda..299c3f7e2 100644 --- a/modules/admin/lang/fr.lang.php +++ b/modules/admin/lang/fr.lang.php @@ -57,4 +57,13 @@ $lang->cmd_lang_select = "언어선택"; $lang->about_cmd_lang_select = "선택된 언어들만 서비스 됩니다"; $lang->about_recompile_cache = "쓸모없어졌거나 잘못된 캐시파일들을 정리할 수 있습니다"; + $lang->use_ssl = "SSL 사용"; + $lang->ssl_options = array( + 'none' => "사용안함", + 'optional' => "선택적으로", + 'always' => "항상사용" + ); + $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; + $lang->server_ports = "서버포트지정"; + $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; ?> diff --git a/modules/admin/lang/jp.lang.php b/modules/admin/lang/jp.lang.php index f4848a0f8..e40266751 100644 --- a/modules/admin/lang/jp.lang.php +++ b/modules/admin/lang/jp.lang.php @@ -57,4 +57,13 @@ $lang->cmd_lang_select = "言語選択"; $lang->about_cmd_lang_select = "選択された言語のみでサービスを行います。"; $lang->about_recompile_cache = "要らないか誤ったキャッシューファイルを整理します。"; + $lang->use_ssl = "SSL 사용"; + $lang->ssl_options = array( + 'none' => "사용안함", + 'optional' => "선택적으로", + 'always' => "항상사용" + ); + $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; + $lang->server_ports = "서버포트지정"; + $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; ?> diff --git a/modules/admin/lang/ru.lang.php b/modules/admin/lang/ru.lang.php index 02fd29bae..750895f5c 100644 --- a/modules/admin/lang/ru.lang.php +++ b/modules/admin/lang/ru.lang.php @@ -57,4 +57,13 @@ $lang->cmd_lang_select = "언어선택"; $lang->about_cmd_lang_select = "선택된 언어들만 서비스 됩니다"; $lang->about_recompile_cache = "쓸모없어졌거나 잘못된 캐시파일들을 정리할 수 있습니다"; + $lang->use_ssl = "SSL 사용"; + $lang->ssl_options = array( + 'none' => "사용안함", + 'optional' => "선택적으로", + 'always' => "항상사용" + ); + $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; + $lang->server_ports = "서버포트지정"; + $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; ?> diff --git a/modules/admin/lang/zh-CN.lang.php b/modules/admin/lang/zh-CN.lang.php index c8391cc71..262ce24ce 100644 --- a/modules/admin/lang/zh-CN.lang.php +++ b/modules/admin/lang/zh-CN.lang.php @@ -58,4 +58,13 @@ $lang->cmd_lang_select = "多国语言支援"; $lang->about_cmd_lang_select = "只支援被选语言。"; $lang->about_recompile_cache = "整理无用的或错误的缓冲文件。"; + $lang->use_ssl = "SSL 사용"; + $lang->ssl_options = array( + 'none' => "사용안함", + 'optional' => "선택적으로", + 'always' => "항상사용" + ); + $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; + $lang->server_ports = "서버포트지정"; + $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; ?> diff --git a/modules/admin/lang/zh-TW.lang.php b/modules/admin/lang/zh-TW.lang.php index 4a9fe24f4..7a73bf33e 100644 --- a/modules/admin/lang/zh-TW.lang.php +++ b/modules/admin/lang/zh-TW.lang.php @@ -57,4 +57,13 @@ $lang->cmd_lang_select = "選擇語言"; $lang->about_cmd_lang_select = "只提供所選擇的語言服務"; $lang->about_recompile_cache = "可有效的整理錯誤的暫存檔"; + $lang->use_ssl = "SSL 사용"; + $lang->ssl_options = array( + 'none' => "사용안함", + 'optional' => "선택적으로", + 'always' => "항상사용" + ); + $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; + $lang->server_ports = "서버포트지정"; + $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; ?> From 696fea7d1b6e13a10f825ff6372e3acb30be9676 Mon Sep 17 00:00:00 2001 From: haneul Date: Wed, 17 Dec 2008 10:02:08 +0000 Subject: [PATCH 112/135] globals setting git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5111 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/member/member.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 394c239ce..3fb2bc13b 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -17,7 +17,7 @@ $member_config = $oModuleModel->getModuleConfig('member'); // SSL 사용시 회원가입/정보/비밀번호등과 관련된 action에 대해 SSL 전송하도록 지정 - if($member_config->enable_ssl == 'Y') { + if($GLOBALS['_use_ssl'] == 'optional') { Context::addSSLAction('dispMemberLoginForm'); Context::addSSLAction('dispMemberModifyPassword'); Context::addSSLAction('dispMemberSignUpForm'); From dc8de63a965939f52713a9602fed75347a3d8d40 Mon Sep 17 00:00:00 2001 From: royallin Date: Wed, 17 Dec 2008 13:18:33 +0000 Subject: [PATCH 113/135] Translation file. git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5112 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/lang/zh-TW.lang.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/admin/lang/zh-TW.lang.php b/modules/admin/lang/zh-TW.lang.php index 7a73bf33e..db14dfae0 100644 --- a/modules/admin/lang/zh-TW.lang.php +++ b/modules/admin/lang/zh-TW.lang.php @@ -57,13 +57,13 @@ $lang->cmd_lang_select = "選擇語言"; $lang->about_cmd_lang_select = "只提供所選擇的語言服務"; $lang->about_recompile_cache = "可有效的整理錯誤的暫存檔"; - $lang->use_ssl = "SSL 사용"; + $lang->use_ssl = "SSL功能"; $lang->ssl_options = array( - 'none' => "사용안함", - 'optional' => "선택적으로", - 'always' => "항상사용" + 'none' => "禁止使用", + 'optional' => "選擇使用", + 'always' => "總是使用" ); - $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; - $lang->server_ports = "서버포트지정"; - $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; + $lang->about_use_ssl = "當會員登入或修改資料等動作時,可選擇是否使用 SSL 功能。"; + $lang->server_ports = "主機埠口"; + $lang->about_server_ports = "HTTP是 80、HTTPS是 443,如果想使用其他的埠口的話,請自行設定。"; ?> From 44b12cc56218c4879afac1b487651063d40344ae Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 18 Dec 2008 02:33:48 +0000 Subject: [PATCH 114/135] =?UTF-8?q?#17417252=20sqlite=EC=97=90=EC=84=9C=20?= =?UTF-8?q?primary=5Fkey=202=EA=B0=9C=20=EC=9D=B4=EC=83=81=EC=9D=B4=20?= =?UTF-8?q?=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B8=ED=95=98=EC=97=AC=20=EC=84=A4=EC=B9=98?= =?UTF-8?q?=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8D=98=20member=5Fautologin,?= =?UTF-8?q?=20planet=5Fcatch=20=ED=85=8C=EC=9D=B4=EB=B8=94=EC=9D=84=20uniq?= =?UTF-8?q?ue=5Fkey=EB=A1=9C=20=EB=B3=80=EA=B2=BD=ED=9B=84=20=EC=A0=81?= =?UTF-8?q?=EC=9A=A9.=20sqlite=EC=84=A4=EC=B9=98=EC=8B=9C=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9C=84=EC=B9=98=EB=A5=BC=20./files/xe.sqlite?= =?UTF-8?q?=EB=A1=9C=20=EA=B8=B0=EB=B3=B8=20=EA=B0=92=20=EB=B3=80=EA=B2=BD?= 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@5113 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/install/tpl/form.sqlite2.html | 2 +- modules/install/tpl/form.sqlite3_pdo.html | 2 +- modules/member/schemas/member_autologin.xml | 4 ++-- modules/planet/schemas/planet_catch.xml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/install/tpl/form.sqlite2.html b/modules/install/tpl/form.sqlite2.html index 313c38c54..b1795ae6d 100644 --- a/modules/install/tpl/form.sqlite2.html +++ b/modules/install/tpl/form.sqlite2.html @@ -16,7 +16,7 @@ {$db_type} - +

    {$lang->about_database_file}

    diff --git a/modules/install/tpl/form.sqlite3_pdo.html b/modules/install/tpl/form.sqlite3_pdo.html index c16f2953b..35c0cdfcb 100644 --- a/modules/install/tpl/form.sqlite3_pdo.html +++ b/modules/install/tpl/form.sqlite3_pdo.html @@ -16,7 +16,7 @@ {$db_type} - +

    {$lang->about_database_file}

    diff --git a/modules/member/schemas/member_autologin.xml b/modules/member/schemas/member_autologin.xml index a18bf578c..c4bc326fe 100644 --- a/modules/member/schemas/member_autologin.xml +++ b/modules/member/schemas/member_autologin.xml @@ -1,4 +1,4 @@ - - + +
    diff --git a/modules/planet/schemas/planet_catch.xml b/modules/planet/schemas/planet_catch.xml index f54734477..7ab9d8bda 100644 --- a/modules/planet/schemas/planet_catch.xml +++ b/modules/planet/schemas/planet_catch.xml @@ -1,6 +1,6 @@ - - + +
    From a1b2660aa86b2bb1d90d7400fe8a4a272a2d1be1 Mon Sep 17 00:00:00 2001 From: haneul Date: Thu, 18 Dec 2008 02:51:42 +0000 Subject: [PATCH 115/135] =?UTF-8?q?unittest=20IE7=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=95=88=EB=90=98=EB=8A=94=20=EA=B2=83=20=EC=88=98=EC=A0=95?= 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@5114 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/js/unittest/unittest_common.html | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/common/js/unittest/unittest_common.html b/common/js/unittest/unittest_common.html index d57c8efc6..7dab72281 100644 --- a/common/js/unittest/unittest_common.html +++ b/common/js/unittest/unittest_common.html @@ -49,12 +49,9 @@ describe('SetQuery', { targetsp = "https://www.zeroboard.com:443/?q=r"; http_port = 80; value_of(targetsp.setQuery("act","dispLogin2")).should_be("http://www.zeroboard.com/?q=r&act=dispLogin2"); - }, - + } }) - // ]]>

    A

    B

    - From 471aba08e2a802de058bbe5d4fc4c9675bfc4cc7 Mon Sep 17 00:00:00 2001 From: ngleader Date: Thu, 18 Dec 2008 05:03:41 +0000 Subject: [PATCH 116/135] =?UTF-8?q?=EA=B2=8C=EC=8B=9C=ED=8C=90=EB=B3=84=20?= =?UTF-8?q?=EC=B2=A8=EB=B6=80=ED=8C=8C=EC=9D=BC=20=EC=A0=9C=ED=95=9C?= =?UTF-8?q?=EC=9D=B4=20=EC=97=86=EC=9D=84=EA=B2=BD=EC=9A=B0(=EA=B3=B5?= =?UTF-8?q?=EB=B0=B1)=20=ED=8C=8C=EC=9D=BC=EC=B2=A8=EB=B6=80=EB=AA=A8?= =?UTF-8?q?=EB=93=88=EC=9D=98=20=EC=A0=9C=ED=95=9C=EC=9D=84=20=EB=94=B0?= =?UTF-8?q?=EB=A5=B4=EB=8F=84=EB=A1=9D=ED=95=A8?= 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@5115 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/document/document.admin.view.php | 5 +++++ modules/file/file.model.php | 13 ++++++++++++- modules/widget/widget.model.php | 3 ++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/modules/document/document.admin.view.php b/modules/document/document.admin.view.php index 052873549..71c66e3dd 100644 --- a/modules/document/document.admin.view.php +++ b/modules/document/document.admin.view.php @@ -149,6 +149,11 @@ } } + // 게시판만 뽑자 + foreach($module_list as $module_srl => $module) { + if($module->module != 'board') unset($module_list[$module_srl]); + } + // module_category와 module의 조합 if($module_categories) { foreach($module_list as $module_srl => $module) { diff --git a/modules/file/file.model.php b/modules/file/file.model.php index a9404646c..ea3116e29 100644 --- a/modules/file/file.model.php +++ b/modules/file/file.model.php @@ -83,14 +83,25 @@ // 설정 정보를 받아옴 (module model 객체를 이용) $oModuleModel = &getModel('module'); + $file_module_config = $oModuleModel->getModuleConfig('file'); + if($module_srl) $file_config = $oModuleModel->getModulePartConfig('file',$module_srl); - if(!$file_config) $file_config = $oModuleModel->getModuleConfig('file'); + if(!$file_config) $file_config = $file_module_config; + if($file_config) { $config->allowed_filesize = $file_config->allowed_filesize; $config->allowed_attach_size = $file_config->allowed_attach_size; $config->allowed_filetypes = $file_config->allowed_filetypes; $config->download_grant = $file_config->download_grant; } + + // 전체 파일첨부 속성을 먼저 따른다 + if(!$config->allowed_filesize) $config->allowed_filesize = $file_module_config->allowed_filesize; + if(!$config->allowed_attach_size) $config->allowed_attach_size = $file_module_config->allowed_attach_size; + if(!$config->allowed_filetypes) $config->allowed_filetypes = $file_module_config->allowed_filetypes; + if(!$config->download_grant) $config->download_grant = $file_module_config->download_grant; + + // 그래도 없으면 default로 if(!$config->allowed_filesize) $config->allowed_filesize = '2'; if(!$config->allowed_attach_size) $config->allowed_attach_size = '3'; if(!$config->allowed_filetypes) $config->allowed_filetypes = '*.*'; diff --git a/modules/widget/widget.model.php b/modules/widget/widget.model.php index d3e8f0278..9f62d73bd 100644 --- a/modules/widget/widget.model.php +++ b/modules/widget/widget.model.php @@ -64,6 +64,7 @@ // cache 파일을 비교하여 문제 없으면 include하고 $widget_info 변수를 return $cache_file = sprintf('./files/cache/widget/%s.%s.cache.php', $widget, Context::getLangType()); + if(file_exists($cache_file)&&filemtime($cache_file)>filemtime($xml_file)) { @include($cache_file); return $widget_info; @@ -76,7 +77,7 @@ if(!$xml_obj) return; $buff = ''; - +debugPrint($xml_obj); if($xml_obj->version && $xml_obj->attrs->version == '0.2') { // 위젯의 제목, 버전 $buff .= sprintf('$widget_info->widget = "%s";', $widget); From 83e02e05c40fb9f916b4560006db9c1b7c9531d9 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 18 Dec 2008 05:49:45 +0000 Subject: [PATCH 117/135] =?UTF-8?q?#17044128=20=EC=BB=A8=ED=85=90=EC=B8=A0?= =?UTF-8?q?=20=EC=9C=84=EC=A0=AF=EC=9D=84=20=EA=B2=8C=EC=8B=9C=EA=B8=80?= =?UTF-8?q?=EB=A1=9C=20=EC=A0=80=EC=9E=A5=ED=95=98=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=ED=95=98=EC=97=AC=20=EC=9A=A9=EB=9F=89=20=EC=A0=9C=ED=95=9C=20?= =?UTF-8?q?=EC=97=86=EA=B2=8C=20=ED=95=98=EA=B3=A0=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EB=85=B8=EC=B6=9C=EB=90=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=98=90=EB=A1=9D=20=EC=88=98=EC=A0=95?= 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@5116 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/widget/WidgetHandler.class.php | 29 +-- .../document/document.admin.controller.php | 8 +- modules/page/tpl/css/page.css | 9 +- .../page/tpl/filter/insert_page_content.xml | 1 - modules/page/tpl/page_content_modify.html | 44 +++-- modules/widget/conf/module.xml | 4 + modules/widget/tpl/add_content_widget.html | 5 +- modules/widget/tpl/css/widget.css | 24 ++- modules/widget/tpl/js/widget.js | 163 ++++++++++++++--- modules/widget/widget.admin.view.php | 7 +- modules/widget/widget.controller.php | 166 ++++++++++++++++++ 11 files changed, 385 insertions(+), 75 deletions(-) diff --git a/classes/widget/WidgetHandler.class.php b/classes/widget/WidgetHandler.class.php index d1c2c0161..4bd1aa7df 100644 --- a/classes/widget/WidgetHandler.class.php +++ b/classes/widget/WidgetHandler.class.php @@ -121,6 +121,7 @@ $widget_padding_bottom = $args->widget_padding_bottom; $inner_style = sprintf("padding:%dpx %dpx %dpx %dpx !important; padding:none !important;", $widget_padding_top, $widget_padding_right, $widget_padding_bottom, $widget_padding_left); + $oDocumentModel = &getModel('document'); /** * 위젯 출력물을 구함 **/ @@ -129,7 +130,12 @@ switch($widget) { // 내용 직접 추가일 경우 case 'widgetContent' : - $body = base64_decode($args->body); + if($args->document_srl) { + $oDocument = $oDocumentModel->getDocument($args->document_srl); + $body = $oDocument->getContent(false,false,false); + } else { + $body = base64_decode($args->body); + } $output = sprintf('
    %s
    ', $style, $inner_style, $body); break; @@ -149,15 +155,16 @@ switch($widget) { // 내용 직접 추가일 경우 case 'widgetContent' : - $body = base64_decode($args->body); + if($args->document_srl) { + $oDocument = $oDocumentModel->getDocument($args->document_srl); + $body = $oDocument->getContent(false,false,false); + } else { + $body = base64_decode($args->body); + } $oWidgetController = &getController('widget'); $output = sprintf( - '
    '. - '
    '. - '
    '. - '
    '. - '
    '. + '
    '. '
    '. '
    '. '
    '. @@ -169,6 +176,7 @@ '
    ', $style, $args->widget_padding_left, $args->widget_padding_right, $args->widget_padding_top, $args->widget_padding_bottom, + $args->document_srl, $inner_style, $body, base64_encode($body) @@ -179,9 +187,6 @@ case 'widgetBox' : $output = sprintf( '
    '. - '
    '. - '
    '. - '
    '. '
    '. '
    '. '
    '. @@ -203,10 +208,6 @@ $output = sprintf( '
    '. - '
    '. - '
    '. - '
    '. - '
    '. '
    '. '
    '. '
    '. diff --git a/modules/document/document.admin.controller.php b/modules/document/document.admin.controller.php index 2b43a0ea0..7397ba74e 100644 --- a/modules/document/document.admin.controller.php +++ b/modules/document/document.admin.controller.php @@ -338,10 +338,14 @@ $oDocumentController->updateTrackbackCount($obj->document_srl, $success_count); } } + + $copied_srls[$document_srl] = $obj->document_srl; } - $oDB->commit(); - return new Object(); + + $output = new Object(); + $output->add('copied_srls', $copied_srls); + return $output; } /** diff --git a/modules/page/tpl/css/page.css b/modules/page/tpl/css/page.css index 5a4cf8021..8fe47844c 100644 --- a/modules/page/tpl/css/page.css +++ b/modules/page/tpl/css/page.css @@ -1,8 +1,9 @@ @charset "utf-8"; h3 { margin:0 10px 0 10px; } -.widget_list { margin:10px; } -.widget_list a { margin-bottom:10px; } -.editor_box { margin:0 10px 10px 10px; } -.button_box { float:right; overflow:hidden; } .adminLayer { margin-top:30px; } + +.buttonBox { border:2px solid #EEEEEE; padding:5px; overflow:hidden; *zoom:1;} +.buttonBox .fr { height:28px; } +.buttonBox .fl { height:28px; } +.buttonBox .buttonDiv { margin:2px 0; padding:0; border-top:1px solid #EEEEEE; clear:both; } diff --git a/modules/page/tpl/filter/insert_page_content.xml b/modules/page/tpl/filter/insert_page_content.xml index 58e3b5c2e..05a2c2166 100644 --- a/modules/page/tpl/filter/insert_page_content.xml +++ b/modules/page/tpl/filter/insert_page_content.xml @@ -1,7 +1,6 @@
    - diff --git a/modules/page/tpl/page_content_modify.html b/modules/page/tpl/page_content_modify.html index 0896cb1c0..24d4f0d23 100644 --- a/modules/page/tpl/page_content_modify.html +++ b/modules/page/tpl/page_content_modify.html @@ -15,25 +15,41 @@ -
    - - - - -
    +
    -
    - - - +
    + +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + diff --git a/common/tpl/common_layout.html b/common/tpl/common_layout.html index 15d4c315f..175253581 100644 --- a/common/tpl/common_layout.html +++ b/common/tpl/common_layout.html @@ -53,6 +53,7 @@ var ssl_actions = new Array("{implode('","',$ssl_actions)}"); var http_port = {$GLOBALS["_http_port"]}; var https_port = {$GLOBALS["_https_port"]}; + var enforce_ssl = true; //]]> {Context::getHtmlHeader()} From 93ffe3663907f1f817bfb769f1fc53239f6fe0f8 Mon Sep 17 00:00:00 2001 From: haneul Date: Thu, 18 Dec 2008 10:10:43 +0000 Subject: [PATCH 128/135] ssl option modified git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5127 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/context/Context.class.php | 16 ++++++++-------- common/tpl/common_layout.html | 6 +++--- modules/member/member.class.php | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php index a7c93f745..401f09575 100644 --- a/classes/context/Context.class.php +++ b/classes/context/Context.class.php @@ -209,14 +209,14 @@ $GLOBALS['_time_zone'] = $db_info->time_zone; $GLOBALS['_qmail_compatibility'] = $db_info->qmail_compatibility; - $GLOBALS['_use_ssl'] = $db_info->use_ssl; + $this->set('_use_ssl', $db_info->use_ssl); if($db_info->http_port) { - $GLOBALS['_http_port'] = $db_info->http_port; + $this->set('_http_port', $db_info->http_port); } if($db_info->https_port) { - $GLOBALS['_https_port'] = $db_info->https_port; + $this->set('_https_port', $db_info->https_port); } } @@ -783,7 +783,7 @@ **/ function getRequestUri($ssl_mode = FOLLOW_REQUEST_SSL, $domain = null) { static $url = array(); - if($GLOBALS['_use_ssl'] == "always") $ssl_mode = ENFORCE_SSL; + if(Context::get('_use_ssl') == "always") $ssl_mode = ENFORCE_SSL; if($domain) $domain_key = md5($domain); else $domain_key = 'default'; @@ -813,14 +813,14 @@ $url_info = parse_url('http://'.$target_url); if($use_ssl) { - if($GLOBALS["_https_port"] && $GLOBALS["_https_port"] != 443) { - $url_info['port'] = $GLOBALS["_https_port"]; + if(Context::get("_https_port") && Context::get("_https_port") != 443) { + $url_info['port'] = Context::get("_https_port"); } } else { - if($GLOBALS["_http_port"] && $GLOBALS["_http_port"] != 80) { - $url_info['port'] = $GLOBALS["_http_port"]; + if(Context::get("_http_port") && Context::get("_http_port") != 80) { + $url_info['port'] = Context::get("_http_port"); } } diff --git a/common/tpl/common_layout.html b/common/tpl/common_layout.html index 175253581..96453daae 100644 --- a/common/tpl/common_layout.html +++ b/common/tpl/common_layout.html @@ -51,9 +51,9 @@ var current_mid = "{$mid}"; var waiting_message = "{$lang->msg_call_server}"; var ssl_actions = new Array("{implode('","',$ssl_actions)}"); - var http_port = {$GLOBALS["_http_port"]}; - var https_port = {$GLOBALS["_https_port"]}; - var enforce_ssl = true; + var http_port = {Context::get("_http_port")}; + var https_port = {Context::get("_https_port")}; + var enforce_ssl = true; //]]> {Context::getHtmlHeader()} diff --git a/modules/member/member.class.php b/modules/member/member.class.php index 3fb2bc13b..df550b18e 100644 --- a/modules/member/member.class.php +++ b/modules/member/member.class.php @@ -17,7 +17,7 @@ $member_config = $oModuleModel->getModuleConfig('member'); // SSL 사용시 회원가입/정보/비밀번호등과 관련된 action에 대해 SSL 전송하도록 지정 - if($GLOBALS['_use_ssl'] == 'optional') { + if(Context::get('_use_ssl') == 'optional') { Context::addSSLAction('dispMemberLoginForm'); Context::addSSLAction('dispMemberModifyPassword'); Context::addSSLAction('dispMemberSignUpForm'); From ff391cf5005e55dd0ccc92a84a4583c1a0f1d710 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 18 Dec 2008 11:47:56 +0000 Subject: [PATCH 129/135] =?UTF-8?q?=EC=9D=BC=EB=B6=80=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=EB=90=9C=20=EB=B6=80=EB=B6=84=EC=9D=98=20=EC=9D=BC=EB=B3=B8?= =?UTF-8?q?=EC=96=B4=20=EB=B2=88=EC=97=AD=20:=20=EA=B2=80=EC=88=98?= =?UTF-8?q?=EB=8A=94=20=EC=B6=94=ED=9B=84...=20^^;?= 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@5128 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/lang/jp.lang.php | 14 +++--- modules/board/lang/jp.lang.php | 13 +++--- modules/file/lang/jp.lang.php | 10 ++--- modules/issuetracker/lang/jp.lang.php | 1 + modules/member/lang/jp.lang.php | 63 ++++++++++++++------------- 5 files changed, 51 insertions(+), 50 deletions(-) diff --git a/modules/admin/lang/jp.lang.php b/modules/admin/lang/jp.lang.php index e40266751..95b584f78 100644 --- a/modules/admin/lang/jp.lang.php +++ b/modules/admin/lang/jp.lang.php @@ -57,13 +57,13 @@ $lang->cmd_lang_select = "言語選択"; $lang->about_cmd_lang_select = "選択された言語のみでサービスを行います。"; $lang->about_recompile_cache = "要らないか誤ったキャッシューファイルを整理します。"; - $lang->use_ssl = "SSL 사용"; + $lang->use_ssl = "SSL環境設定"; $lang->ssl_options = array( - 'none' => "사용안함", - 'optional' => "선택적으로", - 'always' => "항상사용" + 'none' => "使わない", + 'optional' => "部分的に使う", + 'always' => "常に使う" ); - $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; - $lang->server_ports = "서버포트지정"; - $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; + $lang->about_use_ssl = "「部分的に使う場合」は「会員登録/会員情報変更」など特定のactionでSSLを利用する場合、「常に使う」は全てのサービスがSSLを使う場合に選択します。"; + $lang->server_ports = "サーバーポート指定"; + $lang->about_server_ports = "一般的に使われているHTTPの80、HTTPSの443以外の他のポートを使うために、ポートを指定して下さい。"; ?> diff --git a/modules/board/lang/jp.lang.php b/modules/board/lang/jp.lang.php index 3d80b91c0..a87d55c37 100644 --- a/modules/board/lang/jp.lang.php +++ b/modules/board/lang/jp.lang.php @@ -12,22 +12,21 @@ $lang->cmd_manage_menu = 'メニュー管理'; $lang->cmd_make_child = '下位カテゴリ追加'; $lang->cmd_enable_move_category = "カテゴリ位置変更(選択後上のメニューをドラッグして下さい)"; - $lang->cmd_remake_cache = 'キャッシュファイル再生性'; - $lang->cmd_layout_setup = 'レイアウト設定'; - $lang->cmd_layout_edit = 'レイアウト編集'; // 項目 $lang->parent_category_title = '上位カテゴリ名'; $lang->category_title = 'カテゴリ名'; - $lang->category_color = '분류 폰트색깔'; + $lang->category_color = 'カテゴリフォント色'; $lang->expand = '拡張表示'; $lang->category_group_srls = 'グループ制限'; $lang->search_result = '検索結果'; $lang->consultation = '相談機能'; - $lang->secret = '비밀글 기능'; + $lang->secret = '秘密文機能'; $lang->admin_mail = '管理者メールアドレス'; + + // ボタンに使用する用語 $lang->cmd_board_list = '掲示板リスト'; $lang->cmd_module_config = '掲示板共通設定'; @@ -42,8 +41,8 @@ $lang->about_except_notice = "リストの上段に常に表示されるお知らせの書き込みを一般リストからお知らせの書き込みが表示されないようにします。"; $lang->about_board = '掲示板の生成、および管理する掲示板モジュールです。'; $lang->about_consultation = "相談機能とは、管理権限のない会員に本人の書き込みだけを表示する機能です。\n但し、相談機能を使用する際は、非会員の書き込みは自動的に禁止されます。"; - $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; + $lang->about_secret = '掲示板およびコメントの秘密文を登録できるようにします。'; $lang->about_admin_mail = '書き込みやコメントが掲載される時、登録メールアドレス宛にメールが送信されます。
    複数のメールアドレスへ送信する場合は「,」(半額コンマ)区切りで登録して下さい。'; - $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; + $lang->about_category_color = 'カテゴリのフォント色を設定します。'; ?> \ No newline at end of file diff --git a/modules/file/lang/jp.lang.php b/modules/file/lang/jp.lang.php index 02dfbce6c..dcda41450 100644 --- a/modules/file/lang/jp.lang.php +++ b/modules/file/lang/jp.lang.php @@ -1,7 +1,7 @@ 翻訳:RisaPapa + * @author zero 翻訳:RisaPapa、ミニミ * @brief 添付ファイル(file)モジュールの基本言語パッケージ **/ @@ -34,11 +34,11 @@ $lang->file_search_target_list = array( 'filename' => 'ファイル名', 'filesize' => 'ファイルサイズ((Byte以上)', - 'filesize_mega' => '파일크기 (Mb, 이상)', + 'filesize_mega' => 'ファイルサイズ (Mb、以上)', 'download_count' => 'ダウンロード数(以上)', - 'user_id' => '아이디', - 'user_name' => '이름', - 'nick_name' => '닉네임', + 'user_id' => 'ID', + 'user_name' => '名前', + 'nick_name' => 'ニックネーム', 'regdate' => '登録日', 'ipaddress' => 'IPアドレス', ); diff --git a/modules/issuetracker/lang/jp.lang.php b/modules/issuetracker/lang/jp.lang.php index f26f17643..7cfac8449 100644 --- a/modules/issuetracker/lang/jp.lang.php +++ b/modules/issuetracker/lang/jp.lang.php @@ -74,6 +74,7 @@ $lang->about_component = 'イシューのコンポーネントを設定します。'; $lang->project_menus = array( + 'dispIssuetrackerViewMilestone' => 'マイルストーン', 'dispIssuetrackerViewIssue' => 'イシュー閲覧', 'dispIssuetrackerNewIssue' => 'イシュー登録', 'dispIssuetrackerViewMilestone' => 'マイルストーン', diff --git a/modules/member/lang/jp.lang.php b/modules/member/lang/jp.lang.php index a375fb18a..46249d54d 100644 --- a/modules/member/lang/jp.lang.php +++ b/modules/member/lang/jp.lang.php @@ -38,7 +38,7 @@ $lang->image_mark_max_height = '縦幅制限サイズ'; $lang->signature_max_height = '署名欄の高さの制限'; $lang->enable_openid = 'OpenID使用'; - $lang->enable_join = '会員加入を許可する'; + $lang->enable_join = '会員登録を許可する'; $lang->enable_confirm = 'メール認証を使用'; $lang->enable_ssl = 'SSL使用'; $lang->security_sign_in = 'セキュア(SSL)'; @@ -46,19 +46,19 @@ $lang->limit_date = '制限日'; $lang->after_login_url = 'ログイン後表示するページのURL'; $lang->after_logout_url = 'ログアウト後表示するページのURL'; - $lang->redirect_url = '加入後表示するページ'; - $lang->agreement = '会員加入規約'; + $lang->redirect_url = '登録後表示するページ'; + $lang->agreement = '会員登録規約'; $lang->accept_agreement = '規約に同意する'; $lang->member_info = '会員情報'; $lang->current_password = '現在のパスワード'; $lang->openid = 'OpenID'; - $lang->allow_message = '쪽지 허용'; + $lang->allow_message = 'メッセージ許可'; $lang->allow_message_type = array( - 'Y' => '모두 허용', - 'F' => '등록된 친구들만 허용', - 'N' => '모두 금지', + 'Y' => '全て許可', + 'F' => '登録した友達のみ許可', + 'N' => '全て禁止', ); - $lang->about_allow_message = '쪽지 허용 방법 및 대상을 지정할 수 있습니다'; + $lang->about_allow_message = 'メッセージの許可タイプ及び対象を設定します。'; $lang->webmaster_name = 'ウェブマスターのお名前'; $lang->webmaster_email = 'ウェブマスターのメールアドレス'; @@ -72,18 +72,18 @@ 'user_name' => 'お名前', 'nick_name' => 'ニックネーム', 'email_address' => 'メールアドレス', - 'regdate' => '加入日', - 'regdate_more' => '가입일시(이상)', - 'regdate_less' => '가입일시(이하)', + 'regdate' => '登録日', + 'regdate_more' => '登録日(以上)', + 'regdate_less' => '登録日(以下)', 'last_login' => '最近のログイン', - 'last_login_more' => '최근로그인일시(이상)', - 'last_login_less' => '최근로그인일시(이하)', + 'last_login_more' => '最近ログイン日(以上)', + 'last_login_less' => '最近ログイン日(以下)', 'extra_vars' => '拡張変数', ); $lang->cmd_login = 'ログイン'; $lang->cmd_logout = 'ログアウト'; - $lang->cmd_signup = '会員加入'; + $lang->cmd_signup = '会員登録'; $lang->cmd_modify_member_info = '会員情報修正'; $lang->cmd_modify_member_password = 'パスワード変更'; $lang->cmd_view_member_info = '会員情報表示'; @@ -95,7 +95,7 @@ $lang->cmd_member_group = 'グループ管理'; $lang->cmd_send_mail = 'メール送信'; $lang->cmd_manage_id = '禁止ID管理'; - $lang->cmd_manage_form = '加入フォーム管理'; + $lang->cmd_manage_form = '登録フォーム管理'; $lang->cmd_view_own_document = '書き込み表示'; $lang->cmd_trace_document = 'Trace Written Articles'; $lang->cmd_trace_comment = 'Trace Written Comments'; @@ -132,8 +132,8 @@ $lang->msg_exists_user_id = '既に存在するユーザIDです。他のIDを入力して下さい。'; $lang->msg_exists_email_address = '既に存在するメールアドレスです。他のメールアドレスを入力して下さい。'; $lang->msg_exists_nick_name = '既に存在するニックネームです。他のニックネームを入力して下さい。'; - $lang->msg_signup_disabled = '会員に加入することができません。'; - $lang->msg_already_logged = '既に会員に加入されています。'; + $lang->msg_signup_disabled = '会員に登録することができません。'; + $lang->msg_already_logged = '既に会員に登録されています。'; $lang->msg_not_logged = 'ログインしていません。'; $lang->msg_insert_group_name = 'グループ名を入力して下さい。'; $lang->msg_check_group = 'グループを選択して下さい。'; @@ -162,36 +162,37 @@ $lang->about_member_description = '会員に対する管理者のメモ帳です。'; $lang->about_group = '一つのユーザIDは多数のグループに属することができます。'; - $lang->about_column_type = '追加する加入フォームのタイプを指定して下さい。'; + $lang->about_column_type = '追加する登録フォームのタイプを指定して下さい。'; $lang->about_column_name = 'テンプレートで使用できる英文字の名前を入力して下さい(変数名)。'; - $lang->about_column_title = '加入または情報修正・照合時に表示されるタイトルです。'; + $lang->about_column_title = '登録または情報修正・照合時に表示されるタイトルです。'; $lang->about_default_value = 'デフォルトで入力される値を指定することができます。'; $lang->about_active = '活性化(有効化)にチェックを入れないと正常に表示されません。'; - $lang->about_form_description = '説明欄に入力すると加入時に表示されます。'; - $lang->about_required = 'チェックを入れると会員加入時に必須入力項目として設定されます。'; + $lang->about_form_description = '説明欄に入力すると登録時に表示されます。'; + $lang->about_required = 'チェックを入れると会員登録時に必須入力項目として設定されます。'; $lang->about_enable_openid = 'OpenIDをサポートする際にチェックを入れます。'; - $lang->about_enable_join = 'チェックを入れないとユーザが会員に加入できません。'; + $lang->about_enable_join = 'チェックを入れないとユーザが会員に登録できません。'; $lang->about_enable_confirm = '登録されたメールアドレスに確認メールを送信し、会員登録を確認します。'; $lang->about_enable_ssl = 'サーバーでSSLが可能な場合、会員登録/情報変更/ログイン等の個人情報はSSL(https)経由でサーバーにより安全に送信されます。'; - $lang->about_limit_day = '会員加入後一定の期間中、認証制限を行うことができます。'; + $lang->about_limit_day = '会員登録後一定の期間中、認証制限を行うことができます。'; $lang->about_limit_date = '指定された期間まで該当ユーザはログインできなくします。'; $lang->about_after_login_url = 'ログイン後表示されるページのURLを指定できます。指定のない場合、現在のページが維持されます。'; $lang->about_after_logout_url = 'ログアウト後表示されるページのURLを指定できます。指定のない場合、現在のページが維持されます。'; - $lang->about_redirect_url = '会員加入後、表示されるページのURLを指定できます。指定のない場合は会員加入する前のページに戻ります。'; - $lang->about_agreement = '会員加入規約がない場合は表示されません。'; + $lang->about_redirect_url = '会員登録後、表示されるページのURLを指定できます。指定のない場合は会員登録する前のページに戻ります。'; + $lang->about_agreement = '会員登録規約がない場合は表示されません。'; $lang->about_image_name = 'ユーザの名前を文字の代わりにイメージで表示させることができます。'; $lang->about_image_mark = '使用者の名前の前にマークを付けることができます。'; $lang->about_profile_image = 'ユーザのプロフィールイメージが使用できるようにします。'; $lang->about_signature_max_height = '署名欄の高さのサイズを制限します。 (0 もしくは空の場合は制限なし。)'; - $lang->about_accept_agreement = '加入規約をすべて読んだ上で同意します。'; + $lang->about_accept_agreement = '登録規約をすべて読んだ上で同意します。'; - $lang->about_member_default = '会員加入時に基本グループとして設定されます。'; + $lang->about_member_default = '会員登録時に基本グループとして設定されます。'; - $lang->about_openid = 'OpenIDで加入する際、IDとメールなどの基本情報は、このサイトに保存されますが、パスワードと認証のための処理用の情報は該当するOpenID提供サービス側で行われます。'; - $lang->about_openid_leave = 'OpenIDの退会は現在のサイトから会員情報を削除することを意味します。
    退会後ログインすると新しく加入することになり、書き込んだコンテンツに対する権限を維持することができません。'; - $lang->about_find_member_account = 'ID/パスワードは加入時に登録されたメールにてお知らせします。
    加入時に登録したメールアドレスを入力して「IDとパスワードの検索」ボタンをクリックして下さい。
    '; + $lang->about_openid = 'OpenIDで登録する際、IDとメールなどの基本情報は、このサイトに保存されますが、パスワードと認証のための処理用の情報は該当するOpenID提供サービス側で行われます。'; + $lang->about_openid_leave = 'OpenIDの退会は現在のサイトから会員情報を削除することを意味します。
    退会後ログインすると新しく登録することになり、書き込んだコンテンツに対する権限を維持することができません。'; + $lang->about_find_member_account = 'ID/パスワードは登録時に登録されたメールにてお知らせします。
    登録時に登録したメールアドレスを入力して「IDとパスワードの検索」ボタンをクリックして下さい。
    '; - $lang->about_member = "会員の作成・修正・削除することができ、グループの管理、加入フォームの管理などが行える会員管理モジュールです。デフォルトで作成されたグループにグループを追加作成して会員管理ができるようにし、加入フォーム管理では基本情報の他、フォームの入力情報を追加することができます。"; + $lang->about_member = "会員の作成・修正・削除することができ、グループの管理、登録フォームの管理などが行える会員管理モジュールです。デフォルトで作成されたグループにグループを追加作成して会員管理ができるようにし、登録フォーム管理では基本情報の他、フォームの入力情報を追加することができます。"; + $lang->about_ssl_port = '基本ポート以外のSSLポートを利用する場合、入力して下さい。'; ?> From 48d879147364e3ce66f929b8114809fa941d5041 Mon Sep 17 00:00:00 2001 From: haneul Date: Thu, 18 Dec 2008 16:52:25 +0000 Subject: [PATCH 130/135] 17519639: added attributes into whitelist via xquared configuration git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5129 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/skins/xquared/javascripts/xe_interface.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/editor/skins/xquared/javascripts/xe_interface.js b/modules/editor/skins/xquared/javascripts/xe_interface.js index 13a0aea26..3787bb7a3 100644 --- a/modules/editor/skins/xquared/javascripts/xe_interface.js +++ b/modules/editor/skins/xquared/javascripts/xe_interface.js @@ -30,8 +30,7 @@ function editorGetContent_xq(editor_sequence) { function editorStart_xq(editor, element, editor_sequence, content_key, editor_height, primary_key) { editor = new xq.Editor(element); - //editor.config.imagePathForDefaultToobar = request_uri+editor_path.substring(2)+'images/toolbar/'; - //editor.config.imagePathForContent = request_uri+editor_path.substring(2)+'images/content/'; + editor.config.whitelist.img = editor.config.whitelist.img.concat('editor_component', 'poll_srl','multimedia_src', 'auto_start', 'link_url', 'editor_sequence', 'use_folder', 'folder_opener', 'folder_closer', 'color', 'border_thickness', 'border_color', 'bg_color', 'border_style', 'margin', 'padding', 'bold', 'nx', 'ny', 'gx', 'gy', 'address', 'reg_sinpic', 'language','align'); editorRelKeys[editor_sequence] = new Array(); editorRelKeys[editor_sequence]['editor'] = editor; From 08eb6830b093894e03bb453de42fd44bd26cf0bf Mon Sep 17 00:00:00 2001 From: guny Date: Thu, 18 Dec 2008 17:16:19 +0000 Subject: [PATCH 131/135] =?UTF-8?q?=EC=A4=91=EA=B5=AD=EC=96=B4=20-=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=EB=90=9C=20=EB=B6=80=EB=B6=84=20=EB=B2=88?= =?UTF-8?q?=EC=97=AD.?= 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@5130 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/lang/zh-CN.lang.php | 2 +- modules/admin/lang/zh-CN.lang.php | 14 +++++++------- modules/board/lang/zh-CN.lang.php | 8 ++++---- modules/issuetracker/conf/module.xml | 2 +- modules/member/lang/zh-CN.lang.php | 10 +++++----- modules/tccommentnotify/lang/zh-CN.lang.php | 2 +- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php index d11dfd15e..3af0ffaf1 100644 --- a/common/lang/zh-CN.lang.php +++ b/common/lang/zh-CN.lang.php @@ -69,7 +69,7 @@ $lang->disable = '禁用'; // 基本词语 - $lang->menu = 'Menu'; + $lang->menu = '菜单'; $lang->no = '编号'; $lang->notice = '公告'; $lang->secret = '密帖'; diff --git a/modules/admin/lang/zh-CN.lang.php b/modules/admin/lang/zh-CN.lang.php index 262ce24ce..391d61f5d 100644 --- a/modules/admin/lang/zh-CN.lang.php +++ b/modules/admin/lang/zh-CN.lang.php @@ -58,13 +58,13 @@ $lang->cmd_lang_select = "多国语言支援"; $lang->about_cmd_lang_select = "只支援被选语言。"; $lang->about_recompile_cache = "整理无用的或错误的缓冲文件。"; - $lang->use_ssl = "SSL 사용"; + $lang->use_ssl = "SSL使用"; $lang->ssl_options = array( - 'none' => "사용안함", - 'optional' => "선택적으로", - 'always' => "항상사용" + 'none' => "不使用", + 'optional' => "选择性", + 'always' => "使用" ); - $lang->about_use_ssl = "선택적으로에서는 회원가입/정보수정등의 지정된 action에서 SSL을 사용하고 항상 사용은 모든 서비스가 SSL을 이용하게 됩니다."; - $lang->server_ports = "서버포트지정"; - $lang->about_server_ports = "HTTP는 80, HTTPS는 443이외의 다른 포트를 사용하는 경우에 포트를 지정해주어야합니다."; + $lang->about_use_ssl = "选择性使用选项应用于新用户注册/修改用户信息等已指定的action当中,使用选项应用于所有服务。"; + $lang->server_ports = "指定服务器端口"; + $lang->about_server_ports = "使用除HTTP(80), HTTPS(443)以外的端口时,必须得指定该服务器端口号。"; ?> diff --git a/modules/board/lang/zh-CN.lang.php b/modules/board/lang/zh-CN.lang.php index b2630be06..91774c441 100644 --- a/modules/board/lang/zh-CN.lang.php +++ b/modules/board/lang/zh-CN.lang.php @@ -19,12 +19,12 @@ // 项目 $lang->parent_category_title = '上级分类名'; $lang->category_title = '分类名'; - $lang->category_color = '분류 폰트색깔'; + $lang->category_color = '分类颜色'; $lang->expand = '展开'; $lang->category_group_srls = '用户组'; $lang->search_result = '搜索结果'; $lang->consultation = '咨询功能'; - $lang->secret = '비밀글 기능'; + $lang->secret = '密帖'; $lang->admin_mail = '管理员电子邮件'; // 按钮语言 @@ -42,7 +42,7 @@ $lang->about_except_notice = "设置公告目录项不再重复显示到普通目录当中。"; $lang->about_board = "可生成及管理版面的模块。"; $lang->about_consultation = "咨询功能是指除有管理权限的会员以外,其他会员只能浏览自己发表的主题。\n使用咨询功能时系统将自动禁止非会员的发表主题权限。"; - $lang->about_secret = '게시판 및 댓글의 비밀글 사용할 수 있도록 합니다.'; + $lang->about_secret = '设置主题及评论当中使用密帖与否。'; $lang->about_admin_mail = '有新的主题或评论时,将自动发电子邮件来通知管理员。
    多数电子邮件由逗号(,)来分隔。'; - $lang->about_category_color = '분류 폰트색깔을 지정합니다.'; + $lang->about_category_color = '请指定分类颜色(必须带#符号)。ex)#ff0000'; ?> \ No newline at end of file diff --git a/modules/issuetracker/conf/module.xml b/modules/issuetracker/conf/module.xml index 02589d2c1..80a1bc27e 100644 --- a/modules/issuetracker/conf/module.xml +++ b/modules/issuetracker/conf/module.xml @@ -21,7 +21,7 @@ 타임라인 - Timeline + 时间轴 Timeline Timeline diff --git a/modules/member/lang/zh-CN.lang.php b/modules/member/lang/zh-CN.lang.php index f8cfcfeb2..dc2807437 100644 --- a/modules/member/lang/zh-CN.lang.php +++ b/modules/member/lang/zh-CN.lang.php @@ -73,11 +73,11 @@ 'nick_name' => '昵称', 'email_address' => '邮箱地址', 'regdate' => '注册日期', - 'regdate_more' => '가입일시(이상)', - 'regdate_less' => '가입일시(이하)', - 'last_login' => '最近登录', - 'last_login_more' => '최근로그인일시(이상)', - 'last_login_less' => '최근로그인일시(이하)', + 'regdate_more' => '注册日期(以上)', + 'regdate_less' => '注册日期(以下)', + 'last_login' => '最后登录', + 'last_login_more' => '最后登录(以上)', + 'last_login_less' => '最后登录시(以下)', 'extra_vars' => '扩展变数', ); diff --git a/modules/tccommentnotify/lang/zh-CN.lang.php b/modules/tccommentnotify/lang/zh-CN.lang.php index dc1c37c5e..4eee57119 100644 --- a/modules/tccommentnotify/lang/zh-CN.lang.php +++ b/modules/tccommentnotify/lang/zh-CN.lang.php @@ -2,5 +2,5 @@ $lang->commentnotify = '评论通告'; $lang->msg_checked_comment_is_deleted = '已删除%d个通告。'; $lang->cmd_delete_checked_comment = '删除所选'; - $lang->site_name = 'Site Name'; + $lang->site_name = '站点名称'; ?> From ba90201a4a19cd2fff81d9f55cb61d9c69a61339 Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 18 Dec 2008 21:32:12 +0000 Subject: [PATCH 132/135] =?UTF-8?q?=EB=B2=88=EC=97=AD=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EB=82=B4=20=EB=B3=80=EC=88=98=20=EC=88=9C=EC=84=9C=20?= =?UTF-8?q?=ED=86=B5=EC=9D=BC?= 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@5131 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/lang/jp.lang.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/admin/lang/jp.lang.php b/modules/admin/lang/jp.lang.php index 95b584f78..ac817f6e2 100644 --- a/modules/admin/lang/jp.lang.php +++ b/modules/admin/lang/jp.lang.php @@ -10,8 +10,8 @@ $lang->module_category_title = array( 'service' => 'サービス型モジュール', - 'manager' => '管理型モジュール', 'utility' => '機能性モジュール', + 'manager' => '管理型モジュール', 'accessory' => '付加モジュール', 'base' => '基本モジュール', ); From 978c680cc2a4db1673817f4de8efdb7a306e662c Mon Sep 17 00:00:00 2001 From: heemin Date: Thu, 18 Dec 2008 22:09:30 +0000 Subject: [PATCH 133/135] =?UTF-8?q?=EC=96=B8=EC=96=B4=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=9D=BC=EB=B6=80=20=EB=AF=B8=EC=84=B8=20=EC=88=98=EC=A0=95?= 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@5132 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/lang/jp.lang.php | 2 +- modules/board/lang/jp.lang.php | 2 +- modules/comment/lang/jp.lang.php | 4 ++-- modules/communication/lang/jp.lang.php | 1 - modules/document/lang/jp.lang.php | 2 +- modules/file/lang/jp.lang.php | 2 +- modules/homepage/lang/jp.lang.php | 2 +- modules/importer/lang/jp.lang.php | 5 +++-- modules/install/lang/jp.lang.php | 6 ++---- modules/issuetracker/lang/jp.lang.php | 2 +- modules/member/lang/jp.lang.php | 4 ++-- modules/module/lang/jp.lang.php | 1 + modules/point/lang/jp.lang.php | 3 +-- 13 files changed, 17 insertions(+), 19 deletions(-) diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index a21c6fd7e..c1c44352d 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -76,7 +76,7 @@ $lang->category = $lang->category_srl = 'カテゴリ'; $lang->none_category = 'カテゴリ無し'; $lang->document_srl = '書き込み番号'; - $lang->user_id = 'ユーザID'; + $lang->user_id = 'ユーザーID'; $lang->author = '作成者'; $lang->password = 'パスワード'; $lang->password1 = 'パスワード'; diff --git a/modules/board/lang/jp.lang.php b/modules/board/lang/jp.lang.php index a87d55c37..ce7843b83 100644 --- a/modules/board/lang/jp.lang.php +++ b/modules/board/lang/jp.lang.php @@ -17,7 +17,7 @@ $lang->parent_category_title = '上位カテゴリ名'; $lang->category_title = 'カテゴリ名'; $lang->category_color = 'カテゴリフォント色'; - + $lang->expand = '拡張表示'; $lang->category_group_srls = 'グループ制限'; $lang->search_result = '検索結果'; diff --git a/modules/comment/lang/jp.lang.php b/modules/comment/lang/jp.lang.php index c68c821a8..ee72c6745 100644 --- a/modules/comment/lang/jp.lang.php +++ b/modules/comment/lang/jp.lang.php @@ -6,10 +6,10 @@ **/ $lang->cmd_comment_do = 'このコメントを..'; - + $lang->comment_list = 'コメントリスト'; $lang->cmd_toggle_checked_comment = '選択項目の反転'; - $lang->cmd_delete_checked_comment = '選択項目削除'; + $lang->cmd_delete_checked_comment = '選択項目削除'; $lang->comment_count = 'コメント数'; $lang->about_comment_count = 'コメントを指定した数だけ表示し、それ以上はリスト化します。'; diff --git a/modules/communication/lang/jp.lang.php b/modules/communication/lang/jp.lang.php index 97d8fb670..a9baf4a19 100644 --- a/modules/communication/lang/jp.lang.php +++ b/modules/communication/lang/jp.lang.php @@ -44,6 +44,5 @@ $lang->msg_content_is_null = '内容を入力してください。'; $lang->msg_allow_message_to_friend = '友達からのみメッセージを受信できるように設定したユーザであるため、送信できませんでした。'; $lang->msg_disallow_message = 'メッセージの受信を拒否している受信者であるため、送信できませんでした。'; - $lang->about_allow_message = 'メッセージを受信するかを設定します。'; ?> diff --git a/modules/document/lang/jp.lang.php b/modules/document/lang/jp.lang.php index 685a00521..97e9a7ec3 100644 --- a/modules/document/lang/jp.lang.php +++ b/modules/document/lang/jp.lang.php @@ -32,7 +32,7 @@ $lang->search_target_list = array( 'title' => 'タイトル', 'content' => '内容', - 'user_id' => 'ユーザID', + 'user_id' => 'ユーザーID', 'member_srl' => '会員番号', 'user_name' => 'ユーザ名', 'nick_name' => 'ニックネーム', diff --git a/modules/file/lang/jp.lang.php b/modules/file/lang/jp.lang.php index dcda41450..1f36ee473 100644 --- a/modules/file/lang/jp.lang.php +++ b/modules/file/lang/jp.lang.php @@ -36,7 +36,7 @@ 'filesize' => 'ファイルサイズ((Byte以上)', 'filesize_mega' => 'ファイルサイズ (Mb、以上)', 'download_count' => 'ダウンロード数(以上)', - 'user_id' => 'ID', + 'user_id' => 'ユーザーID', 'user_name' => '名前', 'nick_name' => 'ニックネーム', 'regdate' => '登録日', diff --git a/modules/homepage/lang/jp.lang.php b/modules/homepage/lang/jp.lang.php index b617e5ebd..844af4148 100644 --- a/modules/homepage/lang/jp.lang.php +++ b/modules/homepage/lang/jp.lang.php @@ -1,7 +1,7 @@ 'Step 1-3. 対象カテゴリ選択', 2 => 'Step 2. XMLファイルアップロード', 3 => 'Step 2. 会員情報と書き込みデータの同期化', + 99 => 'データ移転', ); $lang->import_step_desc = array( @@ -35,6 +36,7 @@ 13 => 'データ変換を行う対象カテゴリを選択してください。', 2 => "データ変換を行うXMLファイルパスを入力してください。同じアカウントのサーバ上では、相対または絶対パスを、異なるサーバにアップロードされている場合は「http://アドレス..」を入力してください。", 3 => '会員情報と書き込みデータの情報の変換を行った後、データが合わない場合があります。この時に同期化を行うと「user_id」をもとに正しく動作するようにします。', + 99 => 'データを移転しています。', ); // 案内/警告 @@ -45,7 +47,7 @@ $lang->msg_import_finished = '%d/%d個のデータ変換が完了しました。場合によって変換されていないデータがあることもあります。'; $lang->msg_sync_completed = '会員情報、書き込みデータ、コメントのデータの同期化(変換)が完了しました。'; - // Bla, Blah.. + // その他.. $lang->about_type_member = 'データ変換の対象が会員情報の場合は選択してください。'; $lang->about_type_message = 'データ移転対象がメッセージの場合選択してください。'; $lang->about_type_ttxml = 'データ移転対象が、TTXML(textcube系列)の場合選択してください。'; @@ -53,6 +55,5 @@ $lang->about_type_module = 'データ変換の対象が書き込みデータである場合は選択してください。'; $lang->about_type_syncmember = '会員情報と書き込みデータなどの変換を行った後、会員情報を同期化する必要がある場合は、選択してください。'; $lang->about_importer = "ゼロボード4、zb5betaまたは他のプログラムの書き込みデータをXEのデータに変換することができます。\n変換するためには、XML Exporterを利用して変換したい書き込みデータをXMLファイルで作成してアップロードしてください。"; - $lang->about_target_path = "添付ファイルをダウンロードするためには、ゼロボード4がインストールされた場所を入力してください。同じサーバ上にある場合は「/home/ID/public_html/bbs」のように入力し、他のサーバにある場合は、「http://ドメイン/bbs」のようにゼロボードがインストールされているURLを入力してください。"; ?> diff --git a/modules/install/lang/jp.lang.php b/modules/install/lang/jp.lang.php index a1ed00938..8076e4c59 100644 --- a/modules/install/lang/jp.lang.php +++ b/modules/install/lang/jp.lang.php @@ -16,8 +16,8 @@ Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA この利用許諾契約書を、一字一句そのままに複製し頒布することは許可する。しかし変更は認めない。 - はじめに + ソフトウェア向けライセンスの大半は、あなたがそのソフトウェアを共有したり変更したりする自由を奪うように設計されています。対照的に、GNU 一般公衆利用許諾契約書は、あなたがフリーソフトウェアを共有したり変更したりする自由を保証する--すなわち、ソフトウェアがそのユーザすべてにとってフリーであることを保証することを目的としています。この一般公衆利用許諾契約書はフリーソフトウェア財団のソフトウェアのほとんどに適用されており、また GNU GPLを適用すると決めたフリーソフトウェア財団以外の作者によるプログラムにも適用されています(いくつかのフリーソフトウェア財団のソフトウェアには、GNU GPLではなくGNU ライブラリ一般公衆利用許諾契約書が適用されています)。あなたもまた、ご自分のプログラムにGNU GPLを適用することが可能です。 私たちがフリーソフトウェアと言うとき、それは利用の自由について言及しているのであって、価格は問題にしていません。私たちの一般公衆利用許諾契約書は、あなたがフリーソフトウェアの複製物を頒布する自由を保証するよう設計されています(希望に応じてその種のサービスに手数料を課す自由も保証されます)。また、あなたがソースコードを受け取るか、あるいは望めばそれを入手することが可能であるということ、あなたがソフトウェアを変更し、その一部を新たなフリーのプログラムで利用出来るということ、そして、以上で述べたようなことが出来るということがあなたに知らされるということも保証されます。 @@ -35,6 +35,7 @@ Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place - Suite 複製や頒布、改変についての正確な条件と制約を以下で述べていきます。 複製、頒布、改変に関する条件と制約 + 0. この利用許諾契約書は、そのプログラム(またはその他の著作物)をこの一般公衆利用許諾契約書の定める条件の下で頒布出来る、という告知が著作権者によって記載されたプログラムまたはその他の著作物全般に適用される。以下では、「『プログラム』」とはそのようにしてこの契約書が適用されたプログラムや著作物全般を意味し、また「『プログラム』を基にした著作物」とは『プログラム』やその他著作権法の下で派生物と見なされるもの全般を指す。すなわち、『プログラム』かその一部を、全く同一のままか、改変を加えたか、あるいは他の言語に翻訳された形で含む著作物のことである(「改変」という語の本来の意味からはずれるが、以下では翻訳も改変の一種と見なす)。それぞれの契約者は「あなた」と表現される。 複製や頒布、改変以外の活動はこの契約書ではカバーされない。それらはこの契約書の対象外である。『プログラム』を実行する行為自体に制限はない。また、そのような『プログラム』の出力結果は、その内容が『プログラム』を基にした著作物を構成する場合のみこの契約書によって保護される(『プログラム』を実行したことによって作成されたということとは無関係である)。このような線引きの妥当性は、『プログラム』が何をするのかに依存する。 @@ -97,10 +98,8 @@ c) 対応するソースコード頒布の申し出に際して、あなたが 12. 適切な法か書面での同意によって命ぜられない限り、著作権者、または上記で許可されている通りに『プログラム』を改変または再頒布したその他の団体は、あなたに対して『プログラム』の利用ないし利用不能で生じた通常損害や特別損害、偶発損害、間接損害(データの消失や不正確な処理、あなたか第三者が被った損失、あるいは『プログラム』が他のソフトウェアと一緒に動作しないという不具合などを含むがそれらに限らない)に一切の責任を負わない。そのような損害が生ずる可能性について彼らが忠告されていたとしても同様である。 - 条件と制約終わり - GNU 一般公衆利用許諾契約書 - 原文 GNU GENERAL PUBLIC LICENSE @@ -262,7 +261,6 @@ EndOfLicense; $lang->qmail_compatibility = 'Qmail 互換'; $lang->about_qmail_compatibility = 'Qmail等、CRLFを改行コードで認識できないMTAでメールが送信出来るようにします。'; - $lang->about_database_file = 'Sqliteはファイルにデータを保存します。そのため、データベースファイルにはウェブからアクセスできない場所にしなければなりません。
    データファイルのパーミッションは「707」に設定して下さい。'; $lang->success_installed = '正常にインストールされました。'; diff --git a/modules/issuetracker/lang/jp.lang.php b/modules/issuetracker/lang/jp.lang.php index 7cfac8449..ef9c3e578 100644 --- a/modules/issuetracker/lang/jp.lang.php +++ b/modules/issuetracker/lang/jp.lang.php @@ -77,7 +77,7 @@ 'dispIssuetrackerViewMilestone' => 'マイルストーン', 'dispIssuetrackerViewIssue' => 'イシュー閲覧', 'dispIssuetrackerNewIssue' => 'イシュー登録', - 'dispIssuetrackerViewMilestone' => 'マイルストーン', + 'dispIssuetrackerTimeline' => 'マイルストーン', 'dispIssuetrackerViewSource' => 'ソースコード閲覧', 'dispIssuetrackerDownload' => 'ダウンロード', 'dispIssuetrackerAdminProjectSetting' => '設定', diff --git a/modules/member/lang/jp.lang.php b/modules/member/lang/jp.lang.php index 46249d54d..454e7cf62 100644 --- a/modules/member/lang/jp.lang.php +++ b/modules/member/lang/jp.lang.php @@ -37,7 +37,7 @@ $lang->image_mark_max_width = '横幅制限サイズ'; $lang->image_mark_max_height = '縦幅制限サイズ'; $lang->signature_max_height = '署名欄の高さの制限'; - $lang->enable_openid = 'OpenID使用'; + $lang->enable_openid = 'OpenID使用'; $lang->enable_join = '会員登録を許可する'; $lang->enable_confirm = 'メール認証を使用'; $lang->enable_ssl = 'SSL使用'; @@ -64,7 +64,7 @@ $lang->webmaster_email = 'ウェブマスターのメールアドレス'; $lang->about_keep_signed = 'ブラウザを閉じてもログイン状態が維持されます。\n\nログイン維持機能を利用すると、次回からログインする必要がなくなります。\n\nただ、インターネットカフェ、学校など公共場所で利用する場合、個人情報が流出する恐れがありますので、必ずログアウトしてください。'; - $lang->about_webmaster_name = '確認メール、またはサイト管理時に使用されるウェブマスターのお名前を入力してください(デフォルト : webmaster)。'; + $lang->about_webmaster_name = '確認メール、またはサイト管理時に使用されるウェブマスターのお名前を入力してください(デフォルト : webmaster)。'; $lang->about_webmaster_email = 'ウェブマスターのメールアドレスを入力して下さい。'; $lang->search_target_list = array( diff --git a/modules/module/lang/jp.lang.php b/modules/module/lang/jp.lang.php index 4da7f9cb5..ba35905bb 100644 --- a/modules/module/lang/jp.lang.php +++ b/modules/module/lang/jp.lang.php @@ -45,6 +45,7 @@ $lang->msg_no_checked_document = '選択された書き込みがありません。'; $lang->msg_move_failed = '移動することができませんでした。'; $lang->msg_cannot_delete_for_child = '下位カテゴリのカテゴリは削除することができません。'; + $lang->msg_limit_mid ="モジュール名は「 半角英小文字+[半角英小文字+半角数字+_] 」のみ出来ます。"; $lang->about_browser_title = "ブラウザのタイトルバーに表示される内容です。RSS/Trackbackでも使用します。"; $lang->about_mid = "モジュール名は、http://アドレス/?mid=モジュール名、のように直接呼び出せる値です(英数+[英数,_のみ可])。"; diff --git a/modules/point/lang/jp.lang.php b/modules/point/lang/jp.lang.php index f477d7222..962b69036 100644 --- a/modules/point/lang/jp.lang.php +++ b/modules/point/lang/jp.lang.php @@ -5,7 +5,7 @@ * @brief ポイント(point)モジュールの基本言語パッケージ **/ - $lang->point = "ポイント"; + $lang->point = "ポイント"; $lang->level = "レベル"; $lang->about_point_module = "ポイントモジュールでは、書き込み作成/コメント作成/アップロード/ダウンロードなどのユーザの活動に対してポイントの計算を行います。但し、ポイントモジュールでは設定のみを行い、アドオンでポイントシステムを「使用」に設定しなければポイントは累積されません。"; @@ -51,7 +51,6 @@ $lang->point_voted = '推薦'; $lang->point_blamed = '非推薦'; - $lang->cmd_point_config = 'デフォルト設定'; $lang->cmd_point_module_config = 'モジュール別設定'; $lang->cmd_point_act_config = '機能別アクション設定'; From 8a611484fbaa69ecc889b108d732be10fb6bb5e2 Mon Sep 17 00:00:00 2001 From: royallin Date: Fri, 19 Dec 2008 00:49:18 +0000 Subject: [PATCH 134/135] Modified & Translation git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5133 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/admin/lang/zh-TW.lang.php | 4 ++-- modules/board/lang/zh-TW.lang.php | 2 +- modules/homepage/lang/zh-TW.lang.php | 2 +- modules/issuetracker/lang/zh-TW.lang.php | 4 ++-- modules/member/lang/zh-TW.lang.php | 7 ++++--- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/modules/admin/lang/zh-TW.lang.php b/modules/admin/lang/zh-TW.lang.php index db14dfae0..de5b63132 100644 --- a/modules/admin/lang/zh-TW.lang.php +++ b/modules/admin/lang/zh-TW.lang.php @@ -10,8 +10,8 @@ $lang->module_category_title = array( 'service' => '服務類模組', - 'manager' => '管理類模組', 'utility' => '功能模組', + 'manager' => '管理類模組', 'accessory' => '附加模組', 'base' => '基本模組', ); @@ -65,5 +65,5 @@ ); $lang->about_use_ssl = "當會員登入或修改資料等動作時,可選擇是否使用 SSL 功能。"; $lang->server_ports = "主機埠口"; - $lang->about_server_ports = "HTTP是 80、HTTPS是 443,如果想使用其他的埠口的話,請自行設定。"; + $lang->about_server_ports = "預設 HTTP 是 80、HTTPS 是 443,如果想使用其他的埠口的話,請自行設定。"; ?> diff --git a/modules/board/lang/zh-TW.lang.php b/modules/board/lang/zh-TW.lang.php index 863ed9186..4ebb1d874 100644 --- a/modules/board/lang/zh-TW.lang.php +++ b/modules/board/lang/zh-TW.lang.php @@ -38,7 +38,7 @@ $lang->about_except_notice = '設置公告列表項目,不再重複顯示到普通列表當中。'; $lang->about_board = '可建立及管理討論板的模組。'; $lang->about_consultation = "咨詢功能是指除有管理權限的會員以外,其他會員只能瀏覽自己發表的主題。\n使用咨詢功能時系統將自動禁止非會員的發表主題權限。"; - $lang->about_secret = '可用於討論板或回覆時使用。'; + $lang->about_secret = '可用於討論板或回覆時選擇是否使用。'; $lang->about_admin_mail = '有新的主題或評論時,將自動發電子郵件來通知管理員。
    多數電子郵件由逗號(,)區隔。'; $lang->about_category_color = '設定分類顏色。'; ?> \ No newline at end of file diff --git a/modules/homepage/lang/zh-TW.lang.php b/modules/homepage/lang/zh-TW.lang.php index 7e7c0e55a..804ba34cd 100644 --- a/modules/homepage/lang/zh-TW.lang.php +++ b/modules/homepage/lang/zh-TW.lang.php @@ -11,7 +11,7 @@ $lang->module_type = "目標"; $lang->board = "討論板"; $lang->page = "頁面"; - $lang->url = "URL"; + $lang->url = "網址"; $lang->module_id = "模組 ID"; $lang->item_group_grant = "顯示群組"; $lang->homepage_admin = "網站管理者"; diff --git a/modules/issuetracker/lang/zh-TW.lang.php b/modules/issuetracker/lang/zh-TW.lang.php index f6af51060..d767dc65d 100644 --- a/modules/issuetracker/lang/zh-TW.lang.php +++ b/modules/issuetracker/lang/zh-TW.lang.php @@ -74,10 +74,10 @@ $lang->about_component = '設置問題組件。'; $lang->project_menus = array( + 'dispIssuetrackerViewMilestone' => '版本開發', 'dispIssuetrackerViewIssue' => '問題清單', 'dispIssuetrackerNewIssue' => '發表問題', 'dispIssuetrackerTimeline' => '時間軸', - 'dispIssuetrackerViewMilestone' => '版本開發', 'dispIssuetrackerViewSource' => '檢視原始碼', 'dispIssuetrackerDownload' => '下載', 'dispIssuetrackerAdminProjectSetting' => '設置', @@ -87,7 +87,7 @@ $lang->msg_attached = '檔案已新增。'; $lang->msg_no_releases = '尚未被新增的發佈版本。'; - $lang->cmd_document_do = '將把此問題.. '; + $lang->cmd_document_do = '將此問題.. '; $lang->not_assigned = '尚未分配'; $lang->not_assigned_description = '尚未被分配的問題清單'; ?> diff --git a/modules/member/lang/zh-TW.lang.php b/modules/member/lang/zh-TW.lang.php index b2750db52..ae503ec69 100644 --- a/modules/member/lang/zh-TW.lang.php +++ b/modules/member/lang/zh-TW.lang.php @@ -46,7 +46,7 @@ $lang->limit_date = '限制日期'; $lang->after_login_url = '登入後頁面轉向'; $lang->after_logout_url = '登出後頁面轉向'; - $lang->redirect_url = '註冊會員後頁面轉向'; + $lang->redirect_url = '會員註冊後頁面轉向'; $lang->agreement = '會員使用條款'; $lang->accept_agreement = '同意條款'; $lang->member_info = '會員資料'; @@ -177,8 +177,8 @@ $lang->about_limit_day = '註冊會員後的認證有效期限。'; $lang->about_limit_date = '直到指定日期,否則該帳號都無法登入。'; $lang->about_after_login_url = '可以指定登入後的頁面轉向網址(留空為目前頁面)。'; - $lang->about_after_logout_url = '可以指定登出登錄後的頁面轉向網址(留空為目前頁面)。'; - $lang->about_redirect_url = '請輸入註冊會員後的頁面轉向網址。(留空為返回前頁)'; + $lang->about_after_logout_url = '可以指定登出後的頁面轉向網址(留空為目前頁面)。'; + $lang->about_redirect_url = '請輸入會員註冊後的頁面轉向網址。(留空為返回前頁)'; $lang->about_agreement = '沒有會員條款時不顯示。'; $lang->about_image_name = '用戶暱稱可以用圖片替代。'; @@ -194,4 +194,5 @@ $lang->about_find_member_account = '帳號/密碼將發送到您註冊時,所輸入的電子郵件當中。
    輸入註冊時的電子郵件地址後,請按「查詢帳號/密碼」按鈕。
    '; $lang->about_member = "可以新增/修改/刪除會員及管理用戶組或註冊表單的會員管理模組。\n此模組不僅可以建立預設用戶組以外的其他用戶組來管理會員,並且通過註冊表單的管理獲得除會員基本資料以外的延伸資料。"; + $lang->about_ssl_port = '請輸入想要使用預設 SSL 埠口以外的埠口。'; ?> From f541dd59b9fcf1f67ee1e3a3df45b9638f67e136 Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 19 Dec 2008 01:53:13 +0000 Subject: [PATCH 135/135] =?UTF-8?q?XE=201.1.2=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EB=AA=85=EC=8B=9C?= 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@5134 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- config/config.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.inc.php b/config/config.inc.php index a83006794..e2642cfae 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -14,7 +14,7 @@ * 이 내용은 XE의 버전을 관리자 페이지에 표시하기 위한 용도이며 * config.inc.php의 수정이 없더라도 공식 릴리즈시에 수정되어 함께 배포되어야 함 **/ - define('__ZBXE_VERSION__', '1.1.1'); + define('__ZBXE_VERSION__', '1.1.2'); /** * @brief 디버깅 메세지 출력