From dd18ad335f373f10f05b2f3a19f684439f99d835 Mon Sep 17 00:00:00 2001 From: zero Date: Mon, 25 Jun 2007 02:28:00 +0000 Subject: [PATCH] git-svn-id: http://xe-core.googlecode.com/svn/trunk@1755 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/db/DBMysql.class.php | 2 +- classes/db/DBMysql_innodb.class.php | 2 +- classes/db/DBSqlite2.class.php | 6 +- classes/db/DBSqlite3_pdo.class.php | 4 +- config/config.inc.php | 2 +- modules/install/lang/ko.lang.php | 6 +- modules/install/tpl/check_env.html | 56 +++--- modules/install/tpl/css/install.css | 87 ++++++++++ modules/install/tpl/form.cubrid.html | 162 ++++++++---------- modules/install/tpl/form.mysql.html | 156 ++++++++--------- modules/install/tpl/form.mysql_innodb.html | 157 ++++++++--------- modules/install/tpl/form.sqlite2.html | 129 +++++++------- modules/install/tpl/form.sqlite3_pdo.html | 130 +++++++------- modules/install/tpl/header.html | 6 +- modules/install/tpl/images/blank.gif | Bin 0 -> 43 bytes .../install/tpl/images/buttonTypeACenter.gif | Bin 0 -> 188 bytes .../install/tpl/images/buttonTypeALeft.gif | Bin 0 -> 169 bytes .../install/tpl/images/buttonTypeARight.gif | Bin 0 -> 170 bytes modules/install/tpl/images/h1.png | Bin 0 -> 24026 bytes modules/install/tpl/images/iconCreate.gif | Bin 0 -> 49 bytes modules/install/tpl/images/installBg.gif | Bin 0 -> 1598 bytes .../install/tpl/images/installBoxBottom.png | Bin 0 -> 398 bytes modules/install/tpl/introduce.html | 21 ++- modules/install/tpl/js/iePngFix.htc | 64 +++++++ modules/install/tpl/select_db.html | 54 +++--- 25 files changed, 583 insertions(+), 461 deletions(-) create mode 100644 modules/install/tpl/css/install.css create mode 100644 modules/install/tpl/images/blank.gif create mode 100644 modules/install/tpl/images/buttonTypeACenter.gif create mode 100644 modules/install/tpl/images/buttonTypeALeft.gif create mode 100644 modules/install/tpl/images/buttonTypeARight.gif create mode 100644 modules/install/tpl/images/h1.png create mode 100644 modules/install/tpl/images/iconCreate.gif create mode 100644 modules/install/tpl/images/installBg.gif create mode 100644 modules/install/tpl/images/installBoxBottom.png create mode 100644 modules/install/tpl/js/iePngFix.htc diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index b3970031c..8dd60e5d8 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -175,7 +175,7 @@ $query = sprintf("insert into `%ssequence` (seq) values ('')", $this->prefix); $this->_query($query); $sequence = mysql_insert_id(); - $query = sprintf("delete from `%ssequence`", $this->prefix); + $query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence); $this->_query($query); return $sequence; diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php index 4a151417d..1730c2d33 100644 --- a/classes/db/DBMysql_innodb.class.php +++ b/classes/db/DBMysql_innodb.class.php @@ -184,7 +184,7 @@ $query = sprintf("insert into `%ssequence` (seq) values ('')", $this->prefix); $this->_query($query); $sequence = mysql_insert_id(); - $query = sprintf("delete from `%ssequence`", $this->prefix); + $query = sprintf("delete from `%ssequence` where seq < %d", $this->prefix, $sequence); $this->_query($query); return $sequence; diff --git a/classes/db/DBSqlite2.class.php b/classes/db/DBSqlite2.class.php index 2b5096561..63564a4ea 100644 --- a/classes/db/DBSqlite2.class.php +++ b/classes/db/DBSqlite2.class.php @@ -172,10 +172,10 @@ * @brief 1씩 증가되는 sequence값을 return **/ function getNextSequence() { - $query = sprintf("insert into `%ssequence` (seq) values ('')", $this->prefix); + $query = sprintf("insert into %ssequence (seq) values ('')", $this->prefix); $this->_query($query); $sequence = sqlite_last_insert_rowid($this->fd); - $query = sprintf("delete from `%ssequence`", $this->prefix); + $query = sprintf("delete from %ssequence where seq < %d", $this->prefix, $sequence); $this->_query($query); return $sequence; @@ -361,7 +361,7 @@ if($output->column_type[$name]!='number') $value = "'".$this->addQuotes($value)."'"; elseif(!$value || is_numeric($value)) $value = (int)$value; - $column_list[] = sprintf("`%s` = %s", $name, $value); + $column_list[] = sprintf("%s = %s", $name, $value); } } diff --git a/classes/db/DBSqlite3_pdo.class.php b/classes/db/DBSqlite3_pdo.class.php index 268442b5e..3c57d3a26 100644 --- a/classes/db/DBSqlite3_pdo.class.php +++ b/classes/db/DBSqlite3_pdo.class.php @@ -196,7 +196,7 @@ $this->_prepare($query); $result = $this->_execute(); $sequence = $this->handler->lastInsertId(); - $query = sprintf("delete from `%ssequence`", $this->prefix); + $query = sprintf("delete from %ssequence where seq < %d", $this->prefix, $sequence); $this->_prepare($query); $result = $this->_execute(); @@ -398,7 +398,7 @@ if($output->column_type[$name]!='number') $value = "'".$this->addQuotes($value)."'"; elseif(!$value || is_numeric($value)) $value = (int)$value; - $column_list[] = sprintf("`%s` = %s", $name, $value); + $column_list[] = sprintf("%s = %s", $name, $value); } } diff --git a/config/config.inc.php b/config/config.inc.php index dfd823245..aecc51379 100644 --- a/config/config.inc.php +++ b/config/config.inc.php @@ -24,7 +24,7 @@ * 2 : 1 + DB 쿼리 * 3 : 모든 로그 **/ - define('__DEBUG__', 1); + define('__DEBUG__', 3); /** * @brief 간단하게 사용하기 위한 함수 정의한 파일 require diff --git a/modules/install/lang/ko.lang.php b/modules/install/lang/ko.lang.php index e92fc96c3..fa54c269c 100644 --- a/modules/install/lang/ko.lang.php +++ b/modules/install/lang/ko.lang.php @@ -9,7 +9,7 @@ $lang->license = "제로보드XE는 GPL라이센스를 따릅니다"; - $lang->install_condition_title = "설치 조건"; + $lang->install_condition_title = "필수 설치조건을 확인하세요."; $lang->install_checklist_title = array( 'permission' => '퍼미션', @@ -37,7 +37,7 @@ $lang->install_permission_denied = '설치대상 디렉토리의 퍼미션이 707이 아닙니다'; $lang->cmd_agree_license = '라이센스에 동의합니다'; - $lang->cmd_install_fix_checklist = '필수 조건을 설정후 다음 버튼을 눌러 주세요.'; + $lang->cmd_install_fix_checklist = '필수 설치조건을 설정하였습니다.'; $lang->cmd_install_next = '설치를 진행합니다'; $lang->db_desc = array( @@ -48,8 +48,10 @@ 'cubrid' => 'CUBRID DB를 이용합니다.
(안정화 테스트 및 튜닝이 되지 않았습니다)', ); + $lang->form_title = 'DB & 관리자 정보 입력'; $lang->db_title = 'DB정보 입력'; $lang->db_type = 'DB 종류'; + $lang->select_db_type = '사용하시려는 DB를 선택해주세요.'; $lang->db_hostname = 'DB 호스트네임'; $lang->db_port = 'DB Port'; $lang->db_userid = 'DB 아이디'; diff --git a/modules/install/tpl/check_env.html b/modules/install/tpl/check_env.html index df999d350..7bd79ef31 100644 --- a/modules/install/tpl/check_env.html +++ b/modules/install/tpl/check_env.html @@ -1,33 +1,37 @@ +
+

