공동구매(0909) > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

공동구매(0909) 정보

공동구매(0909)

첨부파일

0909.zip (64.2K) 230회 다운로드 2011-03-15 18:09:11

본문

프로그램명
-------------------------------------------------------------------------------
    공구공구
    0909
    ※ 그누보드 호환 유료형 공동구매 제작 프로그램

제작자
-------------------------------------------------------------------------------
    SIR (http://www.sir.co.kr)
    kagla @ sir.co.kr

프로그램에 대한 보증
-------------------------------------------------------------------------------
    제작자는
    이 프로그램의 사용으로 인한 손실 및 손해에 대해서 책임이 없으며,
    유지 및 보수의 의무가 없습니다.

LICENSE
-------------------------------------------------------------------------------
    1. 원 프로그램명, 원 제작자를 변경하거나 표기하지 않는 사용, 수정, 배포를 금지합니다.
    2. 배포는 원 제작자가 허용한곳에만 있습니다.
    2. 수정하여 사용하는것은 가능하지만 수정한 소스의 재배포는 하실 수 없습니다.
    3. 반민족·반국가 단체, 불법사이트등을 제외하고는 자유롭게 사용하실 수 있습니다.
    4. 그외 의문사항은 제작자 메일을 이용하시기 바랍니다.
       (개인적인 질문에는 메일 주셔도 답변드리지 않습니다.)
    ※ 만약, 법적인 분쟁이 발생한 경우 원 제작자의 회사 소재지를 관할하는 관할법원에서
      분쟁을 해결합니다.

프로그램 사용권의 구입
-------------------------------------------------------------------------------
    공구공구의 사용권은 SIR 홈페이지에서만 구입하실 수 있습니다.
    사용권에 대해 자세하게 알고 싶으시면 SIR 홈페이지를 방문하십시오.

주요 기능
-------------------------------------------------------------------------------
    - 공동구매

이력
-------------------------------------------------------------------------------
1.01 Patch (2003.10.23)
    - 09.lib.php 의 함수명에 모두 _gg_ 를 붙임 (다른 플러그인과의 충돌 때문)

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

여기까지 README 파일에 들어 있는 내용입니다.
원래는 상용프로그램이나 관리자님께서 배포를 해락하시어 그누보드4 버전으로 변환했습니다.

원본버전과 소스의 수정은 다소 있지만, 기능적 차이는 카드결제 부분을 제외하고는 다 됩니다.

문자셋 utf-8입니다.

1. 사용법
    - 첨부의 파일을 그누보드가 설치된 디렉토리에 올립니다.
       아래처럼요...
      

   - 권한설정을 하위디렉토리 포함 707로 해줍니다.
   - 관리자로 로그인을 해서 http://도메인/0909/install.php 실행을 합니다.
   - 설치가 되면 환경설정은 사용자의 입맛에 맞게 적용합니다.

2. 발생 가능한 문제점
   - 공동구매 신청자에 대한 메일 발송이 안될 수도 있습니다. 된다는 분도 계시고 안된다는 분도 계십니다.
   - 메일 발송 관련 문의는 제게 하셔도 소용없습니다. 제가 해결 능력이 안됩니다. 스스로 해결하는수 밖에 없습니다. -_-;;

3. 기타
    - 보다 업그레이드 된 0909가 나오길 바랍니다.
    - 제가 점검하지 못한 문제점이 발생할 수 있으니, 그럴경우 질답게시판이나 고수님들께 문의를 하시면 친절한 분들께서 많이 도와주실 겁니다.

※ 프로그램 제작자인 관리자님과 그누보드4 버전으로 변환하는데 많은 도움을 주신 jacobswell님께 무한한 감사의 마음을 전합니다.
추천
11

댓글 21개

다운 받아서 바로깔았는데 아래처럼 한글이 모두 깨져서 나오네요.

예) HOME | 怨듦뎄紐⑸줉 | �떊泥�,援щℓ�궡�뿭 | 濡쒓렇�씤   
吏꾪뻾以묒씤 怨듬룞援щℓ �긽�뭹�씠 �뾾�뒿�땲�떎.

제꺼랑 버전이 안 맞나..... 암튼 좋은 스킨 수고하셨습니다.
공구상품을 웹사이트 시작화면에 불러 오는 방법

1. main.php 파일 작성 후 0909 디렉토리에 올림

