diff --git a/classes/db/DBCubrid.class.php b/classes/db/DBCubrid.class.php
index cddc4dc24..c39d19567 100644
--- a/classes/db/DBCubrid.class.php
+++ b/classes/db/DBCubrid.class.php
@@ -203,6 +203,36 @@
return $output;
}
+ /**
+ * @brief 특정 테이블에 특정 column 추가
+ **/
+ function addColumn($table_name, $column_name, $type='number', $size='', $default = '', $notnull=false) {
+ $type = $this->column_type[$type];
+ if(strtoupper($type)=='INTEGER') $size = '';
+
+ $query = sprintf("alter class %s%s add %s ", $this->prefix, $table_name, $column_name);
+ if($size) $query .= sprintf(" %s(%s) ", $type, $size);
+ else $query .= sprintf(" %s ", $type);
+ if($default) $query .= sprintf(" default '%s' ", $default);
+ if($notnull) $query .= " not null ";
+
+ $this->_query($query);
+ }
+
+ /**
+ * @brief 특정 테이블의 column의 정보를 return
+ **/
+ function isColumnExists($table_name, $column_name) {
+ $query = sprintf("select %s from db_attribute where class_name = '%s%s'", $column_name, $this->prefix, $table_name);
+ $result = $this->_query($query);
+ if(cubrid_num_rows($result)>0) $output = true;
+ else $output = false;
+
+ if($result) cubrid_close_request($result);
+ return $output;
+ }
+
+
/**
* @brief xml 을 받아서 테이블을 생성
**/
diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php
index cdafbc921..7ec19b22c 100644
--- a/classes/db/DBMysql.class.php
+++ b/classes/db/DBMysql.class.php
@@ -197,6 +197,41 @@
return true;
}
+ /**
+ * @brief 특정 테이블에 특정 column 추가
+ **/
+ function addColumn($table_name, $column_name, $type='number', $size='', $default = '', $notnull=false) {
+ $type = $this->column_type[$type];
+ if(strtoupper($type)=='INTEGER') $size = '';
+
+ $query = sprintf("alter table %s%s add %s ", $this->prefix, $table_name, $column_name);
+ if($size) $query .= sprintf(" %s(%s) ", $type, $size);
+ else $query .= sprintf(" %s ", $type);
+ if($default) $query .= sprintf(" default '%s' ", $default);
+ if($notnull) $query .= " not null ";
+
+ $this->_query($query);
+ }
+
+
+ /**
+ * @brief 특정 테이블의 column의 정보를 return
+ **/
+ function isColumnExists($table_name, $column_name) {
+ $query = sprintf("show fields from %s%s", $this->prefix, $table_name);
+ $result = $this->_query($query);
+ if($this->isError()) return;
+ $output = $this->_fetch($result);
+ if($output) {
+ $column_name = strtolower($column_name);
+ foreach($output as $key => $val) {
+ $name = strtolower($val->Field);
+ if($column_name == $name) return true;
+ }
+ }
+ return false;
+ }
+
/**
* @brief xml 을 받아서 테이블을 생성
**/
diff --git a/classes/db/DBMysql_innodb.class.php b/classes/db/DBMysql_innodb.class.php
index 46e64600f..0c6dc539e 100644
--- a/classes/db/DBMysql_innodb.class.php
+++ b/classes/db/DBMysql_innodb.class.php
@@ -206,6 +206,43 @@
return true;
}
+ /**
+ * @brief 특정 테이블에 특정 column 추가
+ **/
+ function addColumn($table_name, $column_name, $type='number', $size='', $default = '', $notnull=false) {
+ $type = $this->column_type[$type];
+ if(strtoupper($type)=='INTEGER') $size = '';
+
+ $query = sprintf("alter table %s%s add %s ", $this->prefix, $table_name, $column_name);
+ if($size) $query .= sprintf(" %s(%s) ", $type, $size);
+ else $query .= sprintf(" %s ", $type);
+ if($default) $query .= sprintf(" default '%s' ", $default);
+ if($notnull) $query .= " not null ";
+
+ $this->_query($query);
+ }
+
+
+ /**
+ * @brief 특정 테이블의 column의 정보를 return
+ **/
+ function isColumnExists($table_name, $column_name) {
+ $query = sprintf("show fields from %s%s", $this->prefix, $table_name);
+ $result = $this->_query($query);
+ if($this->isError()) return;
+ $output = $this->_fetch($result);
+ if($output) {
+ $column_name = strtolower($column_name);
+ foreach($output as $key => $val) {
+ $name = strtolower($val->Field);
+ if($column_name == $name) return true;
+ }
+ }
+ return false;
+ }
+
+
+
/**
* @brief xml 을 받아서 테이블을 생성
**/
diff --git a/classes/db/DBSqlite2.class.php b/classes/db/DBSqlite2.class.php
index 63564a4ea..da1a72737 100644
--- a/classes/db/DBSqlite2.class.php
+++ b/classes/db/DBSqlite2.class.php
@@ -191,6 +191,42 @@
return true;
}
+ /**
+ * @brief 특정 테이블에 특정 column 추가
+ **/
+ function addColumn($table_name, $column_name, $type='number', $size='', $default = '', $notnull=false) {
+ $type = $this->column_type[$type];
+ if(strtoupper($type)=='INTEGER') $size = '';
+
+ $query = sprintf("alter table %s%s add %s ", $this->prefix, $table_name, $column_name);
+ if($size) $query .= sprintf(" %s(%s) ", $type, $size);
+ else $query .= sprintf(" %s ", $type);
+ if($default) $query .= sprintf(" default '%s' ", $default);
+ if($notnull) $query .= " not null ";
+
+ $this->_prepare($query);
+ return $this->_execute();
+ }
+
+
+ /**
+ * @brief 특정 테이블의 column의 정보를 return
+ **/
+ function isColumnExists($table_name, $column_name) {
+ $query = sprintf("pragma table_info(%s%s)", $this->prefix, $table_name);
+ $this->_prepare($query);
+ $output = $this->_execute();
+
+ if($output) {
+ $column_name = strtolower($column_name);
+ foreach($output as $key => $val) {
+ $name = strtolower($val->name);
+ if($column_name == $name) return true;
+ }
+ }
+ return false;
+ }
+
/**
* @brief xml 을 받아서 테이블을 생성
**/
diff --git a/classes/db/DBSqlite3_pdo.class.php b/classes/db/DBSqlite3_pdo.class.php
index db286a078..e831a13d2 100644
--- a/classes/db/DBSqlite3_pdo.class.php
+++ b/classes/db/DBSqlite3_pdo.class.php
@@ -213,6 +213,41 @@
return true;
}
+ /**
+ * @brief 특정 테이블에 특정 column 추가
+ **/
+ function addColumn($table_name, $column_name, $type='number', $size='', $default = '', $notnull=false) {
+ $type = $this->column_type[$type];
+ if(strtoupper($type)=='INTEGER') $size = '';
+
+ $query = sprintf("alter table %s%s add %s ", $this->prefix, $table_name, $column_name);
+ if($size) $query .= sprintf(" %s(%s) ", $type, $size);
+ else $query .= sprintf(" %s ", $type);
+ if($default) $query .= sprintf(" default '%s' ", $default);
+ if($notnull) $query .= " not null ";
+
+ $this->_prepare($query);
+ return $this->_execute();
+ }
+
+ /**
+ * @brief 특정 테이블의 column의 정보를 return
+ **/
+ function isColumnExists($table_name, $column_name) {
+ $query = sprintf("pragma table_info(%s%s)", $this->prefix, $table_name);
+ $this->_prepare($query);
+ $output = $this->_execute();
+
+ if($output) {
+ $column_name = strtolower($column_name);
+ foreach($output as $key => $val) {
+ $name = strtolower($val->name);
+ if($column_name == $name) return true;
+ }
+ }
+ return false;
+ }
+
/**
* @brief xml 을 받아서 테이블을 생성
**/
diff --git a/modules/addon/addon.class.php b/modules/addon/addon.class.php
index 77ebffb57..b43b64514 100644
--- a/modules/addon/addon.class.php
+++ b/modules/addon/addon.class.php
@@ -39,8 +39,8 @@
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
- function moduleIsInstalled() {
- return new Object();
+ function checkUpdate() {
+ return false;
}
/**
diff --git a/modules/admin/admin.class.php b/modules/admin/admin.class.php
index 04ba20eed..1c96da370 100644
--- a/modules/admin/admin.class.php
+++ b/modules/admin/admin.class.php
@@ -30,8 +30,8 @@
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
- function moduleIsInstalled() {
- return new Object();
+ function checkUpdate() {
+ return false;
}
/**
diff --git a/modules/blog/blog.class.php b/modules/blog/blog.class.php
index a3a3bf902..520b1e740 100644
--- a/modules/blog/blog.class.php
+++ b/modules/blog/blog.class.php
@@ -38,8 +38,8 @@
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
- function moduleIsInstalled() {
- return new Object();
+ function checkUpdate() {
+ return false;
}
/**
diff --git a/modules/board/board.class.php b/modules/board/board.class.php
index 668858298..60a919e37 100644
--- a/modules/board/board.class.php
+++ b/modules/board/board.class.php
@@ -61,8 +61,8 @@
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
- function moduleIsInstalled() {
- return new Object();
+ function checkUpdate() {
+ return false;
}
/**
diff --git a/modules/comment/comment.class.php b/modules/comment/comment.class.php
index bac47ca5e..7662f06f9 100644
--- a/modules/comment/comment.class.php
+++ b/modules/comment/comment.class.php
@@ -21,8 +21,8 @@
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
- function moduleIsInstalled() {
- return new Object();
+ function checkUpdate() {
+ return false;
}
/**
diff --git a/modules/counter/counter.class.php b/modules/counter/counter.class.php
index eb9e4f366..1785162fe 100644
--- a/modules/counter/counter.class.php
+++ b/modules/counter/counter.class.php
@@ -29,14 +29,8 @@
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
- function moduleIsInstalled() {
- $oDB = &DB::getInstance();
-
- // 테이블 검사
- if(!$oDB->isTableExists('counter_log')) return new Object(-1,'fail');
- if(!$oDB->isTableExists('counter_status ')) return new Object(-1,'fail');
-
- return new Object();
+ function checkUpdate() {
+ return false;
}
/**
diff --git a/modules/document/document.class.php b/modules/document/document.class.php
index 6e015efdc..40f99b4cd 100644
--- a/modules/document/document.class.php
+++ b/modules/document/document.class.php
@@ -30,15 +30,33 @@
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
- function moduleIsInstalled() {
- return new Object();
+ function checkUpdate() {
+ $oDB = &DB::getInstance();
+
+ /**
+ * 2007. 7. 23 : 확장변수(extra_vars1~20까지 추가)
+ **/
+ if(!$oDB->isColumnExists("documents","extra_vars20")) return true;
+
+ return false;
}
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
- return new Object();
+ /**
+ * 2007. 7. 23 : 확장변수(extra_vars1~20까지 추가)
+ **/
+ $oDB = &DB::getInstance();
+ if(!$oDB->isColumnExists("documents","extra_vars20")) {
+ for($i=1;$i<=20;$i++) {
+ $column_name = "extra_vars".$i;
+ $oDB->addColumn('documents',$column_name,'text');
+ }
+ }
+
+ return new Object(0,'success_updated');
}
}
diff --git a/modules/document/schemas/documents.xml b/modules/document/schemas/documents.xml
index 6133a2ad6..1a3a8d5d5 100644
--- a/modules/document/schemas/documents.xml
+++ b/modules/document/schemas/documents.xml
@@ -31,4 +31,24 @@