스킨 ..write.skin.php 에서 회원성별을 표시할때...
스킨의 write.skin.php에서 '회원의 성별'을 가져와서 아래처럼 보여줍니다
<?
$mb_data = get_member($member[mb_id],"mb_sex");
if($mb_data[mb_sex] == "M") {
echo"<span style='font:bold 12px dotum;color:#46A3FF;'>남자</span>";
}elseif($mb_data[mb_sex] == "F") {
echo"<span style='font:bold 12px dotum;color:#D16976;'>여자</span>";
}
?>
위처럼 하면...글쓰기할때, 글작성자(회원)의 성별을 가져와서 출력해줍니다.
그러나,
이미 작성된 회원들의 게시글을 '관리자'가 로그인해서 볼때 문제(?)가 생기는군요.
회원 게시물의 <수정>화면에 들어가서 확인해보면,
기존 회원의 성별이 아닌, '관리자'의 '성별'이 나타나게 됩니다.
... 관리자가 로그인해서 회원 게시글의 <수정>화면을 볼때
... 기존 회원의 성별이 표시되게 하려면 어떻게 해야 할까요.
<?
$mb_data = get_member($member[mb_id],"mb_sex");
if($mb_data[mb_sex] == "M") {
echo"<span style='font:bold 12px dotum;color:#46A3FF;'>남자</span>";
}elseif($mb_data[mb_sex] == "F") {
echo"<span style='font:bold 12px dotum;color:#D16976;'>여자</span>";
}
?>
위처럼 하면...글쓰기할때, 글작성자(회원)의 성별을 가져와서 출력해줍니다.
그러나,
이미 작성된 회원들의 게시글을 '관리자'가 로그인해서 볼때 문제(?)가 생기는군요.
회원 게시물의 <수정>화면에 들어가서 확인해보면,
기존 회원의 성별이 아닌, '관리자'의 '성별'이 나타나게 됩니다.
... 관리자가 로그인해서 회원 게시글의 <수정>화면을 볼때
... 기존 회원의 성별이 표시되게 하려면 어떻게 해야 할까요.
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 6개
if($is_admin){ // 로그인한 사람의 관리자 권한 확인
$mb_data = get_member($view[wr_id],"mb_sex");
}else{ // 관리자가 아니라면
$mb_data = get_member($member[mb_id],"mb_sex");
}
저와 거의 비슷한 내용이네요..
근데 여기는 Write 페이지여서 $view[wr_id] 이게 아니고 $write[mb_id] 이거 같습니다. ^^
제가 볼때는 몬가 잘못되어 있는거 같은데요..
$mb_data = get_member($member[mb_id],"mb_sex");
요기 부분을
$mb_data = ($w=='u')?get_member($write[mb_id],"mb_sex"):get_member($member[mb_id],"mb_sex");
이렇게 수정일때는 원사용자의 아이디를 가져오는 걸로!~
바꿔 주심 될듯 싶은데요.. ^^
신규 '글쓰기'라던가, 기존글 '수정'모두 에서 회원이던 비회원이던 출력이 안되는군요.
시도한 방법1)
-------------------------------------------------
if($is_admin){ // 로그인한 사람의 관리자 권한 확인
$mb_data = get_member($write[wr_id],"mb_sex");
}else{ // 관리자가 아니라면
$mb_data = get_member($member[mb_id],"mb_sex");
}
시도한 방법2)
-------------------------------------------------
if($is_admin){ // 로그인한 사람의 관리자 권한 확인
$mb_data = get_member($write[wr_id],"mb_sex");
}else{ // 관리자가 아니라면
$mb_data = ($w=='u')?get_member($write[mb_id],"mb_sex"):get_member($member[mb_id],"mb_sex");
}
....리스트나 뷰에서 출력되는거 보면,
....글쓰기나 그수정에서도 노출이 되어야 할거 같은데, 이상하게 안되는군요 -_- ;;
결국......
머리 싸매다가...일단은 mb_sex 값을 wr_4 여유필드에 저장해서 노출하는 방법으로
그냥 변경해버렸는데....코드가 아래처럼 지저분하게 길어져 버렸군요 -_- ;;
write.skin.php 변경내용 ------------------------------------
<? $write[wr_4] = get_member($member[mb_id],"mb_sex");
if($write[wr_4][mb_sex] == "M") {
$write[wr_4] = "남자";
}elseif($write[wr_4][mb_sex] == "F") {
$write[wr_4] = "여자";
}
?>
<? if(!$is_admin) { ?>
<input type=text name='wr_4' required itemname='회원성별' value='<?=$write[wr_4]?>' readonly class=input size=10> <span style="font:normal 11px dotum;color:#888888;letter-spacing:-0.1em;">본인 성별은 수정할수 없습니다</span>
<? }else{ ?>
<input type=text name='wr_4' required itemname='회원성별' value='<?=$write[wr_4]?>' class=input size=10> <span style="font:normal 11px dotum;color:#888888;letter-spacing:-0.1em;">본인 성별은 수정할수 없습니다</span>
<? } ?>
쓸데없이 여유필드 하나만 사용하게 되버린 꼴이 되었는데
기존 코드가 왜 안되는지... 관심있으신 분들의 추가 댓글을 부탁해봅니다.
==========================================
$mb_data = ($w=='u')?get_member($write[mb_id],"mb_sex"):get_member($member[mb_id],"mb_sex");
이렇게만 처리하라는 얘기입니다
수정일때는 $write[mb_id] 값을 가져오고
나머지는 $member의 mb_id 를 가져오라는 얘기이므로
is_admin 이부분의 예외처리를 하지 않아도 됩니다.
혹, 그누보드 기본스킨에서 테스트 해보셨는지요...
이래저래 테스트를 해봐도 스킨상에서 달리 손댄것도 없는데...뭐가 문제인지 모르겠군요.
그리고 위처럼 하면, echo 문으로 변수를 출력해야하지 않는가요? 아래처럼...
echo $mb_data; <--- 이렇게 하면 Array 값이 출력되어 버리는 군요.