mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 03:32:00 +09:00
모바일 언어설정 모드 추가
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6366 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
db8733fd18
commit
9296c680ac
7 changed files with 114 additions and 14 deletions
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* mhtml Library ver 0.1
|
||||
* @author zero <zero@zeroboard.com>
|
||||
* @author zero <zero@zeroboard.com> / lang_select : misol
|
||||
**/
|
||||
class wap extends mobileXE {
|
||||
|
||||
|
|
@ -24,7 +24,6 @@
|
|||
// 제목을 출력
|
||||
function printTitle() {
|
||||
if($this->totalPage > $this->mobilePage) $titlePageStr = sprintf("(%d/%d)",$this->mobilePage, $this->totalPage);
|
||||
$this->title = str_replace(array('$','\'','_'), array('$$',''','­'), $this->title);
|
||||
printf('<%s%s><br>%s', htmlspecialchars($this->title),htmlspecialchars($titlePageStr),"\n");
|
||||
}
|
||||
|
||||
|
|
@ -59,6 +58,10 @@
|
|||
$url = $this->upperUrl;
|
||||
printf('<btn href="%s" name="%s">%s', $url->url, $url->text, "\n");
|
||||
}
|
||||
else {
|
||||
$url = getUrl('','lcm','1','sel_lang',Context::getLangType());
|
||||
printf('<btn name="%s" href="%s">%s', 'Language : '.Context::getLang('select_lang'), $url, "\n");
|
||||
}
|
||||
if($this->homeUrl) {
|
||||
$url = $this->homeUrl;
|
||||
printf('<a btn="%s" href="%s">%s</a>%s', $url->text, $url->url, $url->text, "\n");
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* Mobile XE Library Class ver 0.1
|
||||
* @author zero <zero@zeroboard.com>
|
||||
* @author zero <zero@zeroboard.com> / lang_select : misol
|
||||
* @brief WAP 태그 출력을 위한 XE 라이브러리
|
||||
**/
|
||||
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
var $content = NULL;
|
||||
var $mobilePage = 0;
|
||||
var $totalPage = 1;
|
||||
var $charset = 'euc-kr';
|
||||
var $charset = 'UTF-8';
|
||||
var $no = 0;
|
||||
|
||||
// 네비게이션 관련 변수
|
||||
|
|
@ -42,6 +42,9 @@
|
|||
// Deck size
|
||||
var $deckSize = 1024;
|
||||
|
||||
// 언어 설정 변경
|
||||
var $languageMode = 0;
|
||||
var $lang = null;
|
||||
/**
|
||||
* @brief getInstance
|
||||
**/
|
||||
|
|
@ -56,6 +59,12 @@
|
|||
$class_file = sprintf('%saddons/mobile/classes/%s.class.php', _XE_PATH_, $browserType);
|
||||
require_once($class_file);
|
||||
|
||||
// 모바일 언어설정 로드(쿠키가 안되어 생각해낸 방법...-캐시파일 재생성을 클릭하면 초기화된다..)
|
||||
$this->lang = FileHandler::readFile('./files/cache/addons/mobile/setLangType/personal_settings/'.md5(trim($_SERVER['HTTP_COOKIE']).trim($_SERVER['HTTP_PHONE_NUMBER']).trim($_SERVER['HTTP_HTTP_PHONE_NUMBER'])).'.php');
|
||||
if($this->lang) {
|
||||
$this->lang = str_replace(array('<?php /**','**/ ?>'),array('',''),$this->lang);
|
||||
Context::setLangType($this->lang);
|
||||
}
|
||||
Context::loadLang(_XE_PATH_.'addons/mobile/lang');
|
||||
|
||||
$instance = new wap();
|
||||
|
|
@ -64,6 +73,7 @@
|
|||
if(!$mobilePage) $mobilePage = 1;
|
||||
|
||||
$instance->setMobilePage($mobilePage);
|
||||
|
||||
}
|
||||
|
||||
return $instance;
|
||||
|
|
@ -74,10 +84,17 @@
|
|||
**/
|
||||
function mobileXE() {
|
||||
// navigation mode 체크
|
||||
if(Context::get('nm')) $this->navigationMode = 1;
|
||||
if(Context::get('nm')) {
|
||||
$this->navigationMode = 1;
|
||||
$this->cmid = (int)Context::get('cmid');
|
||||
}
|
||||
|
||||
if(Context::get('lcm')) {
|
||||
$this->languageMode = 1;
|
||||
$this->lang = Context::get('sel_lang');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief navigation mode 체크
|
||||
* navigationMode 세팅과 모듈 정보의 menu_srl이 있어야 navigation mode = true로 return
|
||||
|
|
@ -86,6 +103,26 @@
|
|||
return ($this->navigationMode && $this->module_info->menu_srl)?true:false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief langchange mode 체크
|
||||
* languageMode 세팅 있어야 true return
|
||||
**/
|
||||
function isLangChange() {
|
||||
if($this->languageMode) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 언어 설정
|
||||
* 쿠키가 안되기 때문에 휴대전화마다 고유한 파일로 언어설정을 저장하는 파일 생성
|
||||
**/
|
||||
function setLangType() {
|
||||
$langbuff = FileHandler::readFile('./files/cache/addons/mobile/setLangType/personal_settings/'.md5(trim($_SERVER['HTTP_COOKIE']).trim($_SERVER['HTTP_PHONE_NUMBER']).trim($_SERVER['HTTP_HTTP_PHONE_NUMBER'])).'.php');
|
||||
if($langbuff) FileHandler::removeFile('./files/cache/addons/mobile/setLangType/personal_settings/'.md5(trim($_SERVER['HTTP_COOKIE']).trim($_SERVER['HTTP_PHONE_NUMBER']).trim($_SERVER['HTTP_HTTP_PHONE_NUMBER'])).'.php');
|
||||
$langbuff = '<?php /**'.$this->lang.'**/ ?>';
|
||||
FileHandler::writeFile('./files/cache/addons/mobile/setLangType/personal_settings/'.md5(trim($_SERVER['HTTP_COOKIE']).trim($_SERVER['HTTP_PHONE_NUMBER']).trim($_SERVER['HTTP_HTTP_PHONE_NUMBER'])).'.php',$langbuff);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 현재 요청된 모듈 정보 세팅
|
||||
**/
|
||||
|
|
@ -265,8 +302,6 @@
|
|||
$content = str_replace('<br/><br/>','<br/>',$content);
|
||||
}
|
||||
|
||||
$content = str_replace(array('$','\''), array('$$','''), $content);
|
||||
|
||||
// 모바일의 경우 한 덱에 필요한 사이즈가 적어서 내용을 모두 페이지로 나눔
|
||||
$contents = array();
|
||||
while($content) {
|
||||
|
|
@ -311,6 +346,7 @@
|
|||
|
||||
$this->content = $contents[$this->mobilePage-1];
|
||||
$oModuleController->replaceDefinedLangCode($this->content);
|
||||
$content = str_replace(array('$','\''), array('$$','''), $content);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -477,6 +513,37 @@
|
|||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 언어설정 메뉴 출력
|
||||
**/
|
||||
function displayLangSelect() {
|
||||
$childs = array();
|
||||
|
||||
$this->lang = FileHandler::readFile('./files/cache/addons/mobile/setLangType/personal_settings/'.md5(trim($_SERVER['HTTP_COOKIE']).trim($_SERVER['HTTP_PHONE_NUMBER']).trim($_SERVER['HTTP_HTTP_PHONE_NUMBER'])).'.php');
|
||||
if($this->lang) {
|
||||
$this->lang = str_replace(array('<?php /**','**/ ?>'),array('',''),$this->lang);
|
||||
Context::setLangType($this->lang);
|
||||
}
|
||||
$lang_supported = Context::get('lang_supported');
|
||||
$lang_type = Context::getLangType();
|
||||
$obj = null;
|
||||
$obj['link'] = $obj['text'] = Context::getLang('president_lang').' : '.$lang_supported[$lang_type];
|
||||
$obj['href'] = getUrl('sel_lang',$lang_type);
|
||||
$childs[] = $obj;
|
||||
|
||||
if(is_array($lang_supported)) {
|
||||
foreach($lang_supported as $key => $val) {
|
||||
$obj = null;
|
||||
$obj['link'] = $obj['text'] = $val;
|
||||
$obj['href'] = getUrl('sel_lang',$key);
|
||||
$childs[] = $obj;
|
||||
}
|
||||
}
|
||||
$this->setChilds($childs);
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈의 WAP 클래스 객체 생성하여 WAP 준비
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
/**
|
||||
* WML Library ver 0.1
|
||||
* @author zero <zero@zeroboard.com>
|
||||
* @author zero <zero@zeroboard.com> / lang_select : misol
|
||||
**/
|
||||
class wap extends mobileXE {
|
||||
|
||||
|
|
@ -29,7 +29,6 @@
|
|||
**/
|
||||
function printTitle() {
|
||||
if($this->totalPage > $this->mobilePage) $titlePageStr = sprintf("(%d/%d)",$this->mobilePage, $this->totalPage);
|
||||
$this->title = str_replace(array('$','\'','_'), array('$$',''','­'), $this->title);
|
||||
printf('<%s%s><br/>%s', htmlspecialchars($this->title),htmlspecialchars($titlePageStr),"\n");
|
||||
}
|
||||
|
||||
|
|
@ -68,6 +67,10 @@
|
|||
$url = $this->upperUrl;
|
||||
printf('<do type="vnd.up" label="%s"><go href="%s"/></do>%s', $url->text, $url->url, "\n");
|
||||
}
|
||||
else {
|
||||
$url = getUrl('','lcm','1','sel_lang',Context::getLangType());
|
||||
printf('<do type="vnd.up" label="%s"><go href="%s"/></do>%s', 'Language : '.Context::getLang('select_lang'), $url, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
// 푸터 정보를 출력
|
||||
|
|
|
|||
|
|
@ -25,8 +25,8 @@
|
|||
透過行動工具上網時,會將網頁轉換為WAP標籤顯示。
|
||||
只限於 wml, hdml, mhtml格式。
|
||||
</description>
|
||||
<version>0.1</version>
|
||||
<date>2008-06-20</date>
|
||||
<version>0.1.1</version>
|
||||
<date>2009-05-23</date>
|
||||
|
||||
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
|
||||
<name xml:lang="ko">zero</name>
|
||||
|
|
@ -36,6 +36,19 @@
|
|||
<name xml:lang="zh-TW">zero</name>
|
||||
</author>
|
||||
|
||||
<history version="0.1.1" date="2009-05-23">
|
||||
<author email_address="misol221@paran.com" link="http://www.imsoo.net">
|
||||
<name xml:lang="ko">misol</name>
|
||||
<name xml:lang="jp">misol</name>
|
||||
<name xml:lang="zh-CN">misol</name>
|
||||
<name xml:lang="en">misol</name>
|
||||
<name xml:lang="zh-TW">misol</name>
|
||||
</author>
|
||||
<log>언어선택 추가(WML, mHTML)</log>
|
||||
<log>인코딩 설정 개선</log>
|
||||
<log>그 외 소소한 개선들</log>
|
||||
</history>
|
||||
|
||||
<extra_vars>
|
||||
<var name="charset">
|
||||
<title xml:lang="ko">문자셋</title>
|
||||
|
|
@ -44,9 +57,10 @@
|
|||
<title xml:lang="en">Charset</title>
|
||||
<title xml:lang="zh-TW">編碼</title>
|
||||
<description xml:lang="ko">
|
||||
모바일 기기의 경우 utf-8 문자셋을 인식하지 못할 수 있습니다.
|
||||
모바일 기기의 경우 UTF-8 문자셋을 인식하지 못할 수 있습니다.
|
||||
문자셋에 원하시는 문자셋을 입력하면 자동으로 변환하여 출력하여 모바일에서 이상없이 출력하도록 합니다.
|
||||
기본값은 UTF-8입니다.
|
||||
(*SK Telecom 휴대전화의 경우 euc-kr인코딩만 지원하므로, 강제로 euc-kr인코딩만 지원합니다.)
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
ある特定のモバイル機器ではutf-8文字コードの認識が出来ない場合があります。
|
||||
|
|
|
|||
|
|
@ -4,6 +4,9 @@
|
|||
* @author zero (zero@nzeo.com)
|
||||
* @brief English Language Pack (Basic Contents only)
|
||||
**/
|
||||
// lang select by misol
|
||||
$lang->president_lang = 'selected Lang.';
|
||||
$lang->select_lang = 'select lang';
|
||||
|
||||
$lang->cmd_go_upper = 'Upper';
|
||||
$lang->cmd_go_home = 'Go Home';
|
||||
|
|
|
|||
|
|
@ -5,7 +5,12 @@
|
|||
* @brief 한국어 언어팩 (기본적인 내용만 수록)
|
||||
**/
|
||||
|
||||
// 언어 선택부분 by misol
|
||||
$lang->president_lang = '현재 언어';
|
||||
$lang->select_lang = '언어 선택';
|
||||
|
||||
$lang->cmd_go_upper = '상위';
|
||||
$lang->cmd_go_home = '홈으로';
|
||||
$lang->cmd_view_sitemap = '사이트맵 보기';
|
||||
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@
|
|||
// 네비게이트 모드이거나 WAP class가 있을 경우 미리 컨텐츠를 추출하여 출력/ 종료
|
||||
if($called_position == 'before_module_proc') {
|
||||
|
||||
if($oMobile->isLangChange()) {
|
||||
$oMobile->setLangType();
|
||||
$oMobile->displayLangSelect();
|
||||
}
|
||||
|
||||
// 네비게이트 모드이면 네비게이션 컨텐츠 출력
|
||||
if($oMobile->isNavigationMode()) $oMobile->displayNavigationContent();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue