조건문 소스를 한번 봐주세요. 정보
조건문 소스를 한번 봐주세요.
본문
좌측메뉴를 만들고 있습니다.
메뉴툴 상단에 미니박스를 만들고,
그 미니박스 안에 그룹별로 최신글이 나타나게 하려고 합니다.
일단 그룹최신글 부르는 함수는 다음과 같이 설정되어 있습니다.
<?=latest_group('group.lmenu', $gr_id, 3, 20, 1, 0)?>
이것을 적용하였더니,
그룹 내의 테이블 소메뉴에서는 작동하는데,
그룹 내의 일반페이지 소메뉴에서는 작동하지 못합니다.
...예를 들어 <커뮤니티> 그룹에서
...자유게시판(테이블 소메뉴)를 클릭하면, 미니박스에 최신글이 나타나는데,
...현재접속자(일반페이지 소메뉴)를 클릭하면, 미니박스에 최신글이 나타나지 않습니다.
...★ 저는 테이블 소메뉴든, 일반페이지 소메뉴든
...★ 어떤 형태의 소메뉴를 클릭하든지 미니박스에 최신글이 나타나게 만들고 싶습니다.
┌──────────┐
커 뮤 니 티
<- 최신글이 출력되는 미니박스
자유게시판 (테이블 소메뉴)
갤러리 (테이블 소메뉴)
현재접속자 (일반페이지 소메뉴)
└──────────┘
그래서 위 함수에 직접 그룹을 지정해 보기로 하였습니다.
<?=latest_group('group.lmenu', G01, 3, 20, 1, 0)?>
직접 지정하니까, 일반페이지 소메뉴에서도 최신글이 출력됩니다!!!!
일단 성공한 듯했습니다. ^____^
그래서 조건문을 이용하여
여러 개의 그룹 최신글을 부르기 위해 아래와 같이 만들었습니다.
<? if ($gr_id = '$gr_id') { ?>
<?=latest_group('group.lmenu', $gr_id, 3, 20, 1, 0)?>
<? } ?>
위와 같이 만들었더니,
다시 맨처음 현상으로 돌아갑니다. ㅠㅠ
즉, 일반페이지 소메뉴에서는 작동하지 않습니다.
그래서,
아예 아래와 같이 나누었습니다.
(가)
<? if ($gr_id = 'G01') { ?>
<?=latest_group('group.lmenu', G01, 3, 20, 1, 0)?>
<? } else if($gr_id = "G02") { ?>
<?=mw_latest_group("group.lmenu", G02, 3, 20, 1, 0)?>
<? } else if($gr_id = "G03") { ?>
<?=latest_group("group.lmenu", G03, 3, 20, 1, 0)?>
<? } else if($gr_id = "G04") { ?>
<?=latest_group("group.lmenu", G04, 3, 20, 1, 0)?>
<? } else if($gr_id = "G05") { ?>
<?=latest_group("group.lmenu", G05, 3, 20, 1, 0)?>
<? } ?>
이번에는,
일반페이지 소메뉴를 선택했을 때에도 최신글이 출력되지만......
그룹 G01의 최신글만 나타납니다. ㅠㅠ
다시 아래와 같이 수정했습니다.
(나)
<? if ($gr_id == 'G01') { ?>
<?=latest_group('group.lmenu', G01, 3, 20, 1, 0)?>
<? } else if ($gr_id == 'G02') { ?>
<?=latest_group('group.lmenu', G02, 3, 20, 1, 0)?>
<? } else if ($gr_id == 'G03') { ?>
<?=latest_group('group.lmenu', G03, 3, 20, 1, 0)?>
<? } else if ($gr_id == 'G04') { ?>
<?=latest_group('group.lmenu', G04, 3, 20, 1, 0)?>
<? } else if ($gr_id == 'G05') { ?>
<?=latest_group('group.lmenu', G05, 3, 20, 1, 0)?>
<? } ?>
이번에는 그룹별로 최신글이 나타나는데,
일반페이지 소메뉴에서는 또다시 최신글이 출력되지 않습니다.
----------------------------------------------------------------------
너무나 초보라서, 며칠을 고민하고 있네요.
좌측메뉴에서 소메뉴를 선택(클릭)할 때,
테이블 소메뉴 뿐만 아니라, 일반페이지 소메뉴에서도
그룹최신글이 나타나도록 만들고 싶은데 어떻게 하면 될까요?
도와주세요.
ㅠㅠ
댓글 전체
게시판에 들어와 있을때만 자동으로 $gr_id 값이 생기게(?) 되거든요.
가장 처음에 적어주신 이것
<?=latest_group('group.lmenu', $gr_id, 3, 20, 1, 0)?>
은 $gr_id 값이 있어야만 작동되므로, 일반 페이지에서는 오류가 나거나 표시가 안될겁니다.
만일, 게시판 freeboard가 그룹 community에 속해 있고,
게시판 photo가 그룹 gallery에 속해 있다고 해봅시다.
현재 게시판 freeboard가 띄워져 있는 상태라면
<?=latest_group('group.lmenu', $gr_id, 3, 20, 1, 0)?> 이 소스로는 그룹 community의 최신글을 불러올겁니다.
그리고, 게시판 photo가 띄워져 있는 상태라면 게시판 photo가 속해있는 그룹 gallery의 최신글을 불러올겁니다.
게시판 freeboard는 그룹 community에 속해 있으므로 그룹 gallery의 최신글에는 나타나지 않습니다.
그러면, 결론적으로 일반페이지는 그 어떠한 그룹에도 속해있지 않으므로 그 어떠한 그룹의 최신글을 불러오지도 않습니다.
만일, 그래도 그룹의 최신글을 불러오고 싶다고 하시면 특정 그룹 아이디를 수동으로 지정해 주셔야 합니다.
예를 들어 일반 페이지 home.php를 선택했을때 그룹 community의 최신글을 뽑아오고 싶다고 하신다면
<?
if($gr_id=='') // 일반페이지라면
$gr_id='community'; // 그룹을 커뮤니티로 지정한다
echo latest_group('group.lmenu', $gr_id, 3, 20, 1, 0); // 현재 그룹의 최신글을 불러온다
?>
이런식으로 지정을 해주셔야 하죠.
그리고, 페이지별로 그룹 아이디를 지정하시려면
home.php의 대략 구조
------------------------------------------------------------------
<? $gr_id='community'; ?>
중략
<? include_once (head.php); ?> // 헤더
중략
<? include_once (tail.php); ?> // 헤더
------------------------------------------------------------------
위와 같은 식으로 페이지 최상단에 그룹아이디를 별도로 지정해 주시면 됩니다.
그리고, 그룹별 최신글이 나오는 곳은 아래와 같이 하시면 될듯합니다.
<? if ($gr_id != '')
echo latest_group('group.lmenu', $gr_id, 3, 20, 1, 0); ?>
며칠간 소위 삽질(?)하다가
오늘 새벽에서야 일반페이지에는 gr_id가 부여되지 않는다는 것을 대충 감으로 익혔습니다.
(초보들의 길이 이런 것이 아닌가 합니다...ㅠㅠ)
그런데 김처로님께서 주신 답변으로 여러가지 엉킨 생각들의 답이 아주 명쾌해졌습니다.
현재는 다른 방법으로 일반페이지를 부르고 있는데,
김처로님 답변으로 적용하면 더욱 깔끔해질 것 같습니다.
제가 드린 질문이 답변 주시기에 상당히 귀찮은 내용이었음에도 불구하고,
상세한 예까지 들어서 초보에게 그룹 이해의 길잡이까지 되어주셨습니다.
다시 한번 감사드립니다.
항상 즐거운 일상 되시기 바랍니다. _(__)_