\n\n");
+ // 카드제목
+ printf("\n\n\n",htmlspecialchars($this->title),htmlspecialchars($titlePageStr));
}
/**
@@ -27,7 +29,7 @@
**/
function printTitle() {
if($this->totalPage > $this->mobilePage) $titlePageStr = sprintf("(%d/%d)",$this->mobilePage, $this->totalPage);
- printf('<%s%s>
%s', $this->title,$titlePageStr,"\n");
+ printf('<%s%s>
%s', htmlspecialchars($this->title),htmlspecialchars($titlePageStr),"\n");
}
/**
@@ -38,24 +40,42 @@
if($this->hasChilds()) {
foreach($this->getChilds() as $key => $val) {
if(!$val['link']) continue;
- printf('%s', $this->getNo(), $val['text'], $val['href'], "\n");
+ printf('%s', $this->getNo(), htmlspecialchars($val['text']), $val['href'], "\n");
+ if($val['extra']) printf("%s\n",$val['extra']);
}
} else {
printf('%s
%s', str_replace("
","
",$this->getContent()),"\n");
- }
+ }
+ print('
');
}
/**
- * @brief 버튼을 출력함
+ * @brief 버튼을 출력함
**/
function printBtn() {
if($this->nextUrl) {
$url = $this->nextUrl;
- printf('%s', $this->getNo(), $url->text, $url->url, "\n");
+ printf('%s', $url->text, $url->url, "\n");
}
if($this->prevUrl) {
$url = $this->prevUrl;
- printf('%s', $this->getNo(), $url->text, $url->url, "\n");
+ printf('%s', $url->text, $url->url, "\n");
+ }
+ // 기타 해당사항 없는 버튼 출력 담당 (array로 전달) type??
+ if($this->etcBtn) {
+ if(is_array($this->etcBtn)) {
+ foreach($this->etcBtn as $key=>$val) {
+ printf('%s', $key, $val['text'], $val['url'], "\n");
+ }
+ }
+ }
+ // 언어선택
+ if(!parent::isLangChange()){
+ $url = getUrl('','lcm','1','sel_lang',Context::getLangType(),'return_uri',Context::get('current_url'));
+ printf('%s', 'Language : '.Context::getLang('select_lang'), $url, "\n");
+ }
+ else {
+ printf('%s', Context::getLang('lang_return'), Context::get('return_uri'), "\n");
}
if($this->homeUrl) {
$url = $this->homeUrl;
@@ -74,7 +94,12 @@
// 목록등에서 일련 번호를 리턴한다
function getNo() {
- return "vnd.skmn".parent::getNo();
+ if(Context::get('mobile_skt')==1) {
+ return "vnd.skmn".parent::getNo();
+ }
+ else {
+ return parent::getNo();
+ }
return $str;
}
}
diff --git a/addons/mobile/conf/info.xml b/addons/mobile/conf/info.xml
index 2efec6126..5dff68f47 100644
--- a/addons/mobile/conf/info.xml
+++ b/addons/mobile/conf/info.xml
@@ -1,72 +1,86 @@
-
-
- 모바일XE 애드온
- モバイルXEアドオン
- 手机XE插件
- Mobile XE
- XE行動上網
-
- 모바일에서 접속시 헤더 정보를 분석하여 메뉴 - 모듈의 관계를 이용하여 WAP 태그로 출력하는 애드온입니다.
- wml, hdml, mhtml를 지원하고 그 이외의 경우에는 동작하지 않습니다.
-
-
- モバイル端末機からアクセス時、ヘッダー(header)情報を分析してメニュー - モジュールの関係を利用してWAPタグに変換表示するアドオンです。
- wml, hdml, mhtmlをサポートし、その以外は対応していません。
-
-
- 通过手机访问网站时将网页输出为WAP标签的插件。
- 支持语言:wml, hdml, mhtml
-
-
- This addon displays WAP tag by analyzing header information on mobile connection.
- Only wml, hdml, mhtml formats are provided.
-
-
- 透過行動工具上網時,會將網頁轉換為WAP標籤顯示。
- 只限於 wml, hdml, mhtml格式。
-
- 0.1
- 2008-06-20
-
-
- zero
- zero
- zero
- zero
- zero
-
-
-
-
- 문자셋
- 文字コード
- 编码
- Charset
- 編碼
-
- 모바일 기기의 경우 utf-8 문자셋을 인식하지 못할 수 있습니다.
- 문자셋에 원하시는 문자셋을 입력하면 자동으로 변환하여 출력하여 모바일에서 이상없이 출력하도록 합니다.
- 기본값은 euc-kr입니다.
-
-
- ある特定のモバイル機器ではutf-8文字コードの認識が出来ない場合があります。
- 文字コードを設定すると、該当文字コードに自動変換して正常に表示出来るようになります。
- 本アドオンのデフォルト値はeuc-krです。
-
-
- 手机有时无法识别utf-8编码,这时输入相应的编码值即可自动转换。
- 默认编码为euc-kr。
-
-
- utf-8 cannot be read for mobile tools.
- Mobile tools will display correct charset when you input charset you want.
- Default charset is euc-kr.
-
-
- 行動工具無法讀取utf-8編碼。
- 當您輸入所想要的編碼時,行動工具將會正確的顯示。
- 預設編碼是euc-kr.
-
-
-
-
+
+
+ 모바일XE 애드온
+ モバイルXEアドオン
+ 手机XE插件
+ Mobile XE
+ XE行動上網
+
+ 모바일에서 접속시 헤더 정보를 분석하여 메뉴 - 모듈의 관계를 이용하여 WAP 태그로 출력하는 애드온입니다.
+ wml, hdml, mhtml를 지원하고 그 이외의 경우에는 동작하지 않습니다.
+
+
+ モバイル端末機からアクセス時、ヘッダー(header)情報を分析して「メニュー」と「モジュール」の関係を利用してWAPタグに変換表示するアドオンです。
+ wml, hdml, mhtmlをサポートし、その以外は対応していません。
+
+
+ 通过手机访问网站时将网页输出为WAP标签的插件。
+ 支持语言:wml, hdml, mhtml
+
+
+ This addon displays WAP tag by analyzing header information on mobile connection.
+ Only wml, hdml, mhtml formats are provided.
+
+
+ 透過行動工具上網時,會將網頁轉換為WAP標籤顯示。
+ 只限於 wml, hdml, mhtml格式。
+
+ 0.1.1
+ 2009-05-23
+
+
+ zero
+ zero
+ zero
+ zero
+ zero
+
+
+
+
+ misol
+ misol
+ misol
+ misol
+ misol
+
+ 언어선택 추가(WML, mHTML)
+ 인코딩 설정 개선
+ 그 외 소소한 개선들
+
+
+
+
+ 문자셋
+ 文字コード
+ 编码
+ Charset
+ 編碼
+
+ 모바일 기기의 경우 UTF-8 문자셋을 인식하지 못할 수 있습니다.
+ 문자셋에 원하시는 문자셋을 입력하면 자동으로 변환하여 출력하여 모바일에서 이상없이 출력하도록 합니다.
+ 기본값은 UTF-8입니다.
+ (*SK Telecom 휴대전화의 경우 euc-kr인코딩만 지원하므로, 강제로 euc-kr인코딩만 지원합니다.)
+
+
+ ある特定のモバイル機器ではutf-8文字コードの認識が出来ない場合があります。
+ 文字コードを設定すると、(日本語だけの場合)該当文字コードに自動変換して正常に表示出来るようになります。
+ 本アドオンのデフォルト値はUTF-8で、日本の携帯はshift-jisが一般的です。
+
+
+ 手机有时无法识别utf-8编码,这时输入相应的编码值即可自动转换。
+ 默认编码为UTF-8。
+
+
+ utf-8 cannot be read for mobile tools.
+ Mobile tools will display correct charset when you input charset you want.
+ Default charset is UTF-8.
+
+
+ 行動工具無法讀取utf-8編碼。
+ 當您輸入所想要的編碼時,行動工具將會正確的顯示。
+ 預設編碼是UTF-8.
+
+
+
+
diff --git a/addons/mobile/lang/en.lang.php b/addons/mobile/lang/en.lang.php
index 977217ca8..a0c93fd16 100644
--- a/addons/mobile/lang/en.lang.php
+++ b/addons/mobile/lang/en.lang.php
@@ -4,6 +4,10 @@
* @author zero (zero@nzeo.com)
* @brief English Language Pack (Basic Contents only)
**/
+ // lang select by misol
+ $lang->president_lang = 'selected Language';
+ $lang->select_lang = 'select Language';
+ $lang->lang_return = 'Go Back';
$lang->cmd_go_upper = 'Upper';
$lang->cmd_go_home = 'Go Home';
diff --git a/addons/mobile/lang/jp.lang.php b/addons/mobile/lang/jp.lang.php
index eb2715145..697c560e6 100644
--- a/addons/mobile/lang/jp.lang.php
+++ b/addons/mobile/lang/jp.lang.php
@@ -5,7 +5,7 @@
* @brief 日本語言語パッケージ
**/
- $lang->cmd_go_upper = '上位';
+ $lang->cmd_go_upper = '上位メニュー';
$lang->cmd_go_home = 'トップへ';
$lang->cmd_view_sitemap = 'サイトマップ';
?>
diff --git a/addons/mobile/lang/ko.lang.php b/addons/mobile/lang/ko.lang.php
index 6b20e1f0f..f0b28dc0f 100644
--- a/addons/mobile/lang/ko.lang.php
+++ b/addons/mobile/lang/ko.lang.php
@@ -5,7 +5,13 @@
* @brief 한국어 언어팩 (기본적인 내용만 수록)
**/
+ // 언어 선택부분 by misol
+ $lang->president_lang = '현재 언어';
+ $lang->select_lang = '언어 선택';
+ $lang->lang_return = '돌아가기';
+
$lang->cmd_go_upper = '상위';
$lang->cmd_go_home = '홈으로';
$lang->cmd_view_sitemap = '사이트맵 보기';
+
?>
diff --git a/addons/mobile/mobile.addon.php b/addons/mobile/mobile.addon.php
index 02169f752..3c1f2b50b 100644
--- a/addons/mobile/mobile.addon.php
+++ b/addons/mobile/mobile.addon.php
@@ -42,6 +42,11 @@
// 네비게이트 모드이거나 WAP class가 있을 경우 미리 컨텐츠를 추출하여 출력/ 종료
if($called_position == 'before_module_proc') {
+ if($oMobile->isLangChange()) {
+ $oMobile->setLangType();
+ $oMobile->displayLangSelect();
+ }
+
// 네비게이트 모드이면 네비게이션 컨텐츠 출력
if($oMobile->isNavigationMode()) $oMobile->displayNavigationContent();
diff --git a/addons/point_level_icon/conf/info.xml b/addons/point_level_icon/conf/info.xml
index f51af83c7..68d8dafe2 100644
--- a/addons/point_level_icon/conf/info.xml
+++ b/addons/point_level_icon/conf/info.xml
@@ -17,8 +17,8 @@
级别图标可以在模块 > 积分系统中进行选择。
- ポイントシステムを使用する場合、ユーザ名の前にレベルアイコンの表示が出来ます。
- レベルアイコンは、「モジュール > ポイントシステム」で選択出来ます。
+ ポイントシステムを使用する場合、ユーザ名の前にレベルアイコンの表示します。
+ レベルアイコンは、「モジュール > ポイントシステム」で選択します。
This addon displays level icon in front of the user name when you are using the point system.
diff --git a/addons/resize_image/conf/info.xml b/addons/resize_image/conf/info.xml
index 0f341bd1d..77d3c646e 100644
--- a/addons/resize_image/conf/info.xml
+++ b/addons/resize_image/conf/info.xml
@@ -12,7 +12,7 @@
본문내에 삽입된 이미지의 크기를 본문크기에 맞게 하고 클릭시 원본을 보여주는 애드온입니다.
- 本文内に挿入されたイメージのサイズを本文の幅サイズに合わせてリーサイズし、クリックした時、オリジナルサイズのイメージを表示するアドオンです。
+ 本文内に挿入されたイメージのサイズを本文の幅サイズに合わせてリーサイズし、クリックした時、オリジナルサイズのイメージを表示します。
自动调整主题内容区内的图片大小,点击将显示原始大小的插件。
diff --git a/addons/resize_image/js/resize_image.js b/addons/resize_image/js/resize_image.js
index dd3ecd111..9f8b5982e 100644
--- a/addons/resize_image/js/resize_image.js
+++ b/addons/resize_image/js/resize_image.js
@@ -157,48 +157,50 @@ function slideshow(event) {
xScreen.xeShow();
}
-$(window).load(function(){
+$(document).ready(function(){
var regx_skip = /(?:modules|addons|classes|common|layouts|libs|widgets)/i;
var regx_parent = /(?:document|comment)_[0-9]+_[0-9]+/i;
- var xe_content = $(".xe_content");
- var overflow = xe_content.css("overflow");
- var width = xe_content.css("width");
- xe_content.css("overflow","hidden");
- xe_content.css("width","100%");
- var offsetWidth = xe_content.attr("offsetWidth");
- xe_content.css("overflow",overflow);
- xe_content.css("width",width);
+ $(".xe_content").each(function() {
+ $(this).find("img").each(function(){
+ var img = $(this);
+ var width = img.attr("width");
+ if(!width) width = img.width();
+ img.attr("orig_width",width);
+ img.attr("width",1);
+ });
+ var offsetWidth = $(this).width();
- // 이미지 목록을 가져와서 리사이즈
- $(".xe_content img").each(function(){
- var img = $(this);
- var src = img.attr("src");
- var width = img.attr("width");
- var height = img.attr("height");
-
- // XE 내부 프로그램 또는 스킨의 이미지라면 이미지 리사이즈를 하지 않음
- if ( regx_skip.test(src) ) return;
-
- // 커스텀 속성 추가
- img.attr("rel", "xe_gallery");
-
- // 크기를 계산한다
- if(width>offsetWidth) {
- img.attr("width",offsetWidth-1);
- img.attr("height",parseInt(offsetWidth/width*height,10));
- }
-
- // 링크가 설정되어 있거나 onclick 이벤트가 부여되어 있으면 원본 보기를 하지 않음
- if ( !img.parent("a").size() && !img.attr("onclick") ) {
- // 스타일 설정
- img.css("cursor", "pointer");
+ $(this).find("img").each(function(){
+ var img = $(this);
+ var src = img.attr("src");
+ img.attr("width",img.attr("orig_width"));
+ img.removeAttr("orig_width",'');
+ var width = img.attr("width");
+ var height = img.attr("height");
- // 클릭하면 슬라이드쇼 시작
- img.click(slideshow);
- }
+ // XE 내부 프로그램 또는 스킨의 이미지라면 이미지 리사이즈를 하지 않음
+ if ( !regx_skip.test(src) ) {
+ // 커스텀 속성 추가
+ img.attr("rel", "xe_gallery");
- });
+ // 크기를 계산한다
+ if(width>offsetWidth) {
+ img.attr("width",offsetWidth-10);
+ img.attr("height",parseInt(offsetWidth/width*height,10));
+ }
+
+ // 링크가 설정되어 있거나 onclick 이벤트가 부여되어 있으면 원본 보기를 하지 않음
+ if ( !img.parent("a").size() && !img.attr("onclick") ) {
+ // 스타일 설정
+ img.css("cursor", "pointer");
+
+ // 클릭하면 슬라이드쇼 시작
+ img.click(slideshow);
+ }
+ }
+ });
+ });
});
})(jQuery);
diff --git a/addons/smartphone/classes/smartphone.class.php b/addons/smartphone/classes/smartphone.class.php
index 9ba8f7f0f..652a33898 100644
--- a/addons/smartphone/classes/smartphone.class.php
+++ b/addons/smartphone/classes/smartphone.class.php
@@ -1,106 +1,134 @@
oModule = $oModule;
+ $this->module_info = $module_info;
+
+ if(!$this->module_info->menu_srl) {
+ $oMenuModel = &getAdminModel('menu');
+ $menus = $oMenuModel->getMenus($this->module_info->site_srl);
+ if($menus[0]) $this->module_info->menu_srl = $menus[0]->menu_srl;
+ }
+
+ if($this->module_info->menu_srl) {
+ $menu_cache_file = sprintf(_XE_PATH_.'files/cache/menu/%d.php', $this->module_info->menu_srl);
+ if(!file_exists($menu_cache_file)) return;
+ @include $menu_cache_file;
+ Context::addHtmlHeader(sprintf('', $this->_getAllItems($menu->list)));
+ $this->_setParentUrl($menu->list);
}
}
- function setModuleInstance(&$oModule) {
- if($this->oModule) return;
- $this->oModule = $oModule;
+ function _setParentUrl($menu_list) {
+ if(!count($menu_list)) return;
+ foreach($menu_list as $key => $val) {
+ if(!$val['text']) continue;
+ if($val['list'] && $this->_setParentUrl($val['list'])) {
+ $href = $val['href'];
+ if(preg_match('/^[a-z0-9_]+$/i',$val['url'])) $href = getUrl('','mid',$val['url'],'smartphone','true');
+ else $href = $val['href'];
+ $this->setParentUrl($href);
+ return false;
+ }
+ if($val['url']==Context::get('mid')) return true;
+ }
+ return false;
+ }
+
+ function _getAllItems($menu_list, $depth=0) {
+ if(!count($menu_list)) return;
+ $output = '';
+
+ foreach($menu_list as $menu_item)
+ {
+ if($output) $output .= ",";
+ $key = $menu_item['text'];
+ $val = $menu_item['url'];
+ if($menu_item['list']) {
+ $childs = '{'.$this->_getAllItems($menu_item['list'], $depth+1).'}';
+ } else {
+ $childs = 'null';
+ }
+
+ $output .= sprintf('"%s" : { "url" : "%s", "childs" : %s } ',str_replace('"','\"',$key), str_replace('"','\"',$val), $childs);
+ }
+ return $output;
+ }
+
+ function procSmartPhone($msg = null) {
+ if(preg_match('/(iPopd|iPhone)/',$_SERVER['HTTP_USER_AGENT'])) {
+ Context::addHtmlHeader('');
+ } else if(preg_match('/PPC/',$_SERVER['HTTP_USER_AGENT'])) {
+ Context::addHtmlHeader('');
+ }
+
+ if(is_a($this->output, 'Object') || is_subclass_of($this->output, 'Object') || $msg) {
+ if($msg) $this->setContent(Context::getLang($msg));
+ else $this->setContent($this->output->getMessage());
+ return;
+ }
+
+ if($this->haveSmartphoneModule($this->module_info->module)) {
+ $oSmartPhoneModule =& getModule($this->module_info->module, 'smartphone');
+ $vars = get_object_vars($this->oModule);
+ if(count($vars)) foreach($vars as $key => $val) $oSmartPhoneModule->{$key} = $val;
+ $oSmartPhoneModule->procSmartPhone($this);
+ } else {
+ switch(Context::getLangType()) {
+ case 'ko' :
+ $msg = '스마트폰을 지원하지 않는 모듈입니다';
+ break;
+ case 'jp' :
+ $msg = 'このモジュールをサポートしていません。';
+ break;
+ case 'zh-TW' :
+ $msg = '該模塊不支持。';
+ break;
+ case 'zh-CN' :
+ $msg = '该模块不支持。';
+ break;
+ default :
+ $msg = 'This module is not supported.';
+ break;
+ }
+ $this->setContent($msg);
+ }
}
function setContent($content) {
$this->content = $content;
}
- function setModuleInfo(&$module_info)
- {
- if($this->module_info) return;
- $this->module_info = $module_info;
+ function setParentUrl($url) {
+ $this->parent_url = $url;
}
- function procSmartPhone()
- {
- if(!$this->module_info) return;
- $oModule =& getModule($this->module_info->module, 'smartphone');
- if(!$oModule || !method_exists($oModule, 'procSmartPhone') ) return;
- $vars = get_object_vars($this->oModule);
- if(count($vars)) foreach($vars as $key => $val) $oModule->{$key} = $val;
- return $oModule->procSmartPhone($this);
+ function setPrevUrl($url) {
+ $this->prev_url = $url;
}
- function getAllItems(&$menu_list, $node_srl = 0, $node_text= "Main Menu")
- {
- if($node_srl == 0) $this->menuList = array();
-
- $obj = null;
- $obj->text = $node_text;
- $obj->list = array();
- foreach($menu_list as $menu_node_srl => $menu_item)
- {
- $it = null;
- if(!preg_match('/^([a-zA-Z0-9\_\-]+)$/', $menu_item['url'])) { continue; }
- if($menu_item["list"] && count($menu_item["list"]) > 0)
- {
- $this->getAllItems($menu_item["list"], $menu_node_srl, $menu_item["text"]);
- }
- $it->text = $menu_item["text"];
- $it->url = $menu_item["url"];
- $obj->list[$menu_node_srl] = $it;
- }
- $this->menuList[$node_srl] = $obj;
+ function setNextUrl($url) {
+ $this->next_url = $url;
}
- function setMenu()
- {
- $menu_cache_file = sprintf(_XE_PATH_.'files/cache/menu/%d.php', $this->module_info->menu_srl);
- if(!file_exists($menu_cache_file)) return;
-
- include $menu_cache_file;
-
- $this->getAllItems($menu->list);
- Context::set('menus', $this->menuList);
- }
-
- function display()
- {
- Context::set('layout', 'none');
- $act = Context::get('act');
- if($act)
- {
- $content = $this->procSmartPhone();
- }
- else
- {
- Context::set('module_info', $this->module_info);
- $this->setMenu();
- $oModule =& getModule($this->module_info->module, 'smartphone');
- if($oModule && method_exists($oModule, 'procSmartPhone') ) Context::set('bHavePhoneMethod', true);
- $oTemplate = new TemplateHandler();
- $oContext = &Context::getInstance();
- $content = $oTemplate->compile(_XE_PATH_."addons/smartphone/tpl", "layout");
- }
- print $content;
-
- exit();
- }
}
?>
diff --git a/addons/smartphone/conf/info.xml b/addons/smartphone/conf/info.xml
index a894d840e..55552e395 100644
--- a/addons/smartphone/conf/info.xml
+++ b/addons/smartphone/conf/info.xml
@@ -1,12 +1,22 @@
SmartphonePhone XE 애드온
+ SmartphonePhone XE
+ SmartphonePhone XE アドオン
IPhone (touch) 등, smartphone 에서 접속시 최적화된 화면을 보여줍니다.
+
+ 以 IPhone (touch) 和 smartphone 瀏覽時會以最適當的畫面顯示。
+
+
+ IPhone(touch)など、スマートフォンからアクセスした時、最適化されたインターフェースで表示させます。
+
0.1
2009-04-20
haneul
+ haneul
+ haneul
diff --git a/addons/smartphone/iui/LICENSE.txt b/addons/smartphone/iui/LICENSE.txt
deleted file mode 100644
index c43b26eec..000000000
--- a/addons/smartphone/iui/LICENSE.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright (c) 2007, iUI Project Members
-
-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 iUI Project 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 THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"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 THE COPYRIGHT OWNER OR
-CONTRIBUTORS 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.
diff --git a/addons/smartphone/iui/backButton.png b/addons/smartphone/iui/backButton.png
deleted file mode 100644
index e27ea8cdf..000000000
Binary files a/addons/smartphone/iui/backButton.png and /dev/null differ
diff --git a/addons/smartphone/iui/blueButton.png b/addons/smartphone/iui/blueButton.png
deleted file mode 100644
index 0f92dfd94..000000000
Binary files a/addons/smartphone/iui/blueButton.png and /dev/null differ
diff --git a/addons/smartphone/iui/cancel.png b/addons/smartphone/iui/cancel.png
deleted file mode 100644
index 5f6dcc87d..000000000
Binary files a/addons/smartphone/iui/cancel.png and /dev/null differ
diff --git a/addons/smartphone/iui/grayButton.png b/addons/smartphone/iui/grayButton.png
deleted file mode 100644
index 0ce6a30d4..000000000
Binary files a/addons/smartphone/iui/grayButton.png and /dev/null differ
diff --git a/addons/smartphone/iui/image/next.png b/addons/smartphone/iui/image/next.png
deleted file mode 100644
index 1b2c6e4ef..000000000
Binary files a/addons/smartphone/iui/image/next.png and /dev/null differ
diff --git a/addons/smartphone/iui/image/next_New.png b/addons/smartphone/iui/image/next_New.png
deleted file mode 100644
index eefc826dd..000000000
Binary files a/addons/smartphone/iui/image/next_New.png and /dev/null differ
diff --git a/addons/smartphone/iui/image/previous.png b/addons/smartphone/iui/image/previous.png
deleted file mode 100644
index 8095e0928..000000000
Binary files a/addons/smartphone/iui/image/previous.png and /dev/null differ
diff --git a/addons/smartphone/iui/image/previous_New.png b/addons/smartphone/iui/image/previous_New.png
deleted file mode 100644
index 36b1752c0..000000000
Binary files a/addons/smartphone/iui/image/previous_New.png and /dev/null differ
diff --git a/addons/smartphone/iui/iui.css b/addons/smartphone/iui/iui.css
deleted file mode 100644
index 6470d9b59..000000000
--- a/addons/smartphone/iui/iui.css
+++ /dev/null
@@ -1,486 +0,0 @@
-/* iui.css (c) 2007 by iUI Project Members, see LICENSE.txt for license */
-body {
- margin: 0;
- font-family: Helvetica;
- background: #FFFFFF;
- color: #000000;
- overflow-x: hidden;
- -webkit-user-select: none;
- -webkit-text-size-adjust: none;
-}
-
-body > *:not(.toolbar) {
- display: none;
- position: absolute;
- margin: 0;
- padding: 0;
- left: 0;
- top: 45px;
- width: 100%;
- min-height: 372px;
-}
-
-body[orient="landscape"] > *:not(.toolbar) {
- min-height: 268px;
-}
-
-body > *[selected="true"] {
- display: block;
-}
-
-a[selected].link, a:active, link {
- background-color: #194fdb !important;
- background-image: url(listArrowSel.png), url(selection.png) !important;
- background-repeat: no-repeat, repeat-x;
- background-position: right center, left top;
- color: #FFFFFF !important;
-}
-
-a[selected="progress"].link {
- background-image: url(loading.gif), url(selection.png) !important;
-}
-
-/************************************************************************************************/
-
-body > .toolbar {
- box-sizing: border-box;
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- border-bottom: 1px solid #2d3642;
- border-top: 1px solid #6d84a2;
- padding: 10px;
- height: 45px;
- background: url(toolbar.png) #6d84a2 repeat-x;
-}
-
-.toolbar > h1 {
- position: absolute;
- overflow: hidden;
- left: 50%;
- margin: 1px 0 0 -75px;
- height: 45px;
- font-size: 20px;
- width: 150px;
- font-weight: bold;
- text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
- text-align: center;
- text-overflow: ellipsis;
- white-space: nowrap;
- color: #FFFFFF;
-}
-
-body[orient="landscape"] > .toolbar > h1 {
- margin-left: -125px;
- width: 250px;
-}
-
-.button {
- position: absolute;
- overflow: hidden;
- top: 8px;
- right: 6px;
- margin: 0;
- border-width: 0 5px;
- padding: 0 3px;
- width: auto;
- height: 30px;
- line-height: 30px;
- font-family: inherit;
- font-size: 12px;
- font-weight: bold;
- color: #FFFFFF;
- text-shadow: rgba(0, 0, 0, 0.6) 0px -1px 0;
- text-overflow: ellipsis;
- text-decoration: none;
- white-space: nowrap;
- background: none;
- -webkit-border-image: url(toolButton.png) 0 5 0 5;
-}
-
-.blueButton {
- -webkit-border-image: url(blueButton.png) 0 5 0 5;
- border-width: 0 5px;
-}
-
-.leftButton {
- left: 6px;
- right: auto;
-}
-
-#backButton {
- display: none;
- left: 6px;
- right: auto;
- padding: 0;
- max-width: 55px;
- border-width: 0 8px 0 14px;
- -webkit-border-image: url(backButton.png) 0 8 0 14;
-}
-
-.whiteButton,
-.grayButton {
- display: block;
- border-width: 0 12px;
- padding: 10px;
- text-align: center;
- font-size: 20px;
- font-weight: bold;
- text-decoration: inherit;
- color: inherit;
-}
-
-.whiteButton {
- -webkit-border-image: url(whiteButton.png) 0 12 0 12;
- text-shadow: rgba(255, 255, 255, 0.7) 0 1px 0;
-}
-
-.grayButton {
- -webkit-border-image: url(grayButton.png) 0 12 0 12;
- color: #FFFFFF;
-}
-
-/************************************************************************************************/
-
-body > ul > li {
- position: relative;
- margin: 0;
- border-bottom: 1px solid #E0E0E0;
- padding: 8px 0 8px 10px;
- font-size: 18px;
- font-weight: bold;
- list-style: none;
-}
-
-body > ul > li.group {
- position: relative;
- top: -1px;
- margin-bottom: -2px;
- border-top: 1px solid #7d7d7d;
- border-bottom: 1px solid #999999;
- padding: 1px 10px;
- background: url(listGroup.png) repeat-x;
- font-size: 17px;
- font-weight: bold;
- text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0;
- color: #FFFFFF;
-}
-
-body > ul > li.group:first-child {
- top: 0;
- border-top: none;
-}
-
-body > ul > li > a {
- display: block;
- margin: -8px 0 -8px -10px;
- padding: 8px 32px 8px 10px;
- text-decoration: none;
- color: inherit;
- background: url(listArrow.png) no-repeat right center;
-}
-
-a[target="_replace"] {
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- padding-top: 25px;
- padding-bottom: 25px;
- font-size: 18px;
- color: cornflowerblue;
- background-color: #FFFFFF;
- background-image: none;
-}
-
-/************************************************************************************************/
-
-body > .dialog {
- top: 0;
- width: 100%;
- min-height: 417px;
- z-index: 2;
- background: rgba(0, 0, 0, 0.8);
- padding: 0;
- text-align: right;
-}
-
-.dialog > fieldset {
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- width: 100%;
- margin: 0;
- border: none;
- border-top: 1px solid #6d84a2;
- padding: 10px 6px;
- background: url(toolbar.png) #7388a5 repeat-x;
-}
-
-.dialog > fieldset > h1 {
- margin: 0 10px 0 10px;
- padding: 0;
- font-size: 20px;
- font-weight: bold;
- color: #FFFFFF;
- text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
- text-align: center;
-}
-
-.dialog > fieldset > label {
- position: absolute;
- margin: 16px 0 0 6px;
- font-size: 14px;
- color: #999999;
-}
-
-input {
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- width: 100%;
- margin: 8px 0 0 0;
- padding: 6px 6px 6px 44px;
- font-size: 16px;
- font-weight: normal;
-}
-
-/************************************************************************************************/
-
-body > .panel {
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- padding: 10px;
- background: #c8c8c8 url(pinstripes.png);
-}
-
-.panel > fieldset {
- position: relative;
- margin: 0 0 20px 0;
- padding: 0;
- background: #FFFFFF;
- -webkit-border-radius: 8px;
- border: 1px solid #999999;
- text-align: right;
- font-size: 16px;
-}
-
-.row {
- position: relative;
- min-height: 42px;
- border-bottom: 1px solid #999999;
- -webkit-border-radius: 0;
- text-align: right;
-}
-
-fieldset > .row:last-child {
- border-bottom: none !important;
-}
-
-.row > input {
- box-sizing: border-box;
- -webkit-box-sizing: border-box;
- margin: 0;
- border: none;
- padding: 12px 10px 0 110px;
- height: 42px;
- background: none;
-}
-
-.row > label {
- position: absolute;
- margin: 0 0 0 14px;
- line-height: 42px;
- font-weight: bold;
-}
-
-.row > .toggle {
- position: absolute;
- top: 6px;
- right: 6px;
- width: 100px;
- height: 28px;
-}
-
-.toggle {
- border: 1px solid #888888;
- -webkit-border-radius: 6px;
- background: #FFFFFF url(toggle.png) repeat-x;
- font-size: 19px;
- font-weight: bold;
- line-height: 30px;
-}
-
-.toggle[toggled="true"] {
- border: 1px solid #143fae;
- background: #194fdb url(toggleOn.png) repeat-x;
-}
-
-.toggleOn {
- display: none;
- position: absolute;
- width: 60px;
- text-align: center;
- left: 0;
- top: 0;
- color: #FFFFFF;
- text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
-}
-
-.toggleOff {
- position: absolute;
- width: 60px;
- text-align: center;
- right: 0;
- top: 0;
- color: #666666;
-}
-
-.toggle[toggled="true"] > .toggleOn {
- display: block;
-}
-
-.toggle[toggled="true"] > .toggleOff {
- display: none;
-}
-
-.thumb {
- position: absolute;
- top: -1px;
- left: -1px;
- width: 40px;
- height: 28px;
- border: 1px solid #888888;
- -webkit-border-radius: 6px;
- background: #ffffff url(thumb.png) repeat-x;
-}
-
-.toggle[toggled="true"] > .thumb {
- left: auto;
- right: -1px;
-}
-
-.panel > h2 {
- margin: 0 0 8px 14px;
- font-size: inherit;
- font-weight: bold;
- color: #4d4d70;
- text-shadow: rgba(255, 255, 255, 0.75) 2px 2px 0;
-}
-
-.panel > .content {
- background: #FFFFFF;
- -webkit-border-radius: 8px;
- border: 1px solid #999999;
- padding: 10px;
-}
-
-/************************************************************************************************/
-
-#preloader {
- display: none;
- background-image: url(loading.gif), url(selection.png),
- url(blueButton.png), url(listArrowSel.png), url(listGroup.png);
-}
-
-body > ul > li.post_item > a > .post > span.title {
- font-size:13px;
- font-weight:normal;
- display:block;
-}
-body > ul > li.post_item > a > .post > span.description {
- font-size:10px;
- font-weight:normal;
- color:#bbb;
- display:block;
- margin-top:2px;
- letter-spacing:0px;
-}
-
-.next, .previous {
- display: block;
- text-decoration: none;
- font-size: 16px;
- padding: 7px 0;
- background: url(image/previous_New.png) no-repeat;
- color: #fff;
- margin: 8px 12px;
- width: 110px;
- height: 21px;
- text-align: center;
- margin-bottom: 30px;
- font-weight:normal;
-}
-
-.next {
- float: right;
- background: url(image/next_New.png) no-repeat;
-}
-
-.previous {
- float: left;
- opacity: 0.7;
- margin: 8px 0px;
-}
-
-.pagination {
- background: none;
- border: none;
- text-align: center;
-}
-
-.pagination strong {
- font-size: 32px;
- color: #ccc;
- position: relative;
- top: 5px;
-}
-
-.siteinfo .description
-{
- display: block;
- font-size: 16px;
- color: #6699FF;
- text-align: right;
-}
-
-.siteinfo .xe
-{
- display: block;
- text-align: right;
- font-size:11px;
- color: #999;
-}
-
-ul.navigation {
- margin:0;
- padding:0;
- list-style: none;
-}
-
-ul.navigation > li {
- position: relative;
- font-size: 14px;
- border-bottom: 1px solid #E0E0E0;
- text-align: left;
-}
-
-ul.navigation > li > a {
- display: block;
- background-image: url(listArrow.png);
- background-repeat: no-repeat;
- background-position: right center;
- color: inherit;
- text-decoration: none;
- padding: 8px 32px 8px 10px;
-}
-
-.comment_item > .author {
- color: #3074A5;
-}
-
-.comment_item > .regdate {
- float:right;
- font-size: 12px;
- color: #CCC;
-}
-
-.comment_item > .re {
- font-size: 12px;
- color: #DCC;
-}
diff --git a/addons/smartphone/iui/iui.js b/addons/smartphone/iui/iui.js
deleted file mode 100644
index e479fefa6..000000000
--- a/addons/smartphone/iui/iui.js
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
- Copyright (c) 2007, iUI Project Members
- See LICENSE.txt for licensing terms
- */
-
-
-(function() {
-
-var slideSpeed = 40;
-var slideInterval = 0;
-
-var currentPage = null;
-var currentDialog = null;
-var currentWidth = 0;
-var currentHash = location.hash;
-var hashPrefix = "#_";
-var pageHistory = [];
-var newPageCount = 0;
-var checkTimer;
-
-// *************************************************************************************************
-
-window.iui =
-{
- showPage: function(page, backwards)
- {
- if (page)
- {
- if (currentDialog)
- {
- currentDialog.removeAttribute("selected");
- currentDialog = null;
- }
-
- if (hasClass(page, "dialog"))
- showDialog(page);
- else
- {
- var fromPage = currentPage;
- currentPage = page;
-
- if (fromPage)
- setTimeout(slidePages, 0, fromPage, page, backwards);
- else
- updatePage(page, fromPage);
- }
- }
- },
-
- showPageById: function(pageId)
- {
- var page = $(pageId);
- if (page)
- {
- var index = pageHistory.indexOf(pageId);
- var backwards = index != -1;
- if (backwards)
- pageHistory.splice(index, pageHistory.length);
-
- iui.showPage(page, backwards);
- }
- },
-
- showPageByHref: function(href, args, method, replace, cb)
- {
- var req = new XMLHttpRequest();
- req.onerror = function()
- {
- if (cb)
- cb(false);
- };
-
- req.onreadystatechange = function()
- {
- if (req.readyState == 4)
- {
- if (replace)
- replaceElementWithSource(replace, req.responseText);
- else
- {
- var frag = document.createElement("div");
- frag.innerHTML = req.responseText;
- iui.insertPages(frag.childNodes);
- }
- if (cb)
- setTimeout(cb, 1000, true);
- }
- };
-
- if (args)
- {
- req.open(method || "GET", href, true);
- req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- req.setRequestHeader("Content-Length", args.length);
- req.send(args.join("&"));
- }
- else
- {
- req.open(method || "GET", href, true);
- req.send(null);
- }
- },
-
- insertPages: function(nodes)
- {
- var targetPage;
- for (var i = 0; i < nodes.length; ++i)
- {
- var child = nodes[i];
- if (child.nodeType == 1)
- {
- if (!child.id)
- child.id = "__" + (++newPageCount) + "__";
-
- var clone = $(child.id);
- if (clone)
- clone.parentNode.replaceChild(child, clone);
- else
- document.body.appendChild(child);
-
- if (child.getAttribute("selected") == "true" || !targetPage)
- targetPage = child;
-
- --i;
- }
- }
-
- if (targetPage)
- iui.showPage(targetPage);
- },
-
- getSelectedPage: function()
- {
- for (var child = document.body.firstChild; child; child = child.nextSibling)
- {
- if (child.nodeType == 1 && child.getAttribute("selected") == "true")
- return child;
- }
- }
-};
-
-// *************************************************************************************************
-
-addEventListener("load", function(event)
-{
- var page = iui.getSelectedPage();
- if (page)
- iui.showPage(page);
-
- setTimeout(preloadImages, 0);
- setTimeout(checkOrientAndLocation, 0);
- checkTimer = setInterval(checkOrientAndLocation, 300);
-}, false);
-
-addEventListener("click", function(event)
-{
- var link = findParent(event.target, "a");
- if (link)
- {
- function unselect() { link.removeAttribute("selected"); }
-
- if (link.href && link.hash && link.hash != "#")
- {
- link.setAttribute("selected", "true");
- iui.showPage($(link.hash.substr(1)));
- setTimeout(unselect, 500);
- }
- else if (link == $("backButton"))
- history.back();
- else if (link.getAttribute("type") == "submit")
- submitForm(findParent(link, "form"));
- else if (link.getAttribute("type") == "cancel")
- cancelDialog(findParent(link, "form"));
- else if (link.target == "_replace")
- {
- link.setAttribute("selected", "progress");
- iui.showPageByHref(link.href, null, null, link, unselect);
- }
- else if (!link.target)
- {
- link.setAttribute("selected", "progress");
- iui.showPageByHref(link.href, null, null, null, unselect);
- }
- else
- return;
-
- event.preventDefault();
- }
-}, true);
-
-addEventListener("click", function(event)
-{
- var div = findParent(event.target, "div");
- if (div && hasClass(div, "toggle"))
- {
- div.setAttribute("toggled", div.getAttribute("toggled") != "true");
- event.preventDefault();
- }
-}, true);
-
-function checkOrientAndLocation()
-{
- if (window.innerWidth != currentWidth)
- {
- currentWidth = window.innerWidth;
- var orient = currentWidth == 320 ? "profile" : "landscape";
- document.body.setAttribute("orient", orient);
- setTimeout(scrollTo, 100, 0, 1);
- }
-
- if (location.hash != currentHash)
- {
- var pageId = location.hash.substr(hashPrefix.length)
- iui.showPageById(pageId);
- }
-}
-
-function showDialog(page)
-{
- currentDialog = page;
- page.setAttribute("selected", "true");
-
- if (hasClass(page, "dialog") && !page.target)
- showForm(page);
-}
-
-function showForm(form)
-{
- form.onsubmit = function(event)
- {
- event.preventDefault();
- submitForm(form);
- };
-
- form.onclick = function(event)
- {
- if (event.target == form && hasClass(form, "dialog"))
- cancelDialog(form);
- };
-}
-
-function cancelDialog(form)
-{
- form.removeAttribute("selected");
-}
-
-function updatePage(page, fromPage)
-{
- if (!page.id)
- page.id = "__" + (++newPageCount) + "__";
-
- location.href = currentHash = hashPrefix + page.id;
- pageHistory.push(page.id);
-
- var pageTitle = $("pageTitle");
- if (page.title)
- pageTitle.innerHTML = page.title;
-
- if (page.localName.toLowerCase() == "form" && !page.target)
- showForm(page);
-
- var backButton = $("backButton");
- if (backButton)
- {
- var prevPage = $(pageHistory[pageHistory.length-2]);
- if (prevPage && !page.getAttribute("hideBackButton"))
- {
- backButton.style.display = "inline";
- backButton.innerHTML = prevPage.title ? prevPage.title : "Back";
- }
- else
- backButton.style.display = "none";
- }
-}
-
-function slidePages(fromPage, toPage, backwards)
-{
- var axis = (backwards ? fromPage : toPage).getAttribute("axis");
- if (axis == "y")
- (backwards ? fromPage : toPage).style.top = "100%";
- else
- toPage.style.left = "100%";
-
- toPage.setAttribute("selected", "true");
- scrollTo(0, 1);
- clearInterval(checkTimer);
-
- var percent = 100;
- slide();
- var timer = setInterval(slide, slideInterval);
-
- function slide()
- {
- percent -= slideSpeed;
- if (percent <= 0)
- {
- percent = 0;
- if (!hasClass(toPage, "dialog"))
- fromPage.removeAttribute("selected");
- clearInterval(timer);
- checkTimer = setInterval(checkOrientAndLocation, 300);
- setTimeout(updatePage, 0, toPage, fromPage);
- }
-
- if (axis == "y")
- {
- backwards
- ? fromPage.style.top = (100-percent) + "%"
- : toPage.style.top = percent + "%";
- }
- else
- {
- fromPage.style.left = (backwards ? (100-percent) : (percent-100)) + "%";
- toPage.style.left = (backwards ? -percent : percent) + "%";
- }
- }
-}
-
-function preloadImages()
-{
- var preloader = document.createElement("div");
- preloader.id = "preloader";
- document.body.appendChild(preloader);
-}
-
-function submitForm(form)
-{
- iui.showPageByHref(form.action || "POST", encodeForm(form), form.method);
-}
-
-function encodeForm(form)
-{
- function encode(inputs)
- {
- for (var i = 0; i < inputs.length; ++i)
- {
- if (inputs[i].name)
- args.push(inputs[i].name + "=" + escape(inputs[i].value));
- }
- }
-
- var args = [];
- encode(form.getElementsByTagName("input"));
- encode(form.getElementsByTagName("select"));
- return args;
-}
-
-function findParent(node, localName)
-{
- while (node && (node.nodeType != 1 || node.localName.toLowerCase() != localName))
- node = node.parentNode;
- return node;
-}
-
-function hasClass(self, name)
-{
- var re = new RegExp("(^|\\s)"+name+"($|\\s)");
- return re.exec(self.getAttribute("class")) != null;
-}
-
-function replaceElementWithSource(replace, source)
-{
- var page = replace.parentNode;
- var parent = replace;
- while (page.parentNode != document.body)
- {
- page = page.parentNode;
- parent = parent.parentNode;
- }
-
- var frag = document.createElement(parent.localName);
- frag.innerHTML = source;
-
- page.removeChild(parent);
-
- while (frag.firstChild)
- page.appendChild(frag.firstChild);
-}
-
-function $(id) { return document.getElementById(id); }
-function ddd() { console.log.apply(console, arguments); }
-
-})();
diff --git a/addons/smartphone/iui/iuix.css b/addons/smartphone/iui/iuix.css
deleted file mode 100644
index 1a1969058..000000000
--- a/addons/smartphone/iui/iuix.css
+++ /dev/null
@@ -1 +0,0 @@
-body{margin:0;font-family:Helvetica;background:#FFF;color:#000;overflow-x:hidden;-webkit-user-select:none;-webkit-text-size-adjust:none;}body>*:not(.toolbar){display:none;position:absolute;margin:0;padding:0;left:0;top:45px;width:100%;min-height:372px;}body[orient="landscape"]>*:not(.toolbar){min-height:268px;}body>*[selected="true"]{display:block;}a[selected],a:active{background-color:#194fdb!important;background-image:url(listArrowSel.png),url(selection.png)!important;background-repeat:no-repeat,repeat-x;background-position:right center,left top;color:#FFF!important;}a[selected="progress"]{background-image:url(loading.gif),url(selection.png)!important;}body>.toolbar{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border-bottom:1px solid #2d3642;border-top:1px solid #6d84a2;padding:10px;height:45px;background:url(toolbar.png) #6d84a2 repeat-x;}.toolbar>h1{position:absolute;overflow:hidden;left:50%;margin:1px 0 0 -75px;height:45px;font-size:20px;width:150px;font-weight:bold;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;text-align:center;text-overflow:ellipsis;white-space:nowrap;color:#FFF;}body[orient="landscape"]>.toolbar>h1{margin-left:-125px;width:250px;}.button{position:absolute;overflow:hidden;top:8px;right:6px;margin:0;border-width:0 5px;padding:0 3px;width:auto;height:30px;line-height:30px;font-family:inherit;font-size:12px;font-weight:bold;color:#FFF;text-shadow:rgba(0,0,0,0.6) 0 -1px 0;text-overflow:ellipsis;text-decoration:none;white-space:nowrap;background:none;-webkit-border-image:url(toolButton.png) 0 5 0 5;}.blueButton{-webkit-border-image:url(blueButton.png) 0 5 0 5;border-width:0 5px;}.leftButton{left:6px;right:auto;}#backButton{display:none;left:6px;right:auto;padding:0;max-width:55px;border-width:0 8px 0 14px;-webkit-border-image:url(backButton.png) 0 8 0 14;}.whiteButton,.grayButton{display:block;border-width:0 12px;padding:10px;text-align:center;font-size:20px;font-weight:bold;text-decoration:inherit;color:inherit;}.whiteButton{-webkit-border-image:url(whiteButton.png) 0 12 0 12;text-shadow:rgba(255,255,255,0.7) 0 1px 0;}.grayButton{-webkit-border-image:url(grayButton.png) 0 12 0 12;color:#FFF;}body>ul>li{position:relative;margin:0;border-bottom:1px solid #E0E0E0;padding:8px 0 8px 10px;font-size:20px;font-weight:bold;list-style:none;}body>ul>li.group{position:relative;top:-1px;margin-bottom:-2px;border-top:1px solid #7d7d7d;border-bottom:1px solid #999;padding:1px 10px;background:url(listGroup.png) repeat-x;font-size:17px;font-weight:bold;text-shadow:rgba(0,0,0,0.4) 0 1px 0;color:#FFF;}body>ul>li.group:first-child{top:0;border-top:none;}body>ul>li>a{display:block;margin:-8px 0 -8px -10px;padding:8px 32px 8px 10px;text-decoration:none;color:inherit;background:url(listArrow.png) no-repeat right center;}a[target="_replace"]{box-sizing:border-box;-webkit-box-sizing:border-box;padding-top:25px;padding-bottom:25px;font-size:18px;color:cornflowerblue;background-color:#FFF;background-image:none;}body>.dialog{top:0;width:100%;min-height:417px;z-index:2;background:rgba(0,0,0,0.8);padding:0;text-align:right;}.dialog>fieldset{box-sizing:border-box;-webkit-box-sizing:border-box;width:100%;margin:0;border:none;border-top:1px solid #6d84a2;padding:10px 6px;background:url(toolbar.png) #7388a5 repeat-x;}.dialog>fieldset>h1{margin:0 10px 0 10px;padding:0;font-size:20px;font-weight:bold;color:#FFF;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;text-align:center;}.dialog>fieldset>label{position:absolute;margin:16px 0 0 6px;font-size:14px;color:#999;}input{box-sizing:border-box;-webkit-box-sizing:border-box;width:100%;margin:8px 0 0 0;padding:6px 6px 6px 44px;font-size:16px;font-weight:normal;}body>.panel{box-sizing:border-box;-webkit-box-sizing:border-box;padding:10px;background:#c8c8c8 url(pinstripes.png);}.panel>fieldset{position:relative;margin:0 0 20px 0;padding:0;background:#FFF;-webkit-border-radius:10px;border:1px solid #999;text-align:right;font-size:16px;}.row{position:relative;min-height:42px;border-bottom:1px solid #999;-webkit-border-radius:0;text-align:right;}fieldset>.row:last-child{border-bottom:none!important;}.row>input{box-sizing:border-box;-webkit-box-sizing:border-box;margin:0;border:none;padding:12px 10px 0 110px;height:42px;background:none;}.row>label{position:absolute;margin:0 0 0 14px;line-height:42px;font-weight:bold;}.row>.toggle{position:absolute;top:6px;right:6px;width:100px;height:28px;}.toggle{border:1px solid #888;-webkit-border-radius:6px;background:#FFF url(toggle.png) repeat-x;font-size:19px;font-weight:bold;line-height:30px;}.toggle[toggled="true"]{border:1px solid #143fae;background:#194fdb url(toggleOn.png) repeat-x;}.toggleOn{display:none;position:absolute;width:60px;text-align:center;left:0;top:0;color:#FFF;text-shadow:rgba(0,0,0,0.4) 0 -1px 0;}.toggleOff{position:absolute;width:60px;text-align:center;right:0;top:0;color:#666;}.toggle[toggled="true"]>.toggleOn{display:block;}.toggle[toggled="true"]>.toggleOff{display:none;}.thumb{position:absolute;top:-1px;left:-1px;width:40px;height:28px;border:1px solid #888;-webkit-border-radius:6px;background:#fff url(thumb.png) repeat-x;}.toggle[toggled="true"]>.thumb{left:auto;right:-1px;}.panel>h2{margin:0 0 8px 14px;font-size:inherit;font-weight:bold;color:#4d4d70;text-shadow:rgba(255,255,255,0.75) 2px 2px 0;}#preloader{display:none;background-image:url(loading.gif),url(selection.png),url(blueButton.png),url(listArrowSel.png),url(listGroup.png);}
\ No newline at end of file
diff --git a/addons/smartphone/iui/iuix.js b/addons/smartphone/iui/iuix.js
deleted file mode 100644
index 3b2b37f9d..000000000
--- a/addons/smartphone/iui/iuix.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var _1=20;var _2=0;var _3=null;var _4=null;var _5=0;var _6=location.hash;var _7="#_";var _8=[];var _9=0;var _a;window.iui={showPage:function(_b,_c){if(_b){if(_4){_4.removeAttribute("selected");_4=null;}if(hasClass(_b,"dialog")){showDialog(_b);}else{var _d=_3;_3=_b;if(_d){setTimeout(slidePages,0,_d,_b,_c);}else{updatePage(_b,_d);}}}},showPageById:function(_e){var _f=$(_e);if(_f){var _10=_8.indexOf(_e);var _11=_10!=-1;if(_11){_8.splice(_10,_8.length);}iui.showPage(_f,_11);}},showPageByHref:function(_12,_13,_14,_15,cb){var req=new XMLHttpRequest();req.onerror=function(){if(cb){cb(false);}};req.onreadystatechange=function(){if(req.readyState==4){if(_15){replaceElementWithSource(_15,req.responseText);}else{var _18=document.createElement("div");_18.innerHTML=req.responseText;iui.insertPages(_18.childNodes);}if(cb){setTimeout(cb,1000,true);}}};if(_13){req.open(_14||"GET",_12,true);req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");req.setRequestHeader("Content-Length",_13.length);req.send(_13.join("&"));}else{req.open(_14||"GET",_12,true);req.send(null);}},insertPages:function(_19){var _1a;for(var i=0;i<_19.length;++i){var _1c=_19[i];if(_1c.nodeType==1){if(!_1c.id){_1c.id="__"+(++_9)+"__";}var _1d=$(_1c.id);if(_1d){_1d.parentNode.replaceChild(_1c,_1d);}else{document.body.appendChild(_1c);}if(_1c.getAttribute("selected")=="true"||!_1a){_1a=_1c;}--i;}}if(_1a){iui.showPage(_1a);}},getSelectedPage:function(){for(var _1e=document.body.firstChild;_1e;_1e=_1e.nextSibling){if(_1e.nodeType==1&&_1e.getAttribute("selected")=="true"){return _1e;}}}};addEventListener("load",function(_1f){var _20=iui.getSelectedPage();if(_20){iui.showPage(_20);}setTimeout(preloadImages,0);setTimeout(checkOrientAndLocation,0);_a=setInterval(checkOrientAndLocation,300);},false);addEventListener("click",function(_21){var _22=findParent(_21.target,"a");if(_22){function unselect(){_22.removeAttribute("selected");}if(_22.href&&_22.hash&&_22.hash!="#"){_22.setAttribute("selected","true");iui.showPage($(_22.hash.substr(1)));setTimeout(unselect,500);}else{if(_22==$("backButton")){history.back();}else{if(_22.getAttribute("type")=="submit"){submitForm(findParent(_22,"form"));}else{if(_22.getAttribute("type")=="cancel"){cancelDialog(findParent(_22,"form"));}else{if(_22.target=="_replace"){_22.setAttribute("selected","progress");iui.showPageByHref(_22.href,null,null,_22,unselect);}else{if(!_22.target){_22.setAttribute("selected","progress");iui.showPageByHref(_22.href,null,null,null,unselect);}else{return;}}}}}}_21.preventDefault();}},true);addEventListener("click",function(_23){var div=findParent(_23.target,"div");if(div&&hasClass(div,"toggle")){div.setAttribute("toggled",div.getAttribute("toggled")!="true");_23.preventDefault();}},true);function checkOrientAndLocation(){if(window.innerWidth!=_5){_5=window.innerWidth;var _25=_5==320?"profile":"landscape";document.body.setAttribute("orient",_25);setTimeout(scrollTo,100,0,1);}if(location.hash!=_6){var _26=location.hash.substr(_7.length);iui.showPageById(_26);}}function showDialog(_27){_4=_27;_27.setAttribute("selected","true");if(hasClass(_27,"dialog")&&!_27.target){showForm(_27);}}function showForm(_28){_28.onsubmit=function(_29){_29.preventDefault();submitForm(_28);};_28.onclick=function(_2a){if(_2a.target==_28&&hasClass(_28,"dialog")){cancelDialog(_28);}};}function cancelDialog(_2b){_2b.removeAttribute("selected");}function updatePage(_2c,_2d){if(!_2c.id){_2c.id="__"+(++_9)+"__";}location.href=_6=_7+_2c.id;_8.push(_2c.id);var _2e=$("pageTitle");if(_2c.title){_2e.innerHTML=_2c.title;}if(_2c.localName.toLowerCase()=="form"&&!_2c.target){showForm(_2c);}var _2f=$("backButton");if(_2f){var _30=$(_8[_8.length-2]);if(_30&&!_2c.getAttribute("hideBackButton")){_2f.style.display="inline";_2f.innerHTML=_30.title?_30.title:"Back";}else{_2f.style.display="none";}}}function slidePages(_31,_32,_33){var _34=(_33?_31:_32).getAttribute("axis");if(_34=="y"){(_33?_31:_32).style.top="100%";}else{_32.style.left="100%";}_32.setAttribute("selected","true");scrollTo(0,1);clearInterval(_a);var _35=100;slide();var _36=setInterval(slide,_2);function slide(){_35-=_1;if(_35<=0){_35=0;if(!hasClass(_32,"dialog")){_31.removeAttribute("selected");}clearInterval(_36);_a=setInterval(checkOrientAndLocation,300);setTimeout(updatePage,0,_32,_31);}if(_34=="y"){_33?_31.style.top=(100-_35)+"%":_32.style.top=_35+"%";}else{_31.style.left=(_33?(100-_35):(_35-100))+"%";_32.style.left=(_33?-_35:_35)+"%";}}}function preloadImages(){var _37=document.createElement("div");_37.id="preloader";document.body.appendChild(_37);}function submitForm(_38){iui.showPageByHref(_38.action||"POST",encodeForm(_38),_38.method);}function encodeForm(_39){function encode(_3a){for(var i=0;i<_3a.length;++i){if(_3a[i].name){args.push(_3a[i].name+"="+escape(_3a[i].value));}}}var _3c=[];encode(_39.getElementsByTagName("input"));encode(_39.getElementsByTagName("select"));return _3c;}function findParent(_3d,_3e){while(_3d&&(_3d.nodeType!=1||_3d.localName.toLowerCase()!=_3e)){_3d=_3d.parentNode;}return _3d;}function hasClass(_3f,_40){var re=new RegExp("(^|\\s)"+_40+"($|\\s)");return re.exec(_3f.getAttribute("class"))!=null;}function replaceElementWithSource(_42,_43){var _44=_42.parentNode;var _45=_42;while(_44.parentNode!=document.body){_44=_44.parentNode;_45=_45.parentNode;}var _46=document.createElement(_45.localName);_46.innerHTML=_43;_44.removeChild(_45);while(_46.firstChild){_44.appendChild(_46.firstChild);}}function $(id){return document.getElementById(id);}function ddd(){console.log.apply(console,arguments);}})();
\ No newline at end of file
diff --git a/addons/smartphone/iui/listArrowSel.png b/addons/smartphone/iui/listArrowSel.png
deleted file mode 100644
index 86832ebc7..000000000
Binary files a/addons/smartphone/iui/listArrowSel.png and /dev/null differ
diff --git a/addons/smartphone/iui/loading.gif b/addons/smartphone/iui/loading.gif
deleted file mode 100644
index 8522ddf1a..000000000
Binary files a/addons/smartphone/iui/loading.gif and /dev/null differ
diff --git a/addons/smartphone/iui/selection.png b/addons/smartphone/iui/selection.png
deleted file mode 100644
index 537e3f0b1..000000000
Binary files a/addons/smartphone/iui/selection.png and /dev/null differ
diff --git a/addons/smartphone/iui/thumb.png b/addons/smartphone/iui/thumb.png
deleted file mode 100644
index cefa8fc5e..000000000
Binary files a/addons/smartphone/iui/thumb.png and /dev/null differ
diff --git a/addons/smartphone/iui/toggle.png b/addons/smartphone/iui/toggle.png
deleted file mode 100644
index 3b62ebf26..000000000
Binary files a/addons/smartphone/iui/toggle.png and /dev/null differ
diff --git a/addons/smartphone/iui/toggleOn.png b/addons/smartphone/iui/toggleOn.png
deleted file mode 100644
index b016814de..000000000
Binary files a/addons/smartphone/iui/toggleOn.png and /dev/null differ
diff --git a/addons/smartphone/iui/toolButton.png b/addons/smartphone/iui/toolButton.png
deleted file mode 100644
index afe4d7a3e..000000000
Binary files a/addons/smartphone/iui/toolButton.png and /dev/null differ
diff --git a/addons/smartphone/iui/toolbar.png b/addons/smartphone/iui/toolbar.png
deleted file mode 100644
index 3dde94c07..000000000
Binary files a/addons/smartphone/iui/toolbar.png and /dev/null differ
diff --git a/addons/smartphone/iui/whiteButton.png b/addons/smartphone/iui/whiteButton.png
deleted file mode 100644
index 5514b2700..000000000
Binary files a/addons/smartphone/iui/whiteButton.png and /dev/null differ
diff --git a/addons/smartphone/smartphone.addon.php b/addons/smartphone/smartphone.addon.php
index 4974d9460..f4d9a3190 100644
--- a/addons/smartphone/smartphone.addon.php
+++ b/addons/smartphone/smartphone.addon.php
@@ -3,20 +3,29 @@
if(Context::get('module')=='admin') return;
- if($called_position != 'before_module_proc' && $called_position != 'after_module_proc' ) return;
-
require_once(_XE_PATH_.'addons/smartphone/classes/smartphone.class.php');
- debugPrint("here");
- if(!smartphoneXE::isFromSmartPhone())
- {
- debugPrint("here");
- return;
+ if(!smartphoneXE::isFromSmartPhone()) return;
+
+ if($called_position == 'after_module_proc' ) {
+ $oSmartphoneXE = new smartphoneXE($this, $this->module_info, $output);
+ $oSmartphoneXE->procSmartPhone();
+ Context::set('layout', 'none');
+ Context::set('smart_content', $oSmartphoneXE->content);
+ Context::set('parent_url', $oSmartphoneXE->parent_url);
+ Context::set('prev_url', $oSmartphoneXE->prev_url);
+ Context::set('next_url', $oSmartphoneXE->next_url);
+ $this->setTemplatePath('addons/smartphone/tpl');
+ $this->setTemplateFile('layout');
+
+ } elseif($called_position == 'before_module_proc' && !$this->grant->access) {
+ $oSmartphoneXE = new smartphoneXE($this, $this->module_info, $output);
+ $oSmartphoneXE->procSmartPhone('msg_not_permitted_act');
+ Context::set('layout', 'none');
+ Context::set('smart_content', $oSmartphoneXE->content);
+ Context::set('parent_url', $oSmartphoneXE->parent_url);
+ Context::set('prev_url', $oSmartphoneXE->prev_url);
+ Context::set('next_url', $oSmartphoneXE->next_url);
+ $this->setTemplatePath('addons/smartphone/tpl');
+ $this->setTemplateFile('layout');
}
- debugPrint("here");
-
-
- $oSmartphoneXE = &smartphoneXE::getInstance();
- $oSmartphoneXE->setModuleInfo($this->module_info);
- $oSmartphoneXE->setModuleInstance($this);
- $oSmartphoneXE->display();
?>
diff --git a/addons/smartphone/tpl/images/btnMenu.png b/addons/smartphone/tpl/images/btnMenu.png
new file mode 100755
index 000000000..3c43a027c
Binary files /dev/null and b/addons/smartphone/tpl/images/btnMenu.png differ
diff --git a/addons/smartphone/tpl/images/btnNext.png b/addons/smartphone/tpl/images/btnNext.png
new file mode 100755
index 000000000..15b8215ba
Binary files /dev/null and b/addons/smartphone/tpl/images/btnNext.png differ
diff --git a/addons/smartphone/tpl/images/btnPrev.png b/addons/smartphone/tpl/images/btnPrev.png
new file mode 100755
index 000000000..085d42942
Binary files /dev/null and b/addons/smartphone/tpl/images/btnPrev.png differ
diff --git a/addons/smartphone/tpl/images/btnTop.png b/addons/smartphone/tpl/images/btnTop.png
new file mode 100755
index 000000000..aa106e8cc
Binary files /dev/null and b/addons/smartphone/tpl/images/btnTop.png differ
diff --git a/addons/smartphone/iui/listArrow.png b/addons/smartphone/tpl/images/listArrow.png
similarity index 100%
rename from addons/smartphone/iui/listArrow.png
rename to addons/smartphone/tpl/images/listArrow.png
diff --git a/addons/smartphone/iui/listGroup.png b/addons/smartphone/tpl/images/listGroup.png
similarity index 100%
rename from addons/smartphone/iui/listGroup.png
rename to addons/smartphone/tpl/images/listGroup.png
diff --git a/addons/smartphone/iui/pinstripes.png b/addons/smartphone/tpl/images/pinstripes.png
similarity index 100%
rename from addons/smartphone/iui/pinstripes.png
rename to addons/smartphone/tpl/images/pinstripes.png
diff --git a/addons/smartphone/tpl/images/titlebar.png b/addons/smartphone/tpl/images/titlebar.png
new file mode 100755
index 000000000..ddc3cd9b8
Binary files /dev/null and b/addons/smartphone/tpl/images/titlebar.png differ
diff --git a/addons/smartphone/tpl/layout.html b/addons/smartphone/tpl/layout.html
index 41193bc91..bf8cec8c0 100644
--- a/addons/smartphone/tpl/layout.html
+++ b/addons/smartphone/tpl/layout.html
@@ -1,55 +1,21 @@
-
-
-
-
-
-
+
+
- {Context::getBrowserTitle()}
-
-
+
-
-
-
-
-
-
-
- -
- {$module_info->description}
- Powered by Xpress Engine
-
-
- - View
-
-
- 이 모듈은 smartphoneView를 지원하지 않습니다.
-
- - Menu
-
-
-
-
-
-
+
+ {$smart_content}
+
+
diff --git a/addons/smartphone/tpl/smartphone.css b/addons/smartphone/tpl/smartphone.css
new file mode 100644
index 000000000..3a356caf8
--- /dev/null
+++ b/addons/smartphone/tpl/smartphone.css
@@ -0,0 +1,189 @@
+body {
+ margin: 0;
+ padding:0;
+ font-family: Helvetica;
+ background: #E6E6E6 url(./images/pinstripes.png);
+ color: #000000;
+ overflow-x: hidden;
+ -webkit-user-select: none;
+ -webkit-text-size-adjust: none;
+ width:100%;
+}
+
+.smartPhoneTitleBar {
+ border-bottom: 1px solid #2d3642;
+ border-top: 1px solid #6d84a2;
+ height: 43px;
+ overflow:hidden;
+ background:#485567 url(./images/titlebar.png) repeat-x left top;
+
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+
+.smartPhoneTitleBar h1 {
+ white-space:nowrap;
+ overflow: hidden;
+ color: #FFFFFF;
+ font-size: 20px;
+ font-weight: bold;
+ padding:8px 10px;
+ margin:0;
+ text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
+ text-overflow: ellipsis;
+}
+
+.smartPhoneTitleBar h1 a {
+ text-decoration:none;
+ color:#fff;
+}
+
+.smartPhoneContent {
+ z-index:450;
+ border: 1px solid #999999;
+ padding:10px;
+ background-color:#fff;
+ margin:10px;
+ box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -webkit-border-radius: 8px;
+}
+
+.smartPhoneToolBar {
+ z-index:9999;
+ width:100%;
+ border-bottom: 1px solid #2d3642;
+ border-top: 1px solid #6d84a2;
+ height: 43px;
+ overflow:hidden;
+ background:#485567 url(./images/titlebar.png) repeat-x left top;
+ white-space:nowrap;
+ box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+}
+
+.smartPhoneBtn {
+ width:43px;
+ height:43px;
+ margin-left:8px;
+ border:0;
+}
+
+.smartPhoneContent div.info {
+ font-size:13px;
+ padding-bottom:10px;
+ border-bottom:1px solid #444;
+ overflow:hidden;
+ *zoom:1;
+}
+
+.smartPhoneContent div.info .author {
+ font-weight:bold;
+ float:left;
+}
+
+.smartPhoneContent div.info .date {
+ font-size:11px;
+ float:right;
+}
+
+.smartPhoneContent div.link {
+ margin-top:10px;
+ border-top:1px solid #444;
+}
+
+.smartPhoneContent div.link a {
+ display:block;
+ padding:10px 0;
+ font-size:15px;
+ text-decoration:underline;
+ font-weight:bold;
+ color:#000;
+}
+
+.smartPhoneList {
+ background-color:#fff;
+ z-index:500;
+ padding:0;
+ margin:0;
+}
+
+.smartPhoneList ul {
+ padding:0;
+ margin:0;
+ left:0;
+ right:0;
+ top:43px;
+}
+
+.smartPhoneList li {
+ list-style:none;
+ font-size:18px;
+ font-weight:bold;
+ padding:10px 20px 10px 10px;
+ border-bottom:1px solid #ccc;
+}
+
+.smartPhoneList li a {
+ text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 0;
+ text-overflow: ellipsis;
+ color:#000;
+ text-decoration:none;
+ display:block;
+ width:100%;
+}
+
+.smartPhoneList li.title {
+ position: relative;
+ top: -1px;
+ margin-bottom: -2px;
+ border-top: 1px solid #7d7d7d;
+ border-bottom: 1px solid #999999;
+ padding: 5px 10px;
+ background: url(./images/listGroup.png) repeat-x;
+ font-size: 12px;
+ font-weight: bold;
+ text-shadow: rgba(0, 0, 0, 0.4) 0 1px 0;
+ color: #FFFFFF;
+}
+
+.smartPhoneList li.selected {
+ background-color:#ddd;
+}
+
+.smartPhoneList li.selected * {
+ color:#fff;
+}
+
+
+.smartPhoneList li a {
+ background:transparent url(./images/listArrow.png) no-repeat scroll right center;
+ padding-right:30px;
+}
+
+.smartPhoneList li.noArrow a {
+ background:none !important;
+}
+
+.smartPhoneList li.item img.thumbnail {
+ margin:0 10px 0 0;
+ padding:0;
+}
+
+.smartPhoneList li.item span.title, .smartPhoneList li.item span.title div {
+ font-size:15px;
+ font-weight:normal;
+ display:block;
+}
+
+.smartPhoneList li.item span.info {
+ font-size:10px;
+ font-weight:normal;
+ color:#bbb;
+ display:block;
+ margin-top:2px;
+ letter-spacing:0px;
+}
+
diff --git a/addons/smartphone/tpl/smartphone.js b/addons/smartphone/tpl/smartphone.js
new file mode 100644
index 000000000..d0b4a13ca
--- /dev/null
+++ b/addons/smartphone/tpl/smartphone.js
@@ -0,0 +1,101 @@
+var xeSmartMenu = null;
+var xeSmartUpperMenu = null;
+function showXEMenu() {
+ if(!xeSmartMenu) {
+
+ xeSmartMenu = jQuery('')
+ .attr("className","smartPhoneList")
+ .css('display','none')
+ .css('backgroundColor','#fff');
+
+ jQuery(document.body).append(xeSmartMenu);
+
+ xeSmartMenu.slideIn = function(step) {
+ var w = this.width() + Math.pow(step,2)*30;
+
+ if(w>jQuery(document).width()) {
+ this.css({left:0,right:0,display:'block'});
+ this.width('');
+ jQuery('.smartPhoneContentArea').css("display","none");
+ } else {
+ this.width(w);
+ var o = parseInt(jQuery(document).width/w,10)/5;
+ if(o>1) o = 1;
+ setTimeout(function() { xeSmartMenu.slideIn(step+1); }, 50);
+ }
+ }
+
+ xeSmartMenu.slideOut = function(step) {
+ var l = parseInt(this.css('left'),10) + Math.pow(step,2)*30;
+
+ if(l>jQuery('.smartPhoneContent').width()) {
+ this.css({display:'none','left':''});
+ jQuery('.smartPhoneContentArea').css("display","block");
+ } else {
+ var o = parseInt(jQuery(document).width/l,10)/5;
+ if(o<0) o = 0;
+ this.css('left',l+'px');
+ setTimeout(function() { xeSmartMenu.slideOut(step+1); }, 50);
+ }
+ }
+ }
+
+ if(xeSmartMenu.css('display')=='none' && typeof(xeMenus)!='undefined') {
+ xeSmartUpperMenu = null;
+ var menu = findSmartNode(xeMenus);
+ if(!menu) menu = xeMenus;
+ var html = '
';
+ if(location.href.getQuery('mid')) html += '- < go Home >
';
+ if(xeSmartUpperMenu) html += '- < go Upper >
';
+ for(var text in menu) {
+ if(!text) continue;
+ var url = menu[text].url;
+ var href = '';
+ if(/^[a-z0-9_]+$/i.test(url)) {
+ href = request_uri.setQuery('mid',url);
+ if(href.indexOf('?')>-1) href += '&smartphone=true';
+ else href += '?smartphone=true';
+ }
+ else href = url;
+ if(typeof(xeVid)!='undefined') {
+ if(href.indexOf('?')>-1) href += '&vid='+xeVid;
+ else href += '?vid='+xeVid;
+ }
+ html += '- '+text+'
';
+ }
+ html += '
';
+
+ jQuery(xeSmartMenu).html(html);
+ jQuery(xeSmartMenu).css({
+ width:'1px',
+ right:'0',
+ top:'43px',
+ display:'block',
+ position:'absolute',
+ padding:0
+ });
+ xeSmartMenu.slideIn(0);
+ } else if(location.href.getQuery('mid')||location.href.getQuery('document_srl')) {
+ xeSmartMenu.slideOut(0);
+ }
+}
+
+function findSmartNode(nodes) {
+ var mid = current_url.getQuery('mid');
+ if(typeof(mid)=='undefined'||!mid) return nodes;
+ for(var text in nodes) {
+ if(!text) continue;
+ if(nodes[text].childs) {
+ var n = findSmartNode(nodes[text].childs);
+ if(n) {
+ xeSmartUpperMenu = nodes[text];
+ return n;
+ }
+ }
+ if(nodes[text].url == mid) {
+ if(nodes[text].childs) return nodes[text].childs;
+ return nodes;
+ }
+ }
+ return null;
+}
diff --git a/classes/context/Context.class.php b/classes/context/Context.class.php
index 170641063..ba2609b27 100644
--- a/classes/context/Context.class.php
+++ b/classes/context/Context.class.php
@@ -860,6 +860,10 @@
return sprintf('%s%s/%s',$rpath,$get_vars['mid'],$get_vars['document_srl']);
case 'entry.mid' :
return sprintf('%s%s/entry/%s',$rpath,$get_vars['mid'],$get_vars['entry']);
+ case 'act.document_srl.key' :
+ if($get_vars['act']=='trackback') return sprintf('%s%s/%s/%s', $rpath,$get_vars['document_srl'],$get_vars['key'],$get_vars['act']);
+ break;
+
}
}
@@ -918,10 +922,18 @@
if(Context::get("_https_port") && Context::get("_https_port") != 443) {
$url_info['port'] = Context::get("_https_port");
}
+ else
+ {
+ unset($url_info['port']);
+ }
} else {
if(Context::get("_http_port") && Context::get("_http_port") != 80) {
$url_info['port'] = Context::get("_http_port");
}
+ else
+ {
+ unset($url_info['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']);
@@ -1088,6 +1100,18 @@
}
}
+ /**
+ * @brief 모든 JS File을 제거
+ **/
+ function unloadAllJsFiles() {
+ $oContext = &Context::getInstance();
+ return $oContext->_unloadAllJsFiles();
+ }
+
+ function _unloadAllJsFiles() {
+ $this->js_files = array();
+ }
+
/**
* @brief javascript filter 추가
**/
@@ -1172,6 +1196,18 @@
}
}
+ /**
+ * @brief 모든 CSS File을 제거
+ **/
+ function unloadAllCSSFiles() {
+ $oContext = &Context::getInstance();
+ return $oContext->_unloadAllCSSFiles();
+ }
+
+ function _unloadAllCSSFiles() {
+ $this->css_files = array();
+ }
+
/**
* @brief CSS file 목록 return
**/
diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php
index 621ae4d30..fcbbae601 100644
--- a/classes/db/DBMysql.class.php
+++ b/classes/db/DBMysql.class.php
@@ -183,7 +183,7 @@
function getNextSequence() {
$query = sprintf("insert into `%ssequence` (seq) values ('0')", $this->prefix);
$this->_query($query);
- $sequence = mysql_insert_id();
+ $sequence = mysql_insert_id($this->fd);
if($sequence % 10000 == 0) {
$query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence);
$this->_query($query);
diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php
index d0c53fe60..71ad1a90e 100644
--- a/classes/db/DBMysql_innodb.class.php
+++ b/classes/db/DBMysql_innodb.class.php
@@ -193,7 +193,7 @@
function getNextSequence() {
$query = sprintf("insert into `%ssequence` (seq) values ('0')", $this->prefix);
$this->_query($query);
- $sequence = mysql_insert_id();
+ $sequence = mysql_insert_id($this->fd);
if($sequence % 10000 == 0) {
$query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence);
$this->_query($query);
diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php
index 277865b25..8b386f4eb 100644
--- a/classes/display/DisplayHandler.class.php
+++ b/classes/display/DisplayHandler.class.php
@@ -101,7 +101,7 @@
$output = preg_replace_callback('!