삽질표 외부이미지 웹진스킨 테스트해보실라우~~

SIR 뭇 고수님팁을 도용한 외부 이미지 파일을 위주로 사용할 웹진 스킨입니다.

테스트 부탁 드립니다.

테스트 아이디 및 비번 test 입니다.
테스트를 위해 당분간 권한을 모두 열어놓겠습니다.
팝업이 차단되어 있으면 원활한 썸네일 생성이 안되는점 참고하세요.^^

--------------------------
썸네일
- 썸네일 생성 엔진은 유창화님 소스코드를 활용하였습니다.
- 본문에 링크된 첫번째 이미지의 경로를 추출해서 썸네일을 생성 썸네일 폴더에 저장후 원본은 삭제한다.
- 필요할 경우 원본을 특정 폴더에 저장하는것도 가능하다.
- 모든 썸네일 경로는 base64_encode 방식을 적용 암호화 하였다.

썸네일 일괄 재생성
- 목록 상단 재성성 링크는 게시판 전체 링크 이미지에 대한 썸네일을 일괄 재생성한다.
- 일괄 재성성시 기존의 정상 연결된 이미지는 보존되며 재생성하지 않는다.
- 레코드나 서버 환경에 따라 수분의 시간이 소요된다.

썸네일 개별 재생성
- 목록 제목옆에 링크했으며 해당 레코드에 대한 썸네일만 재생성한다.
- 마찬가지로 기존의 정상 연결된 이미지는 보존되며 재생성하지 않는다.
- 일괄 생성시 누락된 썸네일만 재생성 하므로 이것은 별 필요가 없을듯..

썸네일 정리
- 업로드 파일 폴더와 썸네일 폴더의 파일을 비교 업로드 원본이 없는 파일만 일괄 삭제한다.
- 본문 첫번째 링크 이미지와 썸네일 폴더의 파일을 비교 링크가 없는 파일만 일괄 삭제한다.
- 불필요한 파일만 정리하므로 재생성 작업에 부담을 대폭 줄였다.

목록
- 목록에 사용되는 썸네일은 첨부파일 -> 본문링크 이미지 순으로 사용된다.
- 목록은 1~2열 정도가 적당한듯,, 해당 게시판의 관리설정에서 손쉽게 설정 가능하다.
- 최대한 웹표준을 준수하였으며 간결하게 처리하므로 로딩속도를 높이는데 주력하였다.

글 수정
- 글 수정시 첨부 이미지 또는 링크 이미지 썸네일을 추출 편집에 도움이 되도록 하였다.

글 보기
- 본물 읽기 페이지는 html사용시 줄바꿈이나 공백문자등을 제거하도록 수정되었으며,
차후 첨부 이미지 제어 부분을 강화할 예정이다.
|

댓글 23개

일단 내용만 읽었지만... 썸네일 재생성 만으로도 충분한 값어치가 있을듯 합니다.
감사합니다. .. 배포할때만 감사할겁니다.. 쿨럭;;;
점심은 맛나게 드셨나요?!
썸네일 생성 제가 한게 별로 없습니다.
http://www.sir.co.kr/bbs/board.php?bo_table=pl_php&wr_id=470
유창화님께서 만들어주신 엔진이 매우 좋네요.
대략 10만개쯤 링크를 비교해서 약 2000개씀 생성하는데 4~5분 걸리네요.
서버 환경 안좋은데 죽지않고 잘 돌아가더군요,ㅎㅎ
멋진 물건을 들고 오셨군요.
고생하셨습니다.
계정이 가난한 사람들을 위한 스킨이고 삽질이고 그렇습니다.^^
수고하셨습니다......^^

욜심히 들여다 봐야겠습니다....

