talkbox 말풍선 스킨 20101119 버전 > 그누4 스킨

그누4 스킨

스킨의 저작권은 해당 스킨 제작자님께 있으며, 그누보드의 저작권과 다를 수 있습니다.
스킨 다운로드시 좋아요와 감사의 코멘트를 남기시면 제작자에게 큰 힘이됩니다. ^^y
그누보드와 관련이 있지만 스킨과 빌더가 아니면 플러그인 게시판에 올려주세요.

talkbox 말풍선 스킨 20101119 버전 정보

talkbox 말풍선 스킨 20101119 버전

첨부파일

talkbox_20101119.7z (435.4K) 237회 다운로드 2010-11-19 13:13:06

본문

2010 11 19 버전
불당썸만 포함시키고 불당리사이즈는 일단 뺐습니다.
스킨 폴더에 불당썸이 포함되어있으니 따로 설치 안하셔도 됩니다.

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



회원사진 이용을 위해서 아래와 같은 개조 작업을 합니다.
아래의 개조를 하지 않을 경우는  회원사진 대신에
noimg 이미지가 나올 뿐 다른 에러는 없을겁니다.



그누보드/adm/member_form.php 를 열어보면
그누보드 회원정보에  gif외에도 jpg나 png가 업로드 가능하도록 설정되어있지만
아래 부분은 수정이 안되어있다.

그누보드/adm/member_form_update.php

78번라인

    // 아이콘 업로드
    if (is_uploaded_file($_FILES[mb_icon][tmp_name])) {
        if (!preg_match("/(\.gif)$/i", $_FILES[mb_icon][name])) {
            alert($_FILES[mb_icon][name] . '은(는) gif 파일이 아닙니다.');
        }

        if (preg_match("/(\.gif)$/i", $_FILES[mb_icon][name])) {
            @mkdir("$g4[path]/data/member/$mb_dir", 0707);
            @chmod("$g4[path]/data/member/$mb_dir", 0707);

            $dest_path = "$g4[path]/data/member/$mb_dir/$mb_id.gif";

            move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
            chmod($dest_path, 0606);

여기에 pregmatch에 gif 만 허용되어 있슴

이부분에 이미지 확장자 jpg,png 등 추가


    // 아이콘 업로드
    if (is_uploaded_file($_FILES[mb_icon][tmp_name])) {
        if (!preg_match("/(\.(jpg|jpeg|gif|png|PNG|JPG|GIF))$/i", $_FILES[mb_icon][name])) {
            alert($_FILES[mb_icon][name] . '은(는) gif 파일이 아닙니다.');
        }

        if (preg_match("/(\.(jpg|jpeg|gif|png|PNG|JPG|GIF))$/i", $_FILES[mb_icon][name])) {
            @mkdir("$g4[path]/data/member/$mb_dir", 0707);
            @chmod("$g4[path]/data/member/$mb_dir", 0707);

            $dest_path = "$g4[path]/data/member/$mb_dir/$mb_id.gif";

            move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
            chmod($dest_path, 0606);

이렇게 수정해준다.


그누보드/adm/member_form.php  도 수정하자

불당썸을 이용하기 위해서 이걸 4번째줄 쯤에 추가해주자

include_once("$g4[path]/lib/thumb.lib.php");


그후에

파일을 업로드 해보면 어드민 - 회원관리에서 사진이 원본크기로 나와버리는것을 막기위해


104번째 줄 쯤에



        <input type=file name='mb_icon' class=ed><br>이미지 크기는 <?=$config[cf_member_icon_width]?>x<?=$config[cf_member_icon_height]?>보다 작은 이미지를 업로드 해주세요. 업로드 하신 이미지는 자동으로 리사이즈 됩니다.
        <?
        $mb_dir = substr($mb[mb_id],0,2);

        $icon_file = "$g4[path]/data/member/$mb_dir/$mb[mb_id].gif";

if (file_exists($icon_file)) {

$mb_thumb = thumbnail($icon_file , 200,200,0,1,100);
echo "<br><img src='$mb_thumb'  align='absmiddle' style='border:1px solid #fff; padding:0px; '>";

        echo " <input type=checkbox name='del_mb_icon' value='1' class='csscheck'>삭제";
        } 
        ?>

이렇게 수정해서  원본크기가 아닌 리사이즈된 섬네일로 표시되도록 해준다



210 라인쯤에

function fmember_submit(f)
{
    if (!f.mb_icon.value.match(/\.((jpg|jpeg|gif|png|PNG|JPG|GIF))$/i) && f.mb_icon.value) {
        alert('아이콘이 이미지 파일이 아닙니다. (bmp 제외)');
        return false;
    }

    f.action = './member_form_update.php';
    return true;
}

도 수정해준다.
 




그러면 회원아이콘에 정상적으로 이미지 업로드된다.

이제 회원아이콘을 프로필 사진으로 이용하자.

회원정보수정에서 업로드 하는 부분도 수정해야 한다

그누보드/bbs/register_form_update.php

130번째 줄에 아이콘 업로드에서 확장자 지정해준다.

// 아이콘 업로드
$mb_icon = "";
if (is_uploaded_file($_FILES[mb_icon][tmp_name]))
{
    if (preg_match("/(\.gif)$/i", $_FILES[mb_icon][name]))
    {
        // 아이콘 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES[mb_icon][size] <= $config[cf_member_icon_size])
        {
            @mkdir($mb_dir, 0707);
            @chmod($mb_dir, 0707);
            $dest_path = "$mb_dir/$mb_id.gif";
            move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
            chmod($dest_path, 0606);
            if (file_exists($dest_path))
            {
                //=================================================================\
                // 090714
                // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
                // 에러메세지는 출력하지 않는다.
                //-----------------------------------------------------------------
                $size = getimagesize($dest_path);
                if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.
                    @unlink($dest_path);
                else
                // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                if ($size[0] > $config[cf_member_icon_width] || $size[1] > $config[cf_member_icon_height])
                    @unlink($dest_path);
                //=================================================================\
            }
        }
    }
    else
        $msg .= $_FILES[mb_icon][name] . "은(는) gif 파일이 아닙니다.";
}

이것을 아래와 같이 수정

// 아이콘 업로드
$mb_icon = "";
if (is_uploaded_file($_FILES[mb_icon][tmp_name]))
{
    if (preg_match("/(\.(jpg|jpeg|gif|png|PNG|JPG|GIF))$/i", $_FILES[mb_icon][name]))
    {
        // 아이콘 용량이 설정값보다 이하만 업로드 가능
        if ($_FILES[mb_icon][size] <= $config[cf_member_icon_size])
        {
            @mkdir($mb_dir, 0707);
            @chmod($mb_dir, 0707);
            $dest_path = "$mb_dir/$mb_id.gif";
            move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
            chmod($dest_path, 0606);
            if (file_exists($dest_path))
            {
                //=================================================================\
                // 090714
                // gif 파일에 악성코드를 심어 업로드 하는 경우를 방지
                // 에러메세지는 출력하지 않는다.
                //-----------------------------------------------------------------
                $size = getimagesize($dest_path);
                //if ($size[2] != 1) // gif 파일이 아니면 올라간 이미지를 삭제한다.
                //    @unlink($dest_path);
                //else
                // 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
                if ($size[0] > $config[cf_member_icon_width] || $size[1] > $config[cf_member_icon_height])
                    @unlink($dest_path);
                //=================================================================\
            }
        }
    }
    else
        $msg .= $_FILES[mb_icon][name] . "은(는) gif 파일이 아닙니다.";
}

이제 회원정보 수정에서 사진업로드가 정상동작한다.

그누보드/skin/member/basic/register_form.skin.php

456 번째 줄에 gif만 있는 부분을 수정 .

            if (!f.mb_icon.value.toLowerCase().match(/.(jpg|jpeg|gif|png|PNG|JPG|GIF)$/i)) {

이렇게 변경해준다..


여기까지 해주면 유저아이콘을 쓸수 있게 된다.




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


이렇게 개조하던.. 다른 방법으로 개조하던 개조를 해야 회원 프로필 사진을 쓸수 있게 된다는건 매우 번거로운 일입니다.

그누보드 배포본에 이런 류의 기능이 기본적으로 포함되기를 바랍니다.

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

배포장소 : http://www.mozoki.com/20444

테스트 장소 : http://skin.mozoki.com/bbs/board.php?bo_table=talkbox

이 스킨은 UTF-8 용입니다.
추천
10

댓글 전체

허락없이 영어로 바꾼거 올렸는데..이해하실런지..
내리라면 바로 내리도록 하겠습니다.
모조키님 말풍선 스킨 정말 유용히 잘 쓰고 있습니다.
감사합니다.
Fatal error: Cannot redeclare get_date() (previously declared in C:\APM_Setup\htdocs\shop\extend\b4.lib.php:19) in C:\APM_Setup\htdocs\shop\skin\board\talkbox_20101119\plugin\b4.lib.php on line 16
전체 5,850 |RSS
그누4 스킨 내용 검색

회원로그인

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