Zeroboard XE Install

- - - - +
+

{$lang->install_condition_title}

- -
- -
{$lang->install_condition_title}
{$lang->install_checklist_title[$key]} - - {$lang->enable} - - {$lang->disable} + + + + + + + + - - - - - - +
{$lang->install_checklist_title[$key]} + + {$lang->enable} + + {$lang->disable} +
{$lang->install_checklist_desc[$key]} + +
{$lang->install_checklist_desc[$key]}
-
+ +
+ - -[{$lang->cmd_install_next}] + - -{$lang->cmd_install_fix_checklist} -[{$lang->cmd_next}] - - diff --git a/modules/install/tpl/css/install.css b/modules/install/tpl/css/install.css new file mode 100644 index 000000000..f64c4331f --- /dev/null +++ b/modules/install/tpl/css/install.css @@ -0,0 +1,87 @@ +@charset "utf-8"; +/* +NHN UIT Lab. WebStandardization Team (http://html.nhndesign.com/) +Jeong, Chan Myeong 070601~070630 +*/ + +/* +Used Hack + +IE6 & Below +{ property:value; _property:value;} + +IE7 Only +*:first-child+html #selector + +*/ + +/* default.css - Type Selector Definition */ +* { margin:0; padding:0; font-family:"돋움", Dotum, "굴림", Gulim, AppleGothic, Sans-serif;} +html, body {} +html { width:100%; position:relative;} +body { position:relative; font-size:.75em; width:100%; background:#4d4d4d url(../images/installBg.gif) repeat-x;} +img { border:none;} +label { cursor:pointer;} +select { height:1.6em;} +option { padding-right:.5em;} +li { list-style:none;} +a { text-decoration:none;} +a:hover { text-decoration:underline;} +address { font-style:normal;} + +/* Input Style Definition */ +.inputTypeText { border:1px solid #c9c9c9; padding:3px; height:1em; line-height:1em; background:#ffffff;} +.inputTypeText:hover, +.inputTypeText:focus { background:#f4f4f4;} +.inputTypeTextArea { border:1px solid #c9c9c9; padding:3px; background:#ffffff;} + +/* Internet Explorer 6 PNG Bug Fix */ +.iePngFix { behavior:url(../js/iePngFix.htc);} + +/* Special Class Selector */ +.fr { float:right;} +.fl { float:left;} + +/* Content */ +#box { position:relative; left:50%; margin-left:-380px; margin-top:120px; width:750px;} +#content { position:relative; padding:25px 20px 20px 20px; overflow:hidden; background:#ffffff;} +#content .iePngFix { position:absolute; bottom:-30px; left:-25px;} +#content h2 { font-size:1em; padding-left:.5em; margin-bottom:1em;} +#agreement { border:1px solid #c9c9c9; height:12em; padding:1.2em; overflow:auto; color:#696969; line-height:1.25em;} + +.buttonCenter { overflow:hidden; height:24px; padding-top:15px;} +.buttonCenter li { float:left; margin-right:.3em;} +.buttonCenter .fl { position:relative; left:48%;} +.buttonTypeA { display:block; cursor:pointer; background:url(../images/buttonTypeACenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; white-space:nowrap;} +.buttonTypeA:hover { text-decoration:none;} +.buttonTypeA img { vertical-align:middle;} +.buttonTypeA input { border:none; cursor:pointer; background:url(../images/white/buttonTypeACenter.gif) repeat-x left center; line-height:100%; overflow:visible; color:#3f4040; margin:0 1px; white-space:nowrap;border:0px; _position:relative; _top:3px;} +.buttonTypeA .leftCap { width:2px; height:24px; background:url(../images/buttonTypeALeft.gif) no-repeat; margin:0 .3em 0 0; position:relative; left:-1px;} +.buttonTypeA .rightCap { width:2px; height:24px; background:url(../images/buttonTypeARight.gif) no-repeat; margin:0 -1px 0 .4em;} +.buttonTypeA .icon { margin:0 .4em 0 .2em;} + +#content .tableType6 { border:2px solid #c1c0bd; border-left:none; border-right:none; width:100%;} +#content .tableType6 th { border-top:1px solid #fbfbfb; border-bottom:1px solid #e4e4e4; background:#f5f5f5; padding:10px 10px 10px 2em; font-weight:normal; text-align:left; color:#606060;} +#content .tableType6 td { border-bottom:1px solid #ededed; padding:10px 10px 7px 10px; color:#7b7972; line-height:1.25em;} +#content .tableType6 input, +#content .tableType6 textarea, +#content .tableType6 select { vertical-align:middle;} +#content .tableType6 td .w100 { width:100%; display:block;} +#content .tableType6 td .checkbox { margin:-3px;} +#content .tableType6 td p { line-height:1.4em;} +#content .tableType6 .borderBottomNone { border-bottom:none;} +#content .tableType6 .none { color:#c95b53;} + +#content .tableType7 { border:2px solid #c1c0bd; border-left:none; border-right:none; width:100%;} +#content .tableType7 th { border-bottom:1px solid #e4e4e4; background:#e8e8e8; padding:10px 10px 10px 2em; font-weight:normal; text-align:left; color:#606060;} +#content .tableType7 th.second { background:#f5f5f5;} +#content .tableType7 td { border-bottom:1px solid #ededed; padding:10px 10px 7px 10px; color:#7b7972; line-height:1.25em; font-size:.9em;} +#content .tableType7 .hr { border-bottom:1px solid #b8b8b8;} +#content .tableType7 input, +#content .tableType7 textarea, +#content .tableType7 select { vertical-align:middle;} +#content .tableType7 td .w100 { width:100%; display:block;} +#content .tableType7 td .checkbox { margin:-3px;} +#content .tableType7 td p { line-height:1.4em; padding-top:.5em;} +#content .tableType7 .borderBottomNone { border-bottom:none;} +#content .tableType7 .none { color:#c95b53;} diff --git a/modules/install/tpl/form.cubrid.html b/modules/install/tpl/form.cubrid.html index b1186de15..a40bb9afe 100644 --- a/modules/install/tpl/form.cubrid.html +++ b/modules/install/tpl/form.cubrid.html @@ -1,96 +1,82 @@ +
- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {$lang->db_title} -
{$lang->db_hostname} - -
{$lang->db_port} - -
{$lang->db_userid} - -
{$lang->db_password} - -
{$lang->db_database} - -
{$lang->db_table_prefix} - -
+
+

Zeroboard XE Install

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {$lang->admin_title} -
{$lang->user_id} - -
{$lang->password1} - -
{$lang->password2} - -
{$lang->user_name} - -
{$lang->nick_name} - -
{$lang->email_address} - -
+
+

{$lang->form_title}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$db_type}
+ +
+ +
+
+ + +
-
+ diff --git a/modules/install/tpl/form.mysql.html b/modules/install/tpl/form.mysql.html index 02481597f..ed2725816 100644 --- a/modules/install/tpl/form.mysql.html +++ b/modules/install/tpl/form.mysql.html @@ -1,90 +1,82 @@ +
- + - - - - - - - - - - - - - - - - - - - - - - - - -
- {$lang->db_title} -
{$lang->db_hostname} - -
{$lang->db_userid} - -
{$lang->db_password} - -
{$lang->db_database} - -
{$lang->db_table_prefix} - -
+
+

