첨부한 swich 문을 for 문등으로 간단하게 할 수 없을 까요 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

첨부한 swich 문을 for 문등으로 간단하게 할 수 없을 까요 정보

첨부한 swich 문을 for 문등으로 간단하게 할 수 없을 까요

첨부파일

Noname5.txt (5.5K) 0회 다운로드 2008-02-01 16:51:16

본문

너무 길어서 첨부도 함께 올렸습니다..

아래의 내용을 짧은 구문으로 할 수 없을까해서요...

switch ($gr_id) {
case 'gm1' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm1_skin_path);
            ($grti_color    = $config7[cf_2_7gm1menumain]);
            ($grti_on_color = $config7[cf_3_7gm1menumain]);
($lay_out_color = $config7[cf_4_7gm1menumain]);
($lay_bg_color  = $config7[cf_5_7gm1menumain]);
($boti_color    = $config7[cf_6_7gm1menumain]);
($boti_on_color = $config7[cf_7_7gm1menumain]);
($skin_color    = $config7[cf_8_7gm1menumain]);
($icon_color    = $config7[cf_9_7gm1menumain]);
            break;
case 'gm2' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm2_skin_path);
            ($grti_color    = $config7[cf_2_7gm2menumain]);
            ($grti_on_color = $config7[cf_3_7gm2menumain]);
($lay_out_color = $config7[cf_4_7gm2menumain]);
($lay_bg_color  = $config7[cf_5_7gm2menumain]);
($boti_color    = $config7[cf_6_7gm2menumain]);
($boti_on_color = $config7[cf_7_7gm2menumain]);
($skin_color    = $config7[cf_8_7gm2menumain]);
($icon_color    = $config7[cf_9_7gm2menumain]);
                break;
case 'gm3' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm3_skin_path);
            ($grti_color    = $config7[cf_2_7gm3menumain]);
            ($grti_on_color = $config7[cf_3_7gm3menumain]);
($lay_out_color = $config7[cf_4_7gm3menumain]);
($lay_bg_color  = $config7[cf_5_7gm3menumain]);
($boti_color    = $config7[cf_6_7gm3menumain]);
($boti_on_color = $config7[cf_7_7gm3menumain]);
($skin_color    = $config7[cf_8_7gm3menumain]);
($icon_color    = $config7[cf_9_7gm3menumain]);
                break;
case 'gm4' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm4_skin_path);
            ($grti_color    = $config7[cf_2_7gm4menumain]);
            ($grti_on_color = $config7[cf_3_7gm4menumain]);
($lay_out_color = $config7[cf_4_7gm4menumain]);
($lay_bg_color  = $config7[cf_5_7gm4menumain]);
($boti_color    = $config7[cf_6_7gm4menumain]);
($boti_on_color = $config7[cf_7_7gm4menumain]);
($skin_color    = $config7[cf_8_7gm4menumain]);
($icon_color    = $config7[cf_9_7gm4menumain]);
                break;
case 'gm5' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm5_skin_path);
            ($grti_color    = $config7[cf_2_7gm5menumain]);
            ($grti_on_color = $config7[cf_3_7gm5menumain]);
($lay_out_color = $config7[cf_4_7gm5menumain]);
($lay_bg_color  = $config7[cf_5_7gm5menumain]);
($boti_color    = $config7[cf_6_7gm5menumain]);
($boti_on_color = $config7[cf_7_7gm5menumain]);
($skin_color    = $config7[cf_8_7gm5menumain]);
($icon_color    = $config7[cf_9_7gm5menumain]);
                break;
case 'gm6' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm6_skin_path);
            ($grti_color    = $config7[cf_2_7gm6menumain]);
            ($grti_on_color = $config7[cf_3_7gm6menumain]);
($lay_out_color = $config7[cf_4_7gm6menumain]);
($lay_bg_color  = $config7[cf_5_7gm6menumain]);
($boti_color    = $config7[cf_6_7gm6menumain]);
($boti_on_color = $config7[cf_7_7gm6menumain]);
($skin_color    = $config7[cf_8_7gm6menumain]);
($icon_color    = $config7[cf_9_7gm6menumain]);
                break;
