쪽지4 - 4.0.1 (베타 3) 정보
쪽지4 - 4.0.1 (베타 3)첨부파일
본문
Lusia아님의 도움으로 쪽지4의 불필요한 파일을 처리하는 부분을 보강하였습니다.
불필요 파일은 /data/memo2_deleted라는 디렉토리에 저장이 되게 됩니다.
디렉토리는 설치시 생기거나 첨부파일이 있는 파일을 trash에서 삭제할 때 생깁니다.
data 디렉토리 권한을 707로 잠시 바꾸신후에 첨부파일이 있는 메모를 지워주시거나
해당 디렉토리를 만들고 nobody, nobody로 owner,group을 바꿔주시면 됩니다.
css/div는 코딩이 아주 좋아졌지만 ie에서 이상현상이 발생해서 아직 적용안했습니다.
css/div만 적용이 되면, 어지간한 목적에는 충분할 것 같습니다.
그리고 resize의 버그를 어제로 다 잡아서 (제 판단으로) 쪽지4에 첨부되는 이미지로 인한
traffic의 감소에 도움이 조금은 될 겁니다. 은근히 쪽지에 이미지 첨부하는 사람들 많아요.
---
- 수정내역
adm/memo4_install_update.php
bbs/memo2_chkunlinkfile.php
bbs/memo2_form_delete.php
bbs/memo2_form_delete_trash_all.php
bbs/memo2_config_update.php
extend/bd.lib.php
lib/thumb.lib.php
skin/member/basic/memo2_config.skin.php
- 첨부파일 삭제 (memo2_deleted로 이동후 삭제, Lusia님 협찬) ...
skin/member/basic/memo2_config.skin.php
bbs/memo2_config_update.php
bbs/memo2_chkunlinkfile.php
bbs/memo2_form_delete.php
bbs/memo2_form_delete_trash_all.php
- 누락파일 (썸네일 생성. 첨부이미지가 크면 쪽지 크기에 맞춰 보여주는 썸네일을 만듭니다)
lib/thumb.lib.php
- 이미지 resize 오류 수정 (resize 1.0.3)
extend/bd.lib.php
- 설치프로그램 수정 (data/memo2_deleted 디렉토리 만들게)
adm/memo4_install_update.php
불필요 파일은 /data/memo2_deleted라는 디렉토리에 저장이 되게 됩니다.
디렉토리는 설치시 생기거나 첨부파일이 있는 파일을 trash에서 삭제할 때 생깁니다.
data 디렉토리 권한을 707로 잠시 바꾸신후에 첨부파일이 있는 메모를 지워주시거나
해당 디렉토리를 만들고 nobody, nobody로 owner,group을 바꿔주시면 됩니다.
css/div는 코딩이 아주 좋아졌지만 ie에서 이상현상이 발생해서 아직 적용안했습니다.
css/div만 적용이 되면, 어지간한 목적에는 충분할 것 같습니다.
그리고 resize의 버그를 어제로 다 잡아서 (제 판단으로) 쪽지4에 첨부되는 이미지로 인한
traffic의 감소에 도움이 조금은 될 겁니다. 은근히 쪽지에 이미지 첨부하는 사람들 많아요.
---
- 수정내역
adm/memo4_install_update.php
bbs/memo2_chkunlinkfile.php
bbs/memo2_form_delete.php
bbs/memo2_form_delete_trash_all.php
bbs/memo2_config_update.php
extend/bd.lib.php
lib/thumb.lib.php
skin/member/basic/memo2_config.skin.php
- 첨부파일 삭제 (memo2_deleted로 이동후 삭제, Lusia님 협찬) ...
skin/member/basic/memo2_config.skin.php
bbs/memo2_config_update.php
bbs/memo2_chkunlinkfile.php
bbs/memo2_form_delete.php
bbs/memo2_form_delete_trash_all.php
- 누락파일 (썸네일 생성. 첨부이미지가 크면 쪽지 크기에 맞춰 보여주는 썸네일을 만듭니다)
lib/thumb.lib.php
- 이미지 resize 오류 수정 (resize 1.0.3)
extend/bd.lib.php
- 설치프로그램 수정 (data/memo2_deleted 디렉토리 만들게)
adm/memo4_install_update.php
추천
0
0
댓글 전체
오홋 버전 업이 되었군요.
*ㅅ*
*ㅅ*
생각해보니 큰 실수를 했습니다.
첨부파일이동하는 3개의 파일에서 아래 구문이 문제있습니다.
$file_deleted_path = "$g4[path]/data/memo2_deleted";
@copy($filepath, $file_deleted_path);
요기서 $file_deleted_path 내에 파일명이 지정되어 있지 않아 파일 이동이 되지 않습니다.
아래와 같은 형식으로 변경해야 합니다. ㅠㅠ
$file_deleted_path = "$g4[path]/data/memo2_deleted/";
if(!is_dir($file_deleted_path.$member[mb_id])){
@mkdir($file_deleted_path.$member[mb_id], 0707);
@chmod($file_deleted_path.$member[mb_id], 0707);
}
@copy($filepath, $file_deleted_path.$result[me_file_server]);
첨부파일이동하는 3개의 파일에서 아래 구문이 문제있습니다.
$file_deleted_path = "$g4[path]/data/memo2_deleted";
@copy($filepath, $file_deleted_path);
요기서 $file_deleted_path 내에 파일명이 지정되어 있지 않아 파일 이동이 되지 않습니다.
아래와 같은 형식으로 변경해야 합니다. ㅠㅠ
$file_deleted_path = "$g4[path]/data/memo2_deleted/";
if(!is_dir($file_deleted_path.$member[mb_id])){
@mkdir($file_deleted_path.$member[mb_id], 0707);
@chmod($file_deleted_path.$member[mb_id], 0707);
}
@copy($filepath, $file_deleted_path.$result[me_file_server]);
저는 테스트는 안해봤지만, 디렉토리만 지정하면 그냥 그이름으로 들어가는거 아닌가요?
mb_id로 나누는거는 삭제파일의 중복을 막기 위해서 필요한거 같구요.
mb_id로 나누는거는 삭제파일의 중복을 막기 위해서 필요한거 같구요.
http://kr.php.net/manual/kr/function.copy.php
http://kr.php.net/manual/kr/function.rename.php
링크의 코멘트로 볼때 파일명도 지정해야 하는것 같습니다.
(최소한 제 테스트에서는 파일명을 지정하지 않을때에는 복사가 되지 않았습니다.)
조금 정보를 찾아보니 파일 이동은 copy 보다는 rename 함수를 사용하라고 되어있네요.
(확실히 복사->지우기 보다는 경로/이름수정의 작업이 서버 부하가 적겠죠.)
mb_id로 나눈 이유는 제가 추가적으로 수정/작성하는 코드때문에 해놨었습니다. ㅡ,.ㅡ;
http://kr.php.net/manual/kr/function.rename.php
링크의 코멘트로 볼때 파일명도 지정해야 하는것 같습니다.
(최소한 제 테스트에서는 파일명을 지정하지 않을때에는 복사가 되지 않았습니다.)
조금 정보를 찾아보니 파일 이동은 copy 보다는 rename 함수를 사용하라고 되어있네요.
(확실히 복사->지우기 보다는 경로/이름수정의 작업이 서버 부하가 적겠죠.)
mb_id로 나눈 이유는 제가 추가적으로 수정/작성하는 코드때문에 해놨었습니다. ㅡ,.ㅡ;
rename은 비추한다고도 되어 있어요. 파일명이라... ㅠ..ㅠ..
으음...; rename이 어디에 문제가 있을까요 ;ㅅ;
함수 설명에도 Renames a file or directory로 되어 있고 제가 못찾는건지 문제될 만한 내용을 찾을 수가 없어요.
테스트해도 제가 의도한 대로 동작하구요 ;ㅅ;
함수 설명에도 Renames a file or directory로 되어 있고 제가 못찾는건지 문제될 만한 내용을 찾을 수가 없어요.
테스트해도 제가 의도한 대로 동작하구요 ;ㅅ;
같은 파일이 있으면, copy는 엎어쓰고 rename은 오류를 낸다고 합니다.
어떤 이유로 파일의 이름만 존재하게 된 경우 해당 파일 이름으로 rename
하게 되면, 오류가 나고 꽝~이지만 copy는 위에 엎어쓰게 되는것이죠.
어떤 이유로 파일의 이름만 존재하게 된 경우 해당 파일 이름으로 rename
하게 되면, 오류가 나고 꽝~이지만 copy는 위에 엎어쓰게 되는것이죠.
아...그런 문제였군요. @_@;
if(file_exists($target))
@unlink($target);
@rename($source,$target);
이런식으로 쓰면 어떨까요?
copy보다는 file_exists가 비용이 더 적을거 같은데...
if(file_exists($target))
@unlink($target);
@rename($source,$target);
이런식으로 쓰면 어떨까요?
copy보다는 file_exists가 비용이 더 적을거 같은데...
그냥 생각없이 copy하는게 cost가 덜 들어갈꺼에요. copy를 하면 올린 코드가 내부적으로 수행될 겁니다.
thumb.lib.php에서 png 처리할때 문제가 있습니다.
imagepng의 퀄리티는 0~9까지 사용 가능합니다.
101라인의(해당 라인 구문 "else if ($size[2] == 3){") 다음라인에 아래 내용을 넣어야 할 것 같습니다.
if($quality>9)
$quality=$quality/9;
imagepng의 퀄리티는 0~9까지 사용 가능합니다.
101라인의(해당 라인 구문 "else if ($size[2] == 3){") 다음라인에 아래 내용을 넣어야 할 것 같습니다.
if($quality>9)
$quality=$quality/9;
감사합니다.
아직 한번도 png를 처리하지 않아서 몰랐네요 (이부분은 리자님 코드가 원본인데...)
(int)($quality/10)
이미지 타입에 상관없이, 100을 기준으로 quality를 부여한 것이라,
imagepng($target, $thumb_file, (int)($quality/10)); //imagepng의 퀄리티는 0~9까지 사용 가능합니다.
아직 한번도 png를 처리하지 않아서 몰랐네요 (이부분은 리자님 코드가 원본인데...)
(int)($quality/10)
이미지 타입에 상관없이, 100을 기준으로 quality를 부여한 것이라,
imagepng($target, $thumb_file, (int)($quality/10)); //imagepng의 퀄리티는 0~9까지 사용 가능합니다.
어라;; 내가 왜 9로 나누었지... =_=;;;
제 수정본에서 리사이즈가 문제가 있어서 정신없이 하다보니 또 삽질해 버리네요 ㅠㅠ
제 수정본에서 리사이즈가 문제가 있어서 정신없이 하다보니 또 삽질해 버리네요 ㅠㅠ
이미지 resize는 아직도 진행중인 코드라 오류가 나름 많이 있습니다. ㅠ..ㅠ...
푸흣... 겨우 이미지 표시되게 수정해봤네요.
제가 불당팩 사용자가 아니라서(또는 제맘대로 코드를 써서) 그런지는 몰라도...
/lib/thumb.lib.php
요기서는 $width 값이 넘어오지 않는 문제가 있습니다.
/extend/bd.lib.php
요기에는 $board['bo_image_width'] 가 지정되어 있지 않아서 img태그를 width="" 으로 만들어 버립니다.
이 두개만 수정하시면 섬네일 생성/표시는 되는것 같습니다.
제가 불당팩 사용자가 아니라서(또는 제맘대로 코드를 써서) 그런지는 몰라도...
/lib/thumb.lib.php
요기서는 $width 값이 넘어오지 않는 문제가 있습니다.
/extend/bd.lib.php
요기에는 $board['bo_image_width'] 가 지정되어 있지 않아서 img태그를 width="" 으로 만들어 버립니다.
이 두개만 수정하시면 섬네일 생성/표시는 되는것 같습니다.
function resize_content($content, $width=0)
{
if ($width > 0)
$board['resize_img_width'] = (int)$width;
return preg_replace_callback('/\<img[^\<\>]*\>/i', 'resize', $content);
}
callback에서 부르는 함수에서는 글로벌 변수밖에 못 쓰서 $width 값을 넘겨줄 수가 없습니다.
그래서 resize_content(이미지가 있는 html, $width) 와 같이 하면, 전역변수인 $board['resize_image_width']에 값을 넣어버립니다. $width에 값이 없으면, $board[bo_image_width]의 값을 thumbnail에서 사용하구요.
쪽지4의 경우에는 skin/member/basic/memo2_view.skin.php의 가장 앞부분에서
// resize를 위한 넓이를 지정
$board[resize_img_width] = $max_img_width;
지정하고 있습니다.
이미지 태그 프로세싱에 인자를 줄 수 없는 callback함수를 써서 좀 이상하게 보일 겁니다.
{
if ($width > 0)
$board['resize_img_width'] = (int)$width;
return preg_replace_callback('/\<img[^\<\>]*\>/i', 'resize', $content);
}
callback에서 부르는 함수에서는 글로벌 변수밖에 못 쓰서 $width 값을 넘겨줄 수가 없습니다.
그래서 resize_content(이미지가 있는 html, $width) 와 같이 하면, 전역변수인 $board['resize_image_width']에 값을 넣어버립니다. $width에 값이 없으면, $board[bo_image_width]의 값을 thumbnail에서 사용하구요.
쪽지4의 경우에는 skin/member/basic/memo2_view.skin.php의 가장 앞부분에서
// resize를 위한 넓이를 지정
$board[resize_img_width] = $max_img_width;
지정하고 있습니다.
이미지 태그 프로세싱에 인자를 줄 수 없는 callback함수를 써서 좀 이상하게 보일 겁니다.
$board['bo_image_width']의 경우에는
/extend/bd.lib.php의 아래 구문(대략 30라인쯤)에서 문제가 발생합니다.
if ($max_img_width <= 0) {
..
} else if ($max_img_width > $board['bo_image_width']) {
$max_img_width = $board['bo_image_width'];
}
$max_img_width가 0보다 크게 지정되어 있기 때문에 elseif문으로 들어가는데, 여기서는 $board['bo_image_width']값이 지정되어 있지 않아서 $max_img_width를 null로 때려버립니다.
때문에 70라인 근처의 width조정에서 width="$max_img_width"가 width=""로 되어 버립니다.
$board['bo_image_width']=$max_img_width; 비슷한 초기화도 해줘야 할 것 같습니다.
/extend/bd.lib.php의 아래 구문(대략 30라인쯤)에서 문제가 발생합니다.
if ($max_img_width <= 0) {
..
} else if ($max_img_width > $board['bo_image_width']) {
$max_img_width = $board['bo_image_width'];
}
$max_img_width가 0보다 크게 지정되어 있기 때문에 elseif문으로 들어가는데, 여기서는 $board['bo_image_width']값이 지정되어 있지 않아서 $max_img_width를 null로 때려버립니다.
때문에 70라인 근처의 width조정에서 width="$max_img_width"가 width=""로 되어 버립니다.
$board['bo_image_width']=$max_img_width; 비슷한 초기화도 해줘야 할 것 같습니다.
아~ 다시 보겠습니다. 요즘 머리가 굳어서 ㅠ..ㅠ...
$max_img_width에 값이 있으면 무조건 그걸 쓰는게 맞네요.
else if 코드를 삭제했어요
$max_img_width에 값이 있으면 무조건 그걸 쓰는게 맞네요.
else if 코드를 삭제했어요
/skin/member/skin/memo2_view.skin.php
상단에
<script src="<?=$g4[path]?>/js/add_to.common.js"></script>
를 누락하셨습니다.
(해당 코드 삽입후 정상적으로 원본 이미지가 새창으로 뜹니다.)
상단에
<script src="<?=$g4[path]?>/js/add_to.common.js"></script>
를 누락하셨습니다.
(해당 코드 삽입후 정상적으로 원본 이미지가 새창으로 뜹니다.)
아... 이게...
common.js에 해당 내용을 삽입하라는 겁니다. ㅠ..ㅠ...
add_to.common.js 파일의 내용을 copy해서 common.js에 넣어주세요.
음..음... 이것도 헷갈릴 수 있으니 방법을 생각해 봐야 하겠네요.
common.js에 해당 내용을 삽입하라는 겁니다. ㅠ..ㅠ...
add_to.common.js 파일의 내용을 copy해서 common.js에 넣어주세요.
음..음... 이것도 헷갈릴 수 있으니 방법을 생각해 봐야 하겠네요.