============================ main.php ============================

<link rel="stylesheet" href="<?=$g4['path']?>/0909/style.css" type="text/css">

<?
// 테이블명
$g4[gg_config_table]  = "gg_config_table";    // 설정 테이블
$g4[gg_gongoo_table]  = "gg_gongoo_table";    // 공구 테이블
$g4[gg_order_table]  = "gg_order_table";    // 주문서 테이블
$g4[gg_request_table] = "gg_request_table";  // 신청서 테이블

//-------------------------------------------
// 설정 테이블에서 설정값 얻기
//-------------------------------------------
$sql = " select * from $g4[gg_config_table] ";
$row = @sql_fetch($sql);
$config = array_merge($config, is_array($row) ? $row : array());
//-------------------------------------------

// 공구 테이블에서 하나의 행을 읽음
function _gg_get_gongoo($id)
{
    global $g4;

    $sql = " select * from $g4[gg_gongoo_table]
  where gg_id = '$id' ";
return sql_fetch($sql);

}


// 신청서 테이블에서 하나의 행을 읽음
function _gg_get_request($re_id)
{
    global $g4;

    $sql = " select * from $g4[gg_request_table]
              where re_id = '$re_id' ";
    return sql_fetch($sql);
}


// 주문서 테이블에서 하나의 행을 읽음
function _gg_get_order($od_id, $od_altkey="")
{
    global $g4;

    $sql = " select * from $g4[gg_order_table]
              where od_id = '$od_id' ";
    if ($od_altkey) {
        $sql .= " and od_altkey  = '$od_altkey' ";
    }
    return sql_fetch($sql);
}


// 리스트 제목에 정렬 넣기
function _gg_get_field_sort($subject, $field) {
    global $_SERVER, $qstr, $aorder, $doc;

    return  "<a href='?$qstr&sst=$field&sod=$aorder[$field]'>$subject</a>";
}


// 이미지를 업로드 한다.
function _gg_image_upload($gg_id, $file)
{
    global $g4;

    $img_id = substr("000000" . $gg_id, -7); // 일련번호를 0000001 과 같은 형식으로 만든다.

    $dest_file = "";
    $tmp_name = $file["tmp_name"];
    $name = $file["name"];
    if (is_uploaded_file($tmp_name) && $name) {
        $dest_file = "{$img_id}_{$name}";
        $dest_path = "./img/$dest_file";
        move_uploaded_file($tmp_name, $dest_path) or die($file[error]);
        chmod($dest_path, 0707);
    }

    return $dest_file;
}


// 이미지의 링크와 규격을 얻는다.
function _gg_get_img_link_size($img)
{
    global $g4;

    $path = "./img/$img";
    $size = getimagesize($path);
    return "<a href='$path' target=_blank>$img</a> ($size[0]x$size[1])";
}


// 공구상품의 현재 가격을 얻는다.
function _gg_get_hyunjaega($gg_id, $sijakga, $mokpyoga, $mokpyo_qty, $sum_re_qty)
{
    global $g4;

    // 신청수량이 목표수량보다 많다면 목표가 도달
    if ($sum_re_qty >= $mokpyo_qty) {
        $hyunjaega = $mokpyoga;
    } else {
        if ($sum_re_qty > 0) {
            $gaedang = ($sijakga - $mokpyoga) / $mokpyo_qty;
            $gap = $gaedang * $sum_re_qty;
            $hyunjaega = $sijakga - $gap;
        } else {
            $hyunjaega = $sijakga;
        }
    }

    // 100원 미만 버림
    $hyunjaega = (int)((int)($hyunjaega / 100) * 100);

    return $hyunjaega;
}


// 위대한 한글인가?
function _gg_is_hangul($str)
{
/*
    $is = true;
    for ($i=0; $i<strlen($str); $i++) {
        $char = ord($str[$i]);

        if(!(($char >= 0xa1) && ($char <= 0xfe))) {
            $is = false;
            break;
        }
    }
    return $is;
*/
return check_string($str, _G4_HANGUL_);
}

// 공구상품 테이블의 신청수량을 가감한다.
function _gg_set_gongoo_request_qty($gg_id, $re_qty)
{
    global $g4;

    $sql = " update $g4[gg_gongoo_table]
                set gg_request_qty = gg_request_qty + '$re_qty'
              where gg_id = '$gg_id' ";
    sql_query($sql);
}

