변수 다시한번 문의드립니다.
본문
일전에 올린 질문이 변수설정이 잘못 착각하여 다시한번 문의드립니다.
<?php if (!($list[$i]['wr_level'] && $list[$i]['wr_level'] > $member['mb_level'])) { //레벨제한?>
링크
<?php } //레벨제한?>
$list[$i]['wr_level'] 에 값이 있고
$list[$i]['wr_level'] 값이 내 레벨보다 높으면 "링크"를 출력하지않는다.
단, 글쓴이거나 관리자는 위 변수 무시
파란부분은 어떻게 처리하면 좋은지요?
답변 4
wr_level 이 없는 게시판이면 출력을 해야 한다는건가요 안해야 한다는 건가요
<?php
// wr_level 이 설정되지 않은 게시판에서는 링크를 그냥 출력함
if( !isset($list[$i]['wr_level']) || ($list[$i]['wr_level'] <= $member['mb_level']) || ($list[$i]['mb_id'] == $member['mb_id']) || $is_admin)
{
echo '<a href="'.$list[$i]['href'].'">링크</a>';
}
?>
<?php
// wr_level 이 설정되지 않은 게시판에서는 링크를 출력하지 않음
if( isset($list[$i]['wr_level']) && (($list[$i]['wr_level'] || ($list[$i]['wr_level'] <= $member['mb_level']) || ($list[$i]['mb_id'] == $member['mb_id']) || $is_admin))
{
echo '<a href="'.$list[$i]['href'].'">링크</a>';
}
?>
!-->
을 보니 ! 이게 맨 앞에 붙어있네요
이것의 의미는 다음과 같겠습니다.
$list[$i]['wr_level'] 의 값이 없다
&& <== 그리고
$list[$i]['wr_level'] 의 값이 $member['mb_level'] 크지 않을때 가 될거 같습니다.
!이게 없었다면 클때 라는 의미가 되겠지만 부정의 의미인 '!' 이 붙었기 때문에 그 반대가 되겠네요
즉 , wr_level 값이 없고 회원의 레벨이 wr_level 보다 작을때 조건에 충족할텐데
이 조건문이 질문자님이 원하시는건지 모르겠지만
이러한 조건문이 과연 충족될수 있을까 하는 의문이 생기네요
결국 이 조건문을 충족하려면 회원레벨이 있고 wr_level 이 없을때만 충족되겠네요
앞에 ! 이거를 제거하신다면 wr_level 값이 있고 회원레벨이 wr_level 보다 작을때의 조건이 되겠네요
여기서 관리자거나 글쓴이인경우의 조건을 더 덧붙이려면
(근데 이 조건문 소스가 붙는것이 목록스킨인가요? list.skin.php인가요? 코멘트인가요?)
목록이라고 가정해보면
<?php if (($list[$i]['wr_level'] && $list[$i]['wr_level'] > $member['mb_level']) && ($list[$i]['mb_id'] != $member['mb_id'] && !$is_admin)) { //레벨제한?>
echo "접근 권한이 없습니다.";
<?php } ?>
이렇게 변형하시면 되겟는데요^^
!-->wr_level 이 회원레벨 보다 낮거나, 작성자이거나, 관리자이면 출력하면 되겠죠
<?php
if( ($list[$i]['wr_level'] <= $member['mb_level']) || ($list[$i]['mb_id'] == $member['mb_id']) || $is_admin)
{
echo '<a href="'.$list[$i]['href'].'">링크</a>';
}
?>
// 이곳에 보여줄 링크를 작성하세여
<?php } ?>