Zeroboard XE Install

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {$lang->admin_title} -
{$lang->user_id} - -
{$lang->password1} - -
{$lang->password2} - -
{$lang->user_name} - -
{$lang->nick_name} - -
{$lang->email_address} - -
+
+

{$lang->form_title}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$db_type}
+ +
+ +
+
+ + +
-
+ diff --git a/modules/install/tpl/form.mysql_innodb.html b/modules/install/tpl/form.mysql_innodb.html index 02481597f..0c7a7c3a3 100644 --- a/modules/install/tpl/form.mysql_innodb.html +++ b/modules/install/tpl/form.mysql_innodb.html @@ -1,90 +1,83 @@ + +
- + - - - - - - - - - - - - - - - - - - - - - - - - -
- {$lang->db_title} -
{$lang->db_hostname} - -
{$lang->db_userid} - -
{$lang->db_password} - -
{$lang->db_database} - -
{$lang->db_table_prefix} - -
+
+

Zeroboard XE Install

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {$lang->admin_title} -
{$lang->user_id} - -
{$lang->password1} - -
{$lang->password2} - -
{$lang->user_name} - -
{$lang->nick_name} - -
{$lang->email_address} - -
+
+

{$lang->form_title}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$db_type}
+ +
+ +
+
+ + +
-
+ diff --git a/modules/install/tpl/form.sqlite2.html b/modules/install/tpl/form.sqlite2.html index e28f69f20..b8e4a5eff 100644 --- a/modules/install/tpl/form.sqlite2.html +++ b/modules/install/tpl/form.sqlite2.html @@ -1,75 +1,70 @@ +
- + - - - - - - - - - - - - - - - -
- {$lang->db_title} -
{$lang->db_database_file} - -
{$lang->about_database_file}
{$lang->db_table_prefix} - -
+
+