case 'gm7' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm7_skin_path);
            ($grti_color    = $config7[cf_2_7gm7menumain]);
            ($grti_on_color = $config7[cf_3_7gm7menumain]);
($lay_out_color = $config7[cf_4_7gm7menumain]);
($lay_bg_color  = $config7[cf_5_7gm7menumain]);
($boti_color    = $config7[cf_6_7gm7menumain]);
($boti_on_color = $config7[cf_7_7gm7menumain]);
($skin_color    = $config7[cf_8_7gm7menumain]);
($icon_color    = $config7[cf_9_7gm7menumain]);
                break;
case 'gm8' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm8_skin_path);
            ($grti_color    = $config7[cf_2_7gm8menumain]);
            ($grti_on_color = $config7[cf_3_7gm8menumain]);
($lay_out_color = $config7[cf_4_7gm8menumain]);
($lay_bg_color  = $config7[cf_5_7gm8menumain]);
($boti_color    = $config7[cf_6_7gm8menumain]);
($boti_on_color = $config7[cf_7_7gm8menumain]);
($skin_color    = $config7[cf_8_7gm8menumain]);
($icon_color    = $config7[cf_9_7gm8menumain]);
                break;
case 'gm9' : if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_gm9_skin_path);
            ($grti_color    = $config7[cf_2_7gm9menumain]);
            ($grti_on_color = $config7[cf_3_7gm9menumain]);
($lay_out_color = $config7[cf_4_7gm9menumain]);
($lay_bg_color  = $config7[cf_5_7gm9menumain]);
($boti_color    = $config7[cf_6_7gm9menumain]);
($boti_on_color = $config7[cf_7_7gm9menumain]);
($skin_color    = $config7[cf_8_7gm9menumain]);
($icon_color    = $config7[cf_9_7gm9menumain]);
                break;
default :    if ($sub_top_basic_menu_main_skin_path = $sub_top_basic_menu_main_nogr_skin_path);
            ($grti_color    = $config7[cf_2_7nogrmenumain]);
            ($grti_on_color = $config7[cf_3_7nogrmenumain]);
($lay_out_color = $config7[cf_4_7nogrmenumain]);
($lay_bg_color  = $config7[cf_5_7nogrmenumain]);
($boti_color    = $config7[cf_6_7nogrmenumain]);
($boti_on_color = $config7[cf_7_7nogrmenumain]);
($skin_color    = $config7[cf_8_7nogrmenumain]);
($icon_color    = $config7[cf_9_7nogrmenumain]);
}

댓글 전체

음냐 맞을지 몰겠지만요 -_-;;

$gr_id 가 보이니

그리고 gr_id 가 숫자값을 받는듯 하니까 -_-;;
걍 밀어 넣어 봅시다 -_-;;
$tmpdr_id1 = substr($gr_id,2,2); // 2자리 이후 추출 이군요

그럼 이제 한번의 코딩으로 끝내기 -_-;;

$tm1_skin1 = "$sub_top_basic_menu_main_gm".$tmpdr_id1."_skin_path";
위에 부분은 실행을 안해 보아서 결과 장담을 못하겠습니다 --;;

하지만 아래의 경우라면 가능할듯 합니다.

$tm1_skin11 = "cf_2_7gm".$tmpdr_id1."menumain";
$tm1_skin12 = "cf_3_7gm".$tmpdr_id1."menumain";
$tm1_skin13 = "cf_4_7gm".$tmpdr_id1."menumain";
$tm1_skin14 = "cf_5_7gm".$tmpdr_id1."menumain";
$tm1_skin15 = "cf_6_7gm".$tmpdr_id1."menumain";
$tm1_skin16 = "cf_7_7gm".$tmpdr_id1."menumain";
$tm1_skin17 = "cf_8_7gm".$tmpdr_id1."menumain";
$tm1_skin18 = "cf_9_7gm".$tmpdr_id1."menumain";

 if ($sub_top_basic_menu_main_skin_path = $tm1_skin1);
            ($grti_color    = $config7[$tm1_skin11]);
            ($grti_on_color = $config7[$tm1_skin12]);