// 1인당 신청수량
// 공구상품ID, 회원ID, 신청자이름, 신청자전화번호, 신청수량
function _gg_check_1indang_qty($gg_id, $mb_id, $re_name, $re_email, $re_qty)
{
    global $g4;

    $gg = _gg_get_gongoo($gg_id);

    $sql = " select sum(re_qty)
              from $g4[gg_request_table]
              where gg_id = '$gg[gg_id]' ";
    if ($mb_id) {
        $sql .= " and mb_id = '$mb_id' ";
    } else {
        $sql .= " and re_name  = '$re_name'
                  and re_email = '$re_email' ";
    }
    $row = sql_fetch($sql);
    if ((int)($row[0] + $re_qty) > $gg[gg_1indang_qty]) {
        alert("1인당 {$gg[gg_1indang_qty]}개 까지 신청하실 수 있습니다.\\n\\n{$re_name}님께서는 이미 {$row[0]}개를 신청하셨습니다.", "./09.php?gg_id=$gg[gg_id]");
    }
}


$config[gg_list_mod] = 3; // 한라인에 몇개씩 출력할것인지?


// 신청수량이 한정수량을 넘었거나 신청일시가 아니라면 select 하지 않는다.
$sql = " select *
          from $g4[gg_gongoo_table]
          where gg_hanjeong_qty > gg_request_qty
            and NOW() between gg_fr_datetime and gg_to_datetime
          order by gg_sequence, gg_id desc ";
$result = sql_query($sql);
?>



<?
echo "<table width='100%' align='center' border='0' cellpadding='0' cellspacing='0'>\n";
$colwidth = (int)(100 / $config[gg_list_mod]);
for ($i=0; $i<$config[gg_list_mod]; $i++) {
    echo "<col width='{$colwidth}%'></col>\n";
}
echo "<tr>\n";

for ($i=0; $gg=sql_fetch_array($result); $i++) {
    if (($i%$config[gg_list_mod] == 0) && ($i > 0)) {
        echo "</tr><tr><td colspan='$config[gg_list_mod]' height=10></td></tr><tr>";
    }

    $var[hyunjaega] = _gg_get_hyunjaega($gg[gg_id], $gg[gg_sijakga], $gg[gg_mokpyoga], $gg[gg_mokpyo_qty], $gg[gg_request_qty]);

    echo "
<td valign=top height=100%>
<table width=100% height=100% cellspacing=1 cellpadding=0 background='./0909/img_/tableborder.gif'>
<tr>
<td class='cssbgcolor1'>
<table width=100% height=100%>
<tr><td height=40 align=center>$gg[gg_subject]</td></tr>
<tr><td align=center><a href='./0909/09.php?gg_id=$gg[gg_id]'><img src='./0909/img/$gg[gg_simg]' border=0></a></td></tr>
<tr>
<td align='center'>
<table border='0'>
<tr>
<!-- style='padding:상px 좌px 하px 우px;'-->
<td align='left' style='padding:10px 10px 10px 5px;'>
* 시중가 : ".number_format($gg[gg_sijungga])."원<br>
* <span class='cssstress'>현재가 : ".number_format($var[hyunjaega])."원</span><br>
* 신청수량 : {$gg[gg_request_qty]}{$gg[gg_danwi]} / ".number_format($gg[gg_hanjeong_qty])."{$gg[gg_danwi]}
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>

";
}

if ($i == 0) {
    echo "<td height=100 align=center>진행중인 공동구매 상품이 없습니다.</td>";
} else {
    // 나머지 td 를 colspan 으로 채운다.
    $cnt = $config[gg_list_mod] - ($i % $config[gg_list_mod]);
    if ($cnt < $config[gg_list_mod]) {
        $width = $colwidth * $cnt;
        echo "<td colspan=$cnt width='{$width}%'></td>";
    }
}
?>
</tr>
</table>

====================================================================

2. index.php 파일에 아래와 같이 소스삽입

<? include "./0909/main.php";?>
와 정말 감사합니다.  지금 막 필요해서 만들어야 되나 하고 한숨쉬고 있었는데 이런게 있었네요.
어떻게 감사의 말씀을 드려야 할지 모르겠네요.
잘 쓰겠습니다~~
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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