Zeroboard XE Install

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {$lang->admin_title} -
{$lang->user_id} - -
{$lang->password1} - -
{$lang->password2} - -
{$lang->user_name} - -
{$lang->nick_name} - -
{$lang->email_address} - -
+
+

{$lang->form_title}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$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 e28f69f20..4c5fc9359 100644 --- a/modules/install/tpl/form.sqlite3_pdo.html +++ b/modules/install/tpl/form.sqlite3_pdo.html @@ -1,75 +1,71 @@ +
- + - - - - - - - - - - - - - - - -
- {$lang->db_title} -
{$lang->db_database_file} - -
{$lang->about_database_file}
{$lang->db_table_prefix} - -
+
+

Zeroboard XE Install

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- {$lang->admin_title} -
{$lang->user_id} - -
{$lang->password1} - -
{$lang->password2} - -
{$lang->user_name} - -
{$lang->nick_name} - -
{$lang->email_address} - -
+
+

{$lang->form_title}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$db_type} + +

{$lang->about_database_file}

+
+ +
+ +
+
+ + +
-
+ + + diff --git a/modules/install/tpl/header.html b/modules/install/tpl/header.html index 8c6386ccf..c338211b2 100644 --- a/modules/install/tpl/header.html +++ b/modules/install/tpl/header.html @@ -1,5 +1 @@ - - - - -
{$lang->introduce_title}
+ diff --git a/modules/install/tpl/images/blank.gif b/modules/install/tpl/images/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/modules/install/tpl/images/buttonTypeACenter.gif b/modules/install/tpl/images/buttonTypeACenter.gif new file mode 100644 index 0000000000000000000000000000000000000000..56127ea2e714dc740454594d7ce6df61a1c96023 GIT binary patch literal 188 zcmZ?wbhEHbWMznFdv5(1obq?A3DB<|F)nA?)E#c`?8y6eqh)-TF@ LRU0E@m>8@9a!*&# literal 0 HcmV?d00001 diff --git a/modules/install/tpl/images/buttonTypeALeft.gif b/modules/install/tpl/images/buttonTypeALeft.gif new file mode 100644 index 0000000000000000000000000000000000000000..12839fe055edc018a706651dce88011500092e46 GIT binary patch literal 169 zcmZ?wbhEHbWMYtDI3me#?D(PMCl2r1ziaEZ4W~|>c>MVB<}K?F9Ncr{=z-IxPyYM& z@8ZRaM~@vmckbLFpsEAA&zw1R^5pT|d$#S`y>lT|Nnpgg8>5uQ2fcl z$iN`UpaYTt*~!4FmT)bib*V!{lVC&(t3-pLM3d!>M%x(;o-;f@I4Q4bz6 GgEauC0#W1u literal 0 HcmV?d00001 diff --git a/modules/install/tpl/images/buttonTypeARight.gif b/modules/install/tpl/images/buttonTypeARight.gif new file mode 100644 index 0000000000000000000000000000000000000000..1dd5aac05abdb2281e7cc949bee38779741f8323 GIT binary patch literal 170 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 RjmiK3002ovPDHLkV1g=75+eWr literal 0 HcmV?d00001 diff --git a/modules/install/tpl/images/iconCreate.gif b/modules/install/tpl/images/iconCreate.gif new file mode 100644 index 0000000000000000000000000000000000000000..0fdecf963fc74751d4369fd8d01c874b7681b505 GIT binary patch literal 49 xcmZ?wbhEHb1}2UcLCN-0yZCe%tO52Y33&hj literal 0 HcmV?d00001 diff --git a/modules/install/tpl/images/installBg.gif b/modules/install/tpl/images/installBg.gif new file mode 100644 index 0000000000000000000000000000000000000000..d76bd51b2550885fcdfe2c922a9a17d55a5ca9aa GIT binary patch literal 1598 zcmV-E2EqA9Nk%w1VFdsn1Lgn#d3kwtb#-ZJX<=buWo2b?adA~uRb5?OSy@?aZEa3Y zPKbzzhK7cOgoJ{Ef`EX4ii(PSe0+X>eo#wR%~o+P*6{UgM)*FgHlmZe0zL=e}8LhYg=1d zU|?W|g@%EGfq{X6Q&Uq@R8&`3S9ElAV`O7sU}0lqWN&Y8UtnK{hlXowYEMv4TU=XI zR8(ACU1w-#XlH0>XlRLwig$N+f`Nj7e}H{`eT0LAeSUs_e}8*>dT(!Tb8~ZZbaQxj zcwb*$WMpJ)Y;9XxTW4oyTw7d)g@tHnX=i641ejE#eL5Quv*P}^?_HcU$cJws^Ke#2W2&ANYkWA znl>E&&c@Zip^e?UcE-=Lk%glxD)YbOk<4YSiE}dp4ijxcRuz?WT8c-n@7F9_|}}@#Dwc zAYZ=RgK_5`qD!9+AbR!b*rUsde&&o1AKZO(?=EM&dGi6r2S~qu{TcS{)EF8D#=T)WPHtSVoy;mQHNx#0o1Mv4Rs{f=T9?XrAdsnofA(=9_T7DS(@E zdNHQ}c;>0+o_LmlryhIyS;n9Ol%dCSla#vON%Q3j-xjxh$MnC@|hrkX;! zN2i~LD(a^MjJgK_rJ}0ps;JVTs;jTI>M9+u(rW9ibl^a%7B}RoMXonsfdw5m6l?6U z$R>;I05>o@z_ZUb3+=SjR%`75Sv(5`6wqdo#kSZE04}%NmRl|tP`vQMw(6$4E*J2s zEAPB>$XoBdbL6Y<3;6P@uf7KaobLg11Z?oZ2q&zt7zZ#6f*2q~48j2tR}4n~#UR)b zF&JRr0RkQu<6(!!BbPk#6D6aZvdMNl;d09@qwMm`E+g=S%?RL}^UgWn%=6C(q>#eS zLKiJG&qEuXbP6H}4Fe2DH=V)|B2=A%6(Ybe#MV}9y>-@J8!?2~UWYyQ*<+J!#M*4P zy|w{w!)?Iabjxi--FV|2Mi_b1&3E2=^Bwr$ga>ZJ-c?jV#RoPt{s9$>Q(*(-Hhl0n z7}Qxdg(4uumlAzm=FX7CM;2V5K9C>g9|kD?)&d1 z@c#Sn6AWKG@e?GUJPpb>uRQb4D~|*c&69w{7bGa30|`6qkbMqcsQ-%00004XF*Lt006JZ zHwB960000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzAW1|)RCwC# z*1bx@P#A#WCTXdNLkDs20=he8w|C&Zc^kS5^$x_nL!qPM&>@IvlExf3g&>X+GdvG` zIr*Eu=}qdoe#^4#Y61WNj8fAy?`csKFIE8n0OJ*!J>BhgPgVf{0OJ*!J;M1&07*qoM6N<$f)LWJUH||9 literal 0 HcmV?d00001 diff --git a/modules/install/tpl/introduce.html b/modules/install/tpl/introduce.html index 7140f6db8..6b2da904d 100644 --- a/modules/install/tpl/introduce.html +++ b/modules/install/tpl/introduce.html @@ -1,12 +1,17 @@ - - - - -
- {nl2br($lang->license)} -
+

+

Zeroboard XE Install

+
+

{$lang->introduce_title}

+
{nl2br($lang->license)}
-[{$lang->cmd_agree_license}] + + +
+ + +
diff --git a/modules/install/tpl/js/iePngFix.htc b/modules/install/tpl/js/iePngFix.htc new file mode 100644 index 000000000..3c495eff7 --- /dev/null +++ b/modules/install/tpl/js/iePngFix.htc @@ -0,0 +1,64 @@ + + + + + \ No newline at end of file diff --git a/modules/install/tpl/select_db.html b/modules/install/tpl/select_db.html index a31b609c4..ebc96f4f7 100644 --- a/modules/install/tpl/select_db.html +++ b/modules/install/tpl/select_db.html @@ -1,33 +1,35 @@ - - - - -
{$lang->introduce_title}
+ - -
+
+

Zeroboard XE Install

+ + - - - - - - - - - - - - - -
{$lang->db_type}
checked="true"/>{$lang->db_desc[$val]}
+
+

{$lang->select_db_type}

- + + - -{$lang->cmd_install_fix_checklist} -[{$lang->cmd_next}] + + + + + + - +
+ checked="true"/> + + {$lang->db_desc[$val]}
+ +
+ +
+
+ + + +