관리자 배너관리에서 배너 추가시 이미지를 2개 등록하려면...

관리자 배너관리에서 배너 추가시 이미지를 2개 등록하려면...

QA

관리자 배너관리에서 배너 추가시 이미지를 2개 등록하려면...

답변 3

본문

반응형으로 제작중이구요... 메인 비주얼 부분을 배너관리로 사용해볼까해서 만들어놨는데...

 

생각해보니 반응형이라 리사이징하다가 특정 분기점(디바이스 크기)에 도달했을땐

 

모바일용 비주얼로 바꿔치기를 해줘야할 거 같아서  이리 저리 검색해보니... 아예 배너 위치(bn_position) 을 추가로 등록해서 사용하는거 같더라구요...;;

https://sir.kr/yc5_tip/106 참고했던 글입니다...

 

위에 팁게시글대로 bn_position 을 (왼쪽, 메인) 에서 (비주얼PC, 비주얼M, 이벤트PC, 이벤트M) 이렇게 4개로 추가해주고... 왼쪽, 메인 관련된 코드들을 수정한 4개로 바꿔주고... 이런 작업들을 해놓고 보니

 

저런식으로 했을 경우 제 생각에는 결국 bn_position 값을 판별해서(pc냐 m이냐)를 클래스나 아이디를 부여해주고 display none block 처리하는 방법밖에 안되겠더라구요...

 

그래서 혹시나 해서 아예 배너를 추가할때... 이미지를 2개 첨부하고 첫 이미지는 pc용 두번째 이미지는 m용 으로 한 div 안에 등록된 이미지 2개를 다 띄워주고... 2번째 이미지에만 클래스를 부여해줘서

 

display none block 처리하는게 더 깔끔하지 않을까 싶습니다...;;;

 

관리자 > 배너관리 > 배너추가페이지(/adm/shop_admin/bannerform.php)에서

 

이미지 등록하는 tr 을 그대로 복사해서 name 값을 바꿔서 써볼까 하는데... 그러면 문제가 될까요...??ㅠㅠㅠ

 

반응형으로 배너관리할때는 어떻게 하는게 나은가요..??ㅠㅠㅠ

이 질문에 댓글 쓰기 :

답변 3

이미지 등록하는 tr 을 그대로 복사해서 name 값을 바꿔서 써볼까 하는데... 그러면 문제가 될까요...??

그대로 복사한다고 등록되거나 하지않습니다.

저장되는 DB의 table에도 해당 컬럼이 들어가야 하며..

저장하는 쪽 프로그래에도 로직이 들어가야 합니다.

개발 지식이 없으시면 커스터마이징 힘들겠습니다.

 

넵 제가 아는건 딱 그 정도인데...

복붙하고 name 값 바꿔주고 db들어가서 배너테이블에서 이미지경로가 어떻게 저장되는지 보고... 필요하면 컬럼을 추가해주고 추가시에 update 할때 추가한 컬럼 넣어주고...

이 정도인데요... db에서 배너테이블에는 이미지 경로가 저장이 안되네요...

서버에 올려진 이미지도 보면 확장자가 이미지확장자도 아니구요...;;ㅠㅠㅠ

bannerform.php 에 이미지 tr을 그대로 복붙하고 bn_bimg2로 바꿨습니다..;;


<tr>
    <th scope="row">이미지</th>
    <td>
        <?php echo help("메인 비주얼 : m - ??*??\n메인 이벤트 배너 : m - ??*??"); // 200402 추가 ?>
        <input type="file" name="bn_bimg2">
        <?php
        $bimg_str = "";
        $bimg2 = G5_DATA_PATH."/banner/m{$bn['bn_id']}";
        if (file_exists($bimg2) && $bn['bn_id']) {
            $size = @getimagesize($bimg2);
            if($size[0] && $size[0] > 750)
                $width = 750;
            else
                $width = $size[0];

            echo '<input type="checkbox" name="bn_bimg2_del" value="1" id="bn_bimg2_del"> <label for="bn_bimg2_del">삭제</label>';
            $bimg2_str = '<img src="'.G5_DATA_URL.'/banner/m'.$bn['bn_id'].'" width="'.$width.'">';
        }
        if ($bimg2_str) {
            echo '<div class="banner_or_img">';
            echo $bimg2_str;
            echo '</div>';
        }
        ?>
    </td>
</tr>



그리고 bannerformupdate.php 에서

$bn_bimg 를 참고해서 동일하게 $bn_bimg2 로 만들어줬는데요...;;

계속 이미지 파일만 업로드가 가능하다고 뜨네요;;ㅠㅠㅠ


$bn_bimg      = $_FILES['bn_bimg']['tmp_name'];
$bn_bimg_name = $_FILES['bn_bimg']['name'];

$bn_bimg2      = $_FILES['bn_bimg2']['tmp_name']; // 200403 추가
$bn_bimg2_name = $_FILES['bn_bimg2']['name']; // 200403 추가

$bn_id = (int) $bn_id;

if ($bn_bimg_del)  @unlink(G5_DATA_PATH."/banner/$bn_id");
if ($bn_bimg2_del)  @unlink(G5_DATA_PATH."/banner/m$bn_id"); // 200403 추가

//파일이 이미지인지 체크합니다.
if( $bn_bimg || $bn_bimg_name || $bn_bimg2 || $bn_bimg2_name ){ // 200414 $bn_bimg2 추가

    if( !preg_match('/\.(gif|jpe?g|bmp|png)$/i', $bn_bimg_name) ){
        alert("이미지 파일만 업로드 할수 있습니다.");
    }

    $timg = @getimagesize($bn_bimg);
    if ($timg['2'] < 1 || $timg['2'] > 16){
        alert("이미지 파일만 업로드 할수 있습니다.");
    }

    // 200403 추가
    if( !preg_match('/\.(gif|jpe?g|bmp|png)$/i', $bn_bimg2_name) ){
        alert("이미지 파일만 업로드 할수 있습니다.");
    }

    $timg2 = @getimagesize($bn_bimg2);
    if ($timg2['2'] < 1 || $timg2['2'] > 16){
        alert("이미지 파일만 업로드 할수 있습니다.");
    }
}

$bn_url = strip_tags(clean_xss_attributes($bn_url));
$bn_alt = strip_tags(clean_xss_attributes($bn_alt));

if ($w=="")
{
    if (!$bn_bimg_name) alert('배너 이미지를 업로드 하세요.');

    sql_query(" alter table {$g5['g5_shop_banner_table']} auto_increment=1 ");

    $sql = " insert into {$g5['g5_shop_banner_table']}
                set bn_alt        = '$bn_alt',
                    bn_url        = '$bn_url',
                    bn_device     = '$bn_device',
                    bn_position   = '$bn_position',
                    bn_border     = '$bn_border',
                    bn_new_win    = '$bn_new_win',
                    bn_begin_time = '$bn_begin_time',
                    bn_end_time   = '$bn_end_time',
                    bn_time       = '$now',
                    bn_hit        = '0',
                    bn_order      = '$bn_order' ";
    sql_query($sql);

    $bn_id = sql_insert_id();
}
else if ($w=="u")
{
    $sql = " update {$g5['g5_shop_banner_table']}
                set bn_alt        = '$bn_alt',
                    bn_url        = '$bn_url',
                    bn_device     = '$bn_device',
                    bn_position   = '$bn_position',
                    bn_border     = '$bn_border',
                    bn_new_win    = '$bn_new_win',
                    bn_begin_time = '$bn_begin_time',
                    bn_end_time   = '$bn_end_time',
                    bn_order      = '$bn_order'
              where bn_id = '$bn_id' ";
    sql_query($sql);
}
else if ($w=="d")
{
    @unlink(G5_DATA_PATH."/banner/$bn_id");
    @unlink(G5_DATA_PATH."/banner/m$bn_id");

    $sql = " delete from {$g5['g5_shop_banner_table']} where bn_id = $bn_id ";
    $result = sql_query($sql);
}


if ($w == "" || $w == "u")
{
    if ($_FILES['bn_bimg']['name']) upload_file($_FILES['bn_bimg']['tmp_name'], $bn_id, G5_DATA_PATH."/banner");
    if ($_FILES['bn_bimg2']['name']) upload_file($_FILES['bn_bimg2']['tmp_name'], 'm'.$bn_id, G5_DATA_PATH."/banner"); // 200403 추가

    goto_url("./bannerform.php?w=u&amp;bn_id=$bn_id");
} else {
    goto_url("./bannerlist.php");
}



휴... 역시 좀만 복잡해지면 개발부분까지 건드리기는 어렵네요;; 간단한 것들은 어찌어찌 해결가능하긴 한데...;;

09 if ($bn_bimg_del)  @unlink(G5_DATA_PATH."/banner/$bn_id");
10 if ($bn_bimg2_del)  @unlink(G5_DATA_PATH."/banner/m$bn_id"); // 200403 추가

 

$bn_id

변수인것같은데 "" 안에 들어있네요 이거말고도 몇몇군데  보이는듯

// 날짜 추가 라고 주석처리된 부분은 원본을 그대로 복사해서 변수명만 바꿔줬습니다...;;

저도 말씀해주신 부분이 좀 애매한데 문자열안에 변수 넣을때는 {$bn_id} 이런식으로 중괄호로 감싸고 넣는거로 봤었는데

답변주신 부분은 그냥 다이렉트로 $bn_id 로 쓰고... 개발자가 아니어서 뭐가 맞는지 몰라 저도 헷갈리네요;;ㅠㅠㅠ

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 16,776
© SIRSOFT
현재 페이지 제일 처음으로