Taebu / ezrachurch

서울에스라교회 홈페이지 소스입니다.
http://ezrachurch.kr/wp
0 stars 0 forks source link

서울에스라교회 가계부 이미지 여러개 작성 하도록 만들기 준비 #65

Closed Taebu closed 4 months ago

Taebu commented 1 year ago

이미지 파일 여러개 등록 할 테이블 작성 g5_board_file 참고 account_image_file bo_table -> ab_class wr_id -> ab_no

CREATE TABLE `account_image_file` (
  `ab_class` varchar(20) NOT NULL DEFAULT '',
  `ab_no` int(11) NOT NULL DEFAULT 0,
  `bf_no` int(11) NOT NULL DEFAULT 0,
  `bf_source` varchar(255) NOT NULL DEFAULT '',
  `bf_file` varchar(255) NOT NULL DEFAULT '',
  `bf_download` int(11) NOT NULL,
  `bf_content` text NOT NULL,
  `bf_filesize` int(11) NOT NULL DEFAULT 0,
  `bf_width` int(11) NOT NULL DEFAULT 0,
  `bf_height` smallint(6) NOT NULL DEFAULT 0,
  `bf_type` tinyint(4) NOT NULL DEFAULT 0,
  `bf_datetime` datetime,
  PRIMARY KEY (`ab_class`,`ab_no`,`bf_no`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

이미지 배열 append 사용 올라간 이미지 배열 갯수 세기 올라간 이미지 배열에 담아서 가져오기

Taebu commented 1 year ago

올라간 이미지 배열에 담아서 가져오기

/* get_image_file($st_no) */
function get_image_file($st_no)
{
    global $db;
  $sql=array();
  $result=array();
  $sql[]="SELECT * FROM `cashq_image_file` ";
  $sql[]=sprintf("WHERE st_no=%s order by im_type, bf_no ;",$st_no);
  $query = $db->query(join("",$sql));
  while($list=$query->fetch(PDO::FETCH_ASSOC)){
     $result[]=$list;
    //print_r($list);
  }
  return $result;
}

서버로 부터 이미지 파일 가져오기

/* get_image_server($st_no) */
function get_image_server($st_no,$im_type="",$appid="")
{
    global $db;
    if($st_no==""){
    return;
    }
  $sql=array();
  $result=array();
  $results=array();
  $sql[]="SELECT * FROM `cashq_image_file` ";
  $sql[]="WHERE st_no={$st_no} ";
  if($im_type!="")
  {
  $sql[]=sprintf(" and im_type='%s' ",$im_type);
  }
  $sql[]=" order by im_type, bf_no ;";
  $query = $db->query(join("",$sql));
  while($list=$query->fetch(PDO::FETCH_ASSOC)){
    $i=$list['bf_no'];

    if($list['im_type']=="logo"){
        if($list['bf_content']=="")
        {
        $imgurl1="https://imgcdn.cashq.co.kr/upload/store/logo/";
        $imgurl2=sprintf("%s/%s/%s",$st_no,$list['bf_date'],$list['bf_file']); 
        $imgurl=sprintf("%s%s",$imgurl1,$imgurl2);
        $result[]=$imgurl;
        }else{
        $result[]=$list['bf_content'];
        }

    }

    if($list['im_type']=="page"){
        if($list['bf_content']=="")
        {
        $imgurl1="https://img.cashq.co.kr/upload/store/paper/";
        $imgurl2=sprintf("%s_%s/%s/%s",$st_no,$list['bf_no'],$list['bf_date'],$list['bf_file']); 
        $imgurl=sprintf("%s%s",$imgurl1,$imgurl2);
        $result[]=$imgurl;
        }else{
        $result[]=$list['bf_content'];
        }
    }

    if($list['im_type']=="banner"){

        //  https://img.cashq.co.kr/upload/mhj/banner/73863_0/20200522/1590134700_8963306212.jpeg
        $imgurl1="https://img.cashq.co.kr/upload/haedream/banner/";
        $imgurl2=sprintf("%s_%s/%s/%s",$st_no,$list['bf_no'],$list['bf_date'],$list['bf_file']); 
        $imgurl=sprintf("%s%s",$imgurl1,$imgurl2);
        $results['banner_image']=$imgurl;
        $results['banner_url']=$list['bf_content'];
        array_push($result,$results);
    }
    //print_r($list);
  }
  return $result;
}

최대 파일 갯수 가져오

/* get_max_file($st_no) */
function get_max_file($st_no)
{
  global $db;
  $sql=array();
  $result=array();
  $sql[]="SELECT MAX(bf_no) bf_no FROM `cashq_image_file` ";
  $sql[]="WHERE st_no={$st_no} order by bf_no;";
  $sql=join("",$sql);
  $query=$db->query($sql);
  $row=$query->fetch(PDO::FETCH_ASSOC);
  return $row['bf_no'];
}
$page_start_size=0;
$is_logo=false;
$i=0;
$j=0;

if(isset($imglist))
{ 
/* 메뉴 이미지 index  : menu_i */

$i=0;
$menu_i=1;
while($i<=$max_bf_no)
{
    /* 전단지 */
    printf('<tr class="form_cell" id="page_%s"> <!-- 메뉴이미지 %s -->',$menu_i,$menu_i);
    printf('<th scope="row" class="form_tit"><span id="th_localtitle_title" class="tit_tx tit_tx2">메뉴이미지 %s</span></th>',$menu_i);
    echo '<td class="form_value cpn">';
    /* 전단지 이미지가 존재 합니다. */
    //if($imglist[$i]['bf_no']==$i&&$imglist[$i]['im_type']=="page")
    $is_page=false;
    for($z=0;$z<=count($imglist);$z++)
    {
        if(isset($imglist[$z]['bf_no'])&&$imglist[$z]['bf_no']==$i&&$imglist[$z]['im_type']=="page")
        {
            printf("<span id='img%s_%s'>",$st_no,$imglist[$z]['bf_no']);
            printf("<img src='%s' width=146 height=111 style='margin-right: 5px;'>",get_image_url($imglist[$z]));
            printf("<a href='javascript:del_img(%s,%s,\"%s\")'  class='spr_btn spr_btn_del'></a>",$st_no,$imglist[$z]['bf_no'],"page");
            printf("<a href='javascript:img_add_item()'  class='spr_btn spr_btn_price'></a>");
            echo '</span>';
            $is_page=true;
            $page_start_size=$i;
            break;
            /* 전단지 이미지가 존재 하지 않습니다. */
        }
    }

    if(!$is_page){
        printf('<input type="file" name="file[%s]" id="file_%s">',$i,$i);
        printf('<a class="spr_btn spr_btn_add" href="javascript:img_add(\'file_%s\');"></a>',$i);
        print('<a href="javascript:img_add_item()" class="spr_btn spr_btn_price"></a>');
        $is_page=true;
    }
    echo '<p>- 가로640px * 세로 상관없음</p>';
    echo '<p>- 메뉴보기를 눌렀을 때 보이는 이미지 입니다.</p>';
    echo '      </td>';
    echo '                  </tr>';
     /* if($il['im_type']=="page"){...} */
    $menu_i++;
    $i++;
} /* while($i<=$max_bf_no){...} */
} /*if(isset($imglist)){...}*/
$page_start_size=$max_bf_no+1;
Taebu commented 1 year ago

del_img

function del_img(st_no,i,type){     
    var param="mode=del&st_no="+st_no+"&bf_no="+i+"&type="+type;        
    var object=[];      
    $.ajax({        
        url:"./curl/set_img.php",       
        method:"POST",      
        data:param,     
        dataType:"json",        
        success:function(data){     
            //console.log(data);        
            if(data.success){       
                //alert("삭제성공");        
                if(type=="page")        
                {       
//              object.push('전단 '+i+' : <input type="file" name="file[]">');        
//              object.push("<input type=file name=file["+page_index+"] id='file_"+page_index+"'>");        
                object.push('<input type="file" name="file['+i+']"  id="file_'+i+'">');     
                object.push('<a class="spr_btn spr_btn_add" href="javascript:img_add(\'file_'+i+'\');"></a>');      
                object.push('<a href="javascript:img_add_item()" class="spr_btn spr_btn_price"></a>');      
                $("#img"+st_no+"_"+i).html(object.join(""));        
                }else{      
                object.push('<input type="file" name="logo" id="logo">');       
                object.push('<a class="spr_btn spr_btn_thumb_add" href="javascript:img_add(\'logo\');"></a>');      
                $("#img"+st_no+"_logo").html(object.join(""));      
                }       

            }else{      
                alert("삭제실패 혹은 통신불량!!!");       
            }       
        }       
    });     
    //alert(st_no+"_"+i);       
}

img_add_item

/* 이미지 추가 ui */
function img_add_item()
{
    var page_index=$("#page_start_size").val();
    var i=$("#page_start_size").val();
    page_index++;
    var object=[];
    object.push("<tr class=\"form_cell\">");
    object.push("<th scope=\"row\" class=\"form_tit\">");
    object.push("<span id=\"th_localtitle_title\" class=\"tit_tx tit_tx2\">");
    object.push("메뉴이미지 "+page_index+"</span></th>");
    object.push("<td class=\"form_value cpn\">");
    object.push("<input type=file name=file["+i+"] id='file_"+i+"'>");
    object.push('<a class="spr_btn spr_btn_price" href="javascript:img_add_item()"></a>');
    object.push("<a class=\"spr_btn spr_btn_add\" href=\"javascript:img_add(\'file_"+i+"\');\"></a>");
    object.push("<p>- 가로640px * 세로 상관없음</p>");
    object.push("<p>- 메뉴보기를 눌렀을 때 보이는 이미지 입니다.</p>");
    object.push("</td></tr>");

    $("#page_area").append(object.join(""));
    $("#page_start_size").val(page_index);
}