($lay_out_color = $config7[$tm1_skin13]);
($lay_bg_color  = $config7[$tm1_skin14]);
($boti_color    = $config7[$tm1_skin15]);
($boti_on_color = $config7[$tm1_skin16]);
($skin_color    = $config7[$tm1_skin17]);
($icon_color    = $config7[$tm1_skin18]);

아마 이렇게 줄이시면 코딩 라인이 엄청 줄어 들듯 합니다 음 하지만

아직 여기에서 if 문으로 처리하는 부분은 빠져 있고 switch 문의 default 문 부분 --;;

약간더 고민하시면 음 하나의 방편으로 딴 방법이 나올듯도 한데 -_-;;

일단 해보시고 안되시면 연락 주세요 -_-;;
원하시는 것이 $gr_id값에 따라서 $sub_top_basic_menu_main_skin_path 부터
$icon_color값을 추출하는 건가요? 그렇다면 아래처럼해보세요.

if(in_array($gr_id, array('gm1', 'gm2', 'gm3', 'gm4', 'gm5', 'gm6', 'gm7', 'gm8', 'gm9')) == true)
{
    $str = $gr_id;
}
else
{
    $str = 'nogr';
}

$var = "sub_top_basic_menu_main_{$str}_skin_path";
$sub_top_basic_menu_main_skin_path = $$var;
$grti_color = $config7["cf_2_7{$gr_id}menumain"];
$grti_on_color = $config7["cf_3_7{$gr_id}menumain"];
$lay_out_color = $config7["cf_4_7{$gr_id}menumain"];
$lay_bg_color = $config7["cf_5_7{$gr_id}menumain"];
$boti_color = $config7["cf_6_7{$gr_id}menumain"];
$boti_on_color = $config7["cf_7_7{$gr_id}menumain"];
$skin_color = $config7["cf_8_7{$gr_id}menumain"];
$icon_color = $config7["cf_9_7{$gr_id}menumain"];
감가합니다....///아주 잘되네요...이런 생각은 어찌할수 있는지요..

그런데 아쉬운것은 그룹이 없을때는 출력이 안되네요..


gm1 에서 gm9 까지는 잘되구요....nogr 은 안되구요
아... 잘못 썼네요...

$grti_color = $config7["cf_2_7{$gr_id}menumain"];
$grti_on_color = $config7["cf_3_7{$gr_id}menumain"];
$lay_out_color = $config7["cf_4_7{$gr_id}menumain"];
$lay_bg_color = $config7["cf_5_7{$gr_id}menumain"];
$boti_color = $config7["cf_6_7{$gr_id}menumain"];
$boti_on_color = $config7["cf_7_7{$gr_id}menumain"];
$skin_color = $config7["cf_8_7{$gr_id}menumain"];
$icon_color = $config7["cf_9_7{$gr_id}menumain"];

==>

$grti_color = $config7["cf_2_7{$str}menumain"];
$grti_on_color = $config7["cf_3_7{$str}menumain"];
$lay_out_color = $config7["cf_4_7{$str}menumain"];
$lay_bg_color = $config7["cf_5_7{$str}menumain"];
$boti_color = $config7["cf_6_7{$str}menumain"];
$boti_on_color = $config7["cf_7_7{$str}menumain"];
$skin_color = $config7["cf_8_7{$str}menumain"];
$icon_color = $config7["cf_9_7{$str}menumain"];

$gr_id를 $str로 변경하시면 그룹아이디가 없을 때 $str에 'nogr'이 들어가겠죠...
대단히 감사합니다..

이제야 저녁먹을 수 있을것 같네요....배고품도 참고 있었거든요..

오늘 배운것으로 코딩을 한 5분의 1로 줄일 수 있을 것 같습니다...

아주 잘 됩니다..
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT