여분필드(체크박스)로 체크된 게시물만 보이게 하기 채택완료
여분필드 wr_2 를 사용해서 체크박스로 만든 후
리스트에서는 체크된 게시물만 보이게 하고, 관리자는 모든 게시물을 볼 수 있게 하려고 하는데...
/skin/board/스킨명/write.php
// 비밀글 체크 상태 유무 베껴온 코드...
$open = '';
if( strstr($write['wr_2'], 'open') ) {
$open = 'checked'; }
?>
write.php 페이지에 추가를 했는데...
리스트에서는 어떻게 추가를 해야할까요...??
리스트가 시작되는 for 구문안에서
if( $is_admin && $list[$i]['wr_2'] !== 'open' ) 관리자이면서 wr_2가 체크되어있지 않으면 모두 노출
else 체크된 게시물만 노출
글쓰기 페이지에서 체크시 open 출력
이렇게 구현하고 싶은데 머리가 안돌아가네요ㅠㅠㅠ
답변 2개
list.skin.php와 view.skin.php로 간단히 수정하시는 것도 좋으나
게시글 카운트도 정확히 내야하고 페이지 노출 수를 정확하게 하시려면
list.php 에서 코드를 손 보시는 것이 조금 더 낫습니다.
예)
1. $stx = trim($stx); 이 시작되는 라인 위 쪽에 아래 코드를 삽입
$sql_search_add = "";
if ($bo_table=='적용하실게시판명' && !$is_admin){
$sql_search_add .= " and wr_2 != '' ";
}</p>
<p>
2. 아래 코드 {$sql_search_add} 추가
</p>
<p>$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} {$sql_search_add} ";</p>
<p>
3. 아래 코드 {$sql_search_add} 추가
</p>
<p>if ($sca || $stx) {
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_search_add} {$sql_order} limit {$from_record}, $page_rows ";
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 {$sql_search_add} ";</p>
<p>
답변에 대한 댓글 5개
카테고리 사용중인데... 해당 카테고리로 sort 할때는 페이징은 잘 되는데...
전체 카테고리로 볼때는 모든 페이징이 다 뜨고 있습니다...;;
각 페이지 클릭해보면 게시물은 없다고 나오는 상황입니다ㅠㅠㅠ
여기 추가한 부분이 페이징도 같이 해주신거 같은데... 전체카테고리에서만 페이징 적용이 안되고있네요;;ㅠㅠ
각각 카테고리 클릭시에는 페이징 적용 잘 되고 있습니다...
[code]
if ($sca || $stx) {
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} {$sql_search_add} {$sql_order} limit {$from_record}, $page_rows "; // {$sql_search_add} 20190124 추가
} else {
$sql = " select * from {$write_table} where wr_is_comment = 0 {$sql_search_add} "; // {$sql_search_add} 20190124 추가
if(!empty($notice_array))
$sql .= " and wr_id not in (".implode(', ', $notice_array).") ";
$sql .= " {$sql_order} limit {$from_record}, $page_rows ";
}
[/code]
$total_count = $board['bo_count_write'];
이 부분을 바꿔줘야 할거 같은데....(느낌상) 개발자가 아니라서.. 대충 눈치로 짐작하는 정도인데...
어떻게 바꿔줘야 하는지를 모르겠네요;;ㅠㅠㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>if($list[$i]['wr_2']) {</p>
<p>노출</p>
<p>} else {</p>
<p> if($is_admin) { </p>
<p> 관리자만 노출</p>
<p> }</p>
<p>}</p>
<p>
쉽게 가셔도 될듯합니다....
답변에 대한 댓글 5개
for 구문 안에 말씀해주신대로 넣으면 될까요??
[code]
<?php
for ( $i = 0; $i < count($list); $i++ ){
}
?>
<li>
~~~~~
</li>
<?php } ?>
[/code]
또한 view 파일 상단에도 wr_2 체크 하셔서 읽고 못읽고를 거르셔야 합니다!
[code]
<?php
for ( $i = 0; $i < count($list); $i++ ){
if ( $list[$i]['wr_2'] ) { // 공개게시물(체크된 게시물)은 누구나 볼 수 있음
노출 <- 이부분에 뭘 넣어야 하는건가요??
} else {
if ( $is_admin ) { // 비공개게시물(체크안된 게시물)은 관리자만 볼 수 있음
관리자만 노출 <- 이부분에 뭘 넣어야 하는건가요??
}
}
?>
<li>
게시물 정보
</li>
<?php
} // for 끝
?>
[/code]
<?php
for ( $i = 0; $i < count($list); $i++ ){
if ( $list[$i]['wr_2'] ) { // 공개게시물(체크된 게시물)은 누구나 볼 수 있음
<li>
게시물 정보
</li>
} else {
if ( $is_admin ) { // 비공개게시물(체크안된 게시물)은 관리자만 볼 수 있음
<li>
게시물 정보
</li>
}
}
?>
<?php
} // for 끝
?>
[/code]
제 생각에서는 여분필드 값으로 구분지어주면 되는 작업일 줄 알았는데
생각보다 어려운 작업이었네요...ㅠㅠㅠ
제가 제대로 이해를 못해서 죄송합니다...ㅠㅠㅠ
아래 풀스택크리에이티브 님의 답변으로 적용하였습니다...ㅠㅠ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
전 그냥 여분필드를 써서
관리자는 모든 게시물 볼 수 있게 하고,
비회원, 회원은 체크된 게시물만 볼 수 있게 하려고 했던건데...
list.php 를 건드려야하는거면....ㅠㅠㅠㅠ