이미지쪽은 더군다나 그리는 것이나 처리하는 것이나 다 젬병이라...ㅠ.ㅠ
뭐 전통적인 삽질일뿐입니다.^^
위쪽 유창화님 엔진에다 친절한서기님 밋숀을 붙인게 전부입니다.
사정상 이런 유형이 필요해서 그만 삽을,, ㅎㅎ
또 놀라운 신공을.. 그러다가 포털 만드시겠습니다.,,^^;
포털?.....털이 네곳에....?

머리/양쪽 겨드랑이/ .......또하나는 어딘감유....?
손등
DS`O님 팁도 요긴하게 사용했습니다.^^
고생하십니다. 좋네요.
감사합니다.^^
고급엔진을 만들어주셔서 매우 만족하고있습니다.
각 게시판별로 썸네일 생성 사이즈를 자유롭게 해준다면 더욱 유용하겠다는 생각만 하고있답니다.
시간 되실때 한번더 검토해주시면 고맙겠습니다.
썸네일을 필요로 하는 모든 스킨에서 널리 애용될것 같습니다.
간단하게 수정해서 쓰면 되지 않을 까요......

//원격이미지 정보 가져오는 함수
function Ymake_sumnail_remoteimage($url, $save_dir, $w, $h, $referer=''){

global $dest_file;

$src_file = $save_dir . '/' . base64_encode($url);

$text = Yreadfile($url, $referer);
if (empty($text)) return Array();

$fp = @fopen ($src_file, "w");
@fwrite($fp, $text);//유일한 파일이므로 파일에 락을 걸지 않는다.
@fclose($fp);
@chmod ($src_file, 0777);

$src_file_size = @getimagesize($src_file);
$dest_file = $save_dir . '/s_' . base64_encode($url);
$dest_file_size = Array($w, $h);
$result = Ysumnail_rule($src_file, $dest_file, $src_file_size, $dest_file_size, 90, 'gd');

@unlink($src_file);

return $result;
}




//플록님 이미지
$url = "http://phosay.com/g4/data/file/demo_gallery/3660583642_49cb97ad_wo%2B091.jpg";//읽어올 url
$referer = "http://phosay.com/g4/";//속일 리퍼러, 넣지 않아도 됨
$save_dir = "./temp";
//임시저장디렉토리 지정, 상대경로
//퍼미션은 웹서버가 읽을 수 있도록, 일반적으로 777
//맨마지막에 / 를 붙이지 않는다.

$result = Ymake_sumnail_remoteimage($url, $save_dir, 100, 100, $referer);

echo "<br>원본이미지 <img src='" . $url . "' border=0>";

if (empty($result)) echo "<br>png 썸네일 생성에 실패하였습니다. 저장디렉토리의 퍼미션이나 원본의 이미지포맷, 또는 gd지원여부를 확인하세요.";
else echo "<br>png 썸네일이미지 <img src='" . $dest_file . "' border=0>";
감사합니다.^^
잠간 밖에좀 나갔다 왔습니다.
얼른 적용해보고 보고 드리겠습니다.
잘됩니다.^^

겟방식으로 활용하는 관계로 bo_1값으로 사이즈를 제한하기 위해 쿼리를 한번더 넣어서 다음과 같이 단순하게 해보았습니다.

//썸네일 생성 링크 가져오기
//친절한서기님
function extract_img($src) {
$re = '/src[ =]+[\'"]([^\'"]+\.(?:gif|jpg|png|bmp))[\'"]/i';
preg_match_all($re, $src, &$match, PREG_PATTERN_ORDER);
return $match[1];
}

$sql = " select * from " . $g4['write_prefix'] . $bo_table . " ";
if (!empty($wr_id)){//레코드별로 처리할 경우를 위해 추가
$sql .= " where wr_id = '" . $wr_id . "' ";
}
$results = sql_query($sql);
$cnt = 0;
for ($i=0; $row=sql_fetch_array($results); $i++) {
$imgs = extract_img($row['wr_content']);
$cnt++;
//유창화님 썸네일 생성 함수와 연결
if (!empty($imgs[0])) { //본문에 이미지 있음
$url = $imgs[0];//첫번째 링크된 이미지
$save_dir = $thumb_path;//저장경로
$referer = "";//속일 리퍼러, 넣지 않아도 됨
$thumb = $save_dir . '/s_' . base64_encode($url);
if (!file_exists($thumb)) {//썸네일 없다면
//if ((is_file($url)) && (!file_exists($thumb))) {//원본이미지 있고 썸네일 없을때 실행한다.?
//썸네일 최대 사이즈 제한 - 여분필드 bo_1 사용 예(100,160) 구분자 , 으로 가로세로 최대치 입력
$sqls = sql_query(" select bo_1 from " . $g4['board_table'] . " where bo_table = '" . $bo_table . "' ");
$rows=sql_fetch_array($sqls);

if (empty($rows['bo_1'])) {//기본값 입력
$rows['bo_1'] = "100,160";
$sql = " update ".$g4['board_table']." set bo_1 = '".$rows['bo_1']."' where bo_table = '".$bo_table."' ";
sql_query($sql);
}
list($w, $h) = explode(",", $rows['bo_1']);

$result = Ymake_sumnail_remoteimage($url, $save_dir, $w, $h, $referer);

echo "<br><br>원본 - " . $url;

if (empty($result)) echo "<br>png 썸네일 생성에 실패하였습니다. 저장디렉토리의 퍼미션이나 원본의 이미지포맷, 또는 gd지원여부를 확인하세요.";
else echo "<br>png 썸네일 <img src='" . $dest_file . "' border=0><br>" . $dest_file;

}
}
}
멋진 물건이네요....수고 많으셨습니다...^^
그누 고수님들께서 공개해주신 멋진팁에 삽질만 약간 했을뿐입니다.^^
역시
메뉴및 웹진의 대명사
플록님이십니다.

특히 썸네일 관련해서 완벽합니다..
ㅎㅎ 고수님들께서 웃고 계십니다.^^
저는 아무것도 한게 없습니다.
웹진은 오달수님과 균이님의 팁을, 썸네일은 유창화님 소스코드를 원용한것 입니다.
전 특정 이미지만 가져다가 썸했는데 좋군요 고맙습니다.
보안에 문제가 된다면 어느위치에서 몇개 하시는게 좋지않을까요?

XXX을 적당히 자르시는것도 좋을것 같습니다.
substr(암호된XXX,0,15) 15개로 잘라줌니다.
고맙습니다
감사합니다.^^
이전에 주신 자료도 아직 공부를 못하고있네요,,
갈길이 까마득 합니다.
멋진 스킨입니다. 저작권이 무서워 그림은 못가져오고 외부이미지 링크걸고 섬브네일만 사용하면 좋겠다고 생각하고 있었는데 님의 스킨이 딱입니다. 이 스킨 공개해 주실날만 학수고대합니다. 감사합니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

자유게시판

+
제목 글쓴이 날짜 조회
18년 전 조회 2,889
18년 전 조회 1,910
18년 전 조회 2,729
18년 전 조회 2,465
18년 전 조회 2,645
18년 전 조회 2,480
18년 전 조회 2,612
18년 전 조회 2,310
18년 전 조회 2,818
18년 전 조회 1,974
18년 전 조회 2,809
18년 전 조회 2,059
18년 전 조회 2,770
18년 전 조회 2,544
18년 전 조회 3,354
18년 전 조회 2,792
18년 전 조회 2,960
18년 전 조회 2,734
18년 전 조회 2,439
18년 전 조회 2,579
18년 전 조회 2,751
18년 전 조회 2,035
18년 전 조회 1,973
18년 전 조회 2,733
18년 전 조회 2,210
18년 전 조회 2,636
18년 전 조회 2,338
18년 전 조회 2,906
18년 전 조회 2,443
18년 전 조회 2,670
🐛 버그신고