[그누보드] 여분필드늘릴때
안녕하세요 Yanus Entertainment 한월입니다.
오늘은 그누보드의 여분필드에 관한 얘기를 해볼까 합니다.
작업을 하다보면 사용자의 요청으로 인해 그누보드에서 제공하는 기본 여분필드(wr_1 ~ wr_10) 이외에 추가적인 여분필드가 필요한 경우가 많이 생깁니다.
회원가입시의 경우, resister_form 관련항목만 수정을 하면 되지만... 일반게시판의 경우, 생성된 게시판이 많으면 이걸 하나하나 수정을 하는것은 생각보다 번거롭습니다.
다른 분들이 자주 사용하시는 많이 알려진 팁중 하나가 게시판 관련 페이지 상단에 아래의 소스를 붙여넣는 방법이었습니다.
//여분필드추가시 wr_번호
if ($fadmin =='fok') {
if ($is_admin =='super') {
$af = 11; //시작할번호 wr_추가시작할 번호
$bf = 51; //마지막번호 생성할 마지막번호+1
for ($di=$af; $di<$bf; $di++) {
$g4memoup ="ALTER TABLE $g4[write_prefix]$bo_table ADD wr_{$di} VARCHAR(255) NOT NULL";
$resultup = @mysql_query($g4memoup) or mysql_error();
if ($resultup) {
echo "$bo_table 게시판에 wr_{$di} 필드생성 성공 하였습니다.<br><br>";
} else {
echo "$bo_table 게시판에 wr_{$di} 필드가 이미 존재 하거나 생성실패.<br><br>";
}
}
} else {
alert_close("비상식적인 접근입니다. 관리자가 아니라면 신고합니다");
}
}
그러나 만약 생성된 게시판이 굉장히 많다면? 저것마저도 굉장히 번거로울수 있다는 생각이 들었습니다.
그래서 좀더 간편한 방법으로 쓸수 있는 하나의 팁을 알려드리도록 하겠습니다.
그누보드의 adm 폴더안을 보시면 sql_write.sql 이라는 파일이 있습니다.
이 파일은 관리자모드에서 "게시판추가" 로 새로운 게시판을 생성할때 쿼리를 이용해서 db에 table을 생성해주는 역할을 합니다.
해당 파일 내용을 보시면, 어디서 많이 보던 내용을 보실수 있습니다.
CREATE TABLE `__TABLE_NAME__` (
`wr_id` int(11) NOT NULL AUTO_INCREMENT,
`wr_num` int(11) NOT NULL DEFAULT '0',
`wr_reply` varchar(10) NOT NULL,
`wr_parent` int(11) NOT NULL DEFAULT '0',
`wr_is_comment` tinyint(4) NOT NULL DEFAULT '0',
`wr_comment` int(11) NOT NULL DEFAULT '0',
`wr_comment_reply` varchar(5) NOT NULL,
`ca_name` varchar(255) NOT NULL,
`wr_option` set('html1','html2','secret','mail') NOT NULL,
`wr_subject` varchar(255) NOT NULL,
`wr_content` text NOT NULL,
`wr_link1` text NOT NULL,
`wr_link2` text NOT NULL,
`wr_link1_hit` int(11) NOT NULL DEFAULT '0',
`wr_link2_hit` int(11) NOT NULL DEFAULT '0',
`wr_hit` int(11) NOT NULL DEFAULT '0',
`wr_good` int(11) NOT NULL DEFAULT '0',
`wr_nogood` int(11) NOT NULL DEFAULT '0',
`mb_id` varchar(20) NOT NULL,
`wr_password` varchar(255) NOT NULL,
`wr_name` varchar(255) NOT NULL,
`wr_email` varchar(255) NOT NULL,
`wr_homepage` varchar(255) NOT NULL,
`wr_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`wr_file` tinyint(4) NOT NULL DEFAULT '0',
`wr_last` varchar(19) NOT NULL,
`wr_ip` varchar(255) NOT NULL,
`wr_facebook_user` varchar(255) NOT NULL,
`wr_twitter_user` varchar(255) NOT NULL,
`wr_1` varchar(255) NOT NULL,
`wr_2` varchar(255) NOT NULL,
`wr_3` varchar(255) NOT NULL,
`wr_4` varchar(255) NOT NULL,
`wr_5` varchar(255) NOT NULL,
`wr_6` varchar(255) NOT NULL,
`wr_7` varchar(255) NOT NULL,
`wr_8` varchar(255) NOT NULL,
`wr_9` varchar(255) NOT NULL,
`wr_10` varchar(255) NOT NULL,
PRIMARY KEY (`wr_id`),
KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`),
KEY `wr_is_comment` (`wr_is_comment`,`wr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
저기 보이는 `wr_10` varchar(255) NOT NULL, 뒤에 생성을 원하는 필드의 갯수만큼 쿼리문을 기재해주시면 됩니다.
예를 들어 3개를 더 늘리고 싶다 하면 이런식이 되겠지요.
`wr_9` varchar(255) NOT NULL,
`wr_10` varchar(255) NOT NULL,
`wr_11` varchar(255) NOT NULL,
`wr_12` varchar(255) NOT NULL,
`wr_13` varchar(255) NOT NULL,
PRIMARY KEY (`wr_id`),
KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`),
KEY `wr_is_comment` (`wr_is_comment`,`wr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
이렇게 하면 게시판을 추가할때 자동으로 늘어난 필드만큼 테이블이 생성되므로 게시판마다 별도의 작업을 해줄 필요가 없습니다.
그럼 다들 좋은 하루 되시길 바랍니다 ^^
안녕하세요 Yanus Entertainment 한월입니다.
오늘은 그누보드의 여분필드에 관한 얘기를 해볼까 합니다.
작업을 하다보면 사용자의 요청으로 인해 그누보드에서 제공하는 기본 여분필드(wr_1 ~ wr_10) 이외에 추가적인 여분필드가 필요한 경우가 많이 생깁니다.
회원가입시의 경우, resister_form 관련항목만 수정을 하면 되지만... 일반게시판의 경우, 생성된 게시판이 많으면 이걸 하나하나 수정을 하는것은 생각보다 번거롭습니다.
다른 분들이 자주 사용하시는 많이 알려진 팁중 하나가 게시판 관련 페이지 상단에 아래의 소스를 붙여넣는 방법이었습니다.
//여분필드추가시 wr_번호
if ($fadmin =='fok') {
if ($is_admin =='super') {
$af = 11; //시작할번호 wr_추가시작할 번호
$bf = 51; //마지막번호 생성할 마지막번호+1
for ($di=$af; $di<$bf; $di++) {
$g4memoup ="ALTER TABLE $g4[write_prefix]$bo_table ADD wr_{$di} VARCHAR(255) NOT NULL";
$resultup = @mysql_query($g4memoup) or mysql_error();
if ($resultup) {
echo "$bo_table 게시판에 wr_{$di} 필드생성 성공 하였습니다.<br><br>";
} else {
echo "$bo_table 게시판에 wr_{$di} 필드가 이미 존재 하거나 생성실패.<br><br>";
}
}
} else {
alert_close("비상식적인 접근입니다. 관리자가 아니라면 신고합니다");
}
}
그러나 만약 생성된 게시판이 굉장히 많다면? 저것마저도 굉장히 번거로울수 있다는 생각이 들었습니다.
그래서 좀더 간편한 방법으로 쓸수 있는 하나의 팁을 알려드리도록 하겠습니다.
그누보드의 adm 폴더안을 보시면 sql_write.sql 이라는 파일이 있습니다.
이 파일은 관리자모드에서 "게시판추가" 로 새로운 게시판을 생성할때 쿼리를 이용해서 db에 table을 생성해주는 역할을 합니다.
해당 파일 내용을 보시면, 어디서 많이 보던 내용을 보실수 있습니다.
CREATE TABLE `__TABLE_NAME__` (
`wr_id` int(11) NOT NULL AUTO_INCREMENT,
`wr_num` int(11) NOT NULL DEFAULT '0',
`wr_reply` varchar(10) NOT NULL,
`wr_parent` int(11) NOT NULL DEFAULT '0',
`wr_is_comment` tinyint(4) NOT NULL DEFAULT '0',
`wr_comment` int(11) NOT NULL DEFAULT '0',
`wr_comment_reply` varchar(5) NOT NULL,
`ca_name` varchar(255) NOT NULL,
`wr_option` set('html1','html2','secret','mail') NOT NULL,
`wr_subject` varchar(255) NOT NULL,
`wr_content` text NOT NULL,
`wr_link1` text NOT NULL,
`wr_link2` text NOT NULL,
`wr_link1_hit` int(11) NOT NULL DEFAULT '0',
`wr_link2_hit` int(11) NOT NULL DEFAULT '0',
`wr_hit` int(11) NOT NULL DEFAULT '0',
`wr_good` int(11) NOT NULL DEFAULT '0',
`wr_nogood` int(11) NOT NULL DEFAULT '0',
`mb_id` varchar(20) NOT NULL,
`wr_password` varchar(255) NOT NULL,
`wr_name` varchar(255) NOT NULL,
`wr_email` varchar(255) NOT NULL,
`wr_homepage` varchar(255) NOT NULL,
`wr_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`wr_file` tinyint(4) NOT NULL DEFAULT '0',
`wr_last` varchar(19) NOT NULL,
`wr_ip` varchar(255) NOT NULL,
`wr_facebook_user` varchar(255) NOT NULL,
`wr_twitter_user` varchar(255) NOT NULL,
`wr_1` varchar(255) NOT NULL,
`wr_2` varchar(255) NOT NULL,
`wr_3` varchar(255) NOT NULL,
`wr_4` varchar(255) NOT NULL,
`wr_5` varchar(255) NOT NULL,
`wr_6` varchar(255) NOT NULL,
`wr_7` varchar(255) NOT NULL,
`wr_8` varchar(255) NOT NULL,
`wr_9` varchar(255) NOT NULL,
`wr_10` varchar(255) NOT NULL,
PRIMARY KEY (`wr_id`),
KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`),
KEY `wr_is_comment` (`wr_is_comment`,`wr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
저기 보이는 `wr_10` varchar(255) NOT NULL, 뒤에 생성을 원하는 필드의 갯수만큼 쿼리문을 기재해주시면 됩니다.
예를 들어 3개를 더 늘리고 싶다 하면 이런식이 되겠지요.
`wr_9` varchar(255) NOT NULL,
`wr_10` varchar(255) NOT NULL,
`wr_11` varchar(255) NOT NULL,
`wr_12` varchar(255) NOT NULL,
`wr_13` varchar(255) NOT NULL,
PRIMARY KEY (`wr_id`),
KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`),
KEY `wr_is_comment` (`wr_is_comment`,`wr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
이렇게 하면 게시판을 추가할때 자동으로 늘어난 필드만큼 테이블이 생성되므로 게시판마다 별도의 작업을 해줄 필요가 없습니다.
그럼 다들 좋은 하루 되시길 바랍니다 ^^