카테고리 목록 select값으로 불러오기
본문
그누보드 커스텀을 진행하다가 헤매고 있습니다..
글 목록페이지에서 ca_name 값으로 등록된 값으로 분류를 하고 싶습니다.
완전 초보이다보니 함수실행구문을 해석해가면서 해야 하는 상황인데요..ㅠ
[ 제가 하고 싶은 것! ▼]
외부 URL에서 ca_name값을 form의 post값으로 넘겨
게시글 자체에 분류값(유입경로)을 만드는 것 까지는 성공 했습니다.
(실제로는 게시판을 생성할 때 bo_category_list 에 넣어야 할 값들..)
그러나..
게시글 목록 페이지에서 select의 option(카테고리 자동으로 불러오기) 값으로 나열해서 보고 싶으나 bo_category_list에는 값이 들어가지 않아 분류 리스트를 불러오지 못하고 있습니다.
그래서 한참 헤매던 중 위티코드님이 올려주신 분류생성함수를 발견하였는데,
lib/common.lib.php 파일에도 넣어보고 list.php 파일에도 넣어보고
list.skin.php 파일에도 넣어보고 board_list.php 파일에도 넣어보고...
write_update.skin.php 파일에도 다 넣어보았으나 동작을 하지 않습니다..
ㅠ.ㅠ혹시 도움을 주실 수 있을까요?
아래는 위티코드(https://sir.kr/g5_tip/7530)님의 글을 발췌하여 해석해보았습니다..
이 방법 말고 ca_name 목록 자체를 불러올 수 있는 방법이 있다면 도움을 부탁드립니다.
//카테고리를 추가하는 함수를 실행한다 (비교 대상인 a와 b가 인자로 전달된다)
function CategoryAdd($ca_name, $bo_table){
//ca_name 은
if($ca_name){
//row = mysql에서 정보를 가져온다 ( 지정한테이블게시판에 있는 카테고리 리스트 값 )
$row = sql_fetch(" select bo_category_list from g5_board where bo_table = '".$bo_table."' ");
//cut = 게시판카테고리리스트의 값 | 기준으로 문자열을 분할한다
$cut = explode("|", $row['bo_category_list']);
//만약 분할한 값이 0이라면
if(count($cut) == 0)
//add_category 는 ca_name값과 같다
$add_category = $ca_name;
//또는 (0이 아니라면)
else
// add_category 는 테이블게시판에 있는 카테고리 리스트값 + | + ca_name값
$add_category = $row['bo_category_list']."|".$ca_name;
//만약 ca_name값과 게시판카테고리리스트의 값 | 기준으로 문자열을 분할한 값을 비교했을 때 값이 없으면
if(!in_array($ca_name, $cut)){
// 쿼리를 실행한다 g5_board의 bo_category_list 에 카테고리 값(ca_name)을 추가한다 - 선택한 테이블값에
sql_query(" update g5_board set bo_category_list = '".$add_category."' where bo_table = '".$bo_table."' ");
}
}
}
!-->
답변 2
write_update.skin.php 파일에
올리신 함수와 함께
<?php CategoryAdd(
$ca_name
,
$bo_table
);?>
구문 추가 하시면 될 것 같은데요
혹시 저와 같은 어려움을 가지신 분이 있을까 하여 수정한 파일을 첨부합니다!
도움주신 볼피드님 정말정말 감사합니다!
코드를 작성해주신 위티코드님께도 감사말씀드립니다.
write_update.skin.php
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if ($w != 'u') {
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>신청되었습니다.</title>
<link rel="stylesheet" href="">
</head>
<body>
<!--[S] 관련스크립트 삽입-->
<script>
</script>
<!--[E] 관련스크립트 삽입-->
<script>
alert('신청되었습니다.');
location.href = '<?php echo $url; ?>';
</script>
</body>
</html>
<?php CategoryAdd($ca_name, $bo_table);
//카테고리를 추가하는 함수를 실행한다 (비교 대상인 a와 b가 인자로 전달된다)
function CategoryAdd($ca_name, $bo_table){
//ca_name 은
if($ca_name){
//row = mysql에서 정보를 가져온다 ( 지정한테이블게시판에 있는 카테고리 리스트 값 )
$row = sql_fetch(" select bo_category_list from g5_board where bo_table = '".$bo_table."' ");
//cut = 게시판카테고리리스트의 값 | 기준으로 문자열을 분할한다
$cut = explode("|", $row['bo_category_list']);
//만약 분할한 값이 0이라면
if(count($cut) == 0)
//add_category 는 ca_name값과 같다
$add_category = $ca_name;
//또는 (0이 아니라면)
else
// add_category 는 테이블게시판에 있는 카테고리 리스트값 + | + ca_name값
$add_category = $row['bo_category_list']."|".$ca_name;
//만약 ca_name값과 게시판카테고리리스트의 값 | 기준으로 문자열을 분할한 값을 비교했을 때 값이 없으면
if(!in_array($ca_name, $cut)){
// 쿼리를 실행한다 g5_board의 bo_category_list 에 카테고리 값(ca_name)을 추가한다 - 선택한 테이블값에
sql_query(" update g5_board set bo_category_list = '".$add_category."' where bo_table = '".$bo_table."' ");
}
}
}
?>
<?php
exit;
} else {
// 최고관리자,게시판관리자(level 8이상)만 상담내용 업데이트
if (isset($wr_11) && ( ($is_admin && $is_admin != "board") || ($is_admin == "board" && $member['mb_level'] >= 8 && $member['mb_id'] == $board['bo_admin']) ) ) {
$sql = " update {$write_table} set wr_11='$wr_11' where wr_id = '$wr_id' ";
sql_query($sql);
}
goto_url(G5_BBS_URL.'/board.php?bo_table='.$bo_table.$qstr);
}
?>
!-->