[MBC파업] 태터툴즈 플러그인: Random Photo Viewer 확장

나는 투표한다
고로 나는 존재한다
즐 거 운 약 속
대선: 210일전
반대: 한미FTA
퇴임: 277일전
태터 플러그인 중 필자가 꼭 설치해보고 싶었던 플러그인은 바둥이님의 Random Photo Viewer    였다. Random Photo Viewer     현재 사용중인 태터툴즈 플러그인에서 설명했듯이 블로그에 올린 그림을 분류를 기준으로 랜덤하게 출력해 주는 플러그인이다.

그런데 이 플러그인은 블로그에 올린 그림을 조각 그림으로 만들어 전송하는 것이 아니라 단순히 WIDTH 속성HEIGTH 속성을 이용해서 그림 크기만 줄이는 것이기 때문에 이 플러그인을 설치하면 전송량이 엄청나게 증가한다. 한 예로 블로그에 올린 그림 파일의 크기가 평균 100KB이고, 플러그인에서 한번에 10개의 그림을 가져오도록 설정했다면 페이지를 한번 읽을 때 다만 산술적으로 1M의 전송량 소비하게된다.

필자처럼 하루 전송량이 400M인 블로그에서는 400 페이지만 보면 하루 전송량을 모두 소모하게 되는 셈이다. 여기서 400 페이지는 방문자 수가 아니기 때문에 경우에 따라서는 한 사람만 방문해도 전송량이 모두 소진될 수 있다.

따라서 전송량의 압박이 심한 필자에게 Random Photo Viewer는 그림의 떡이었다. 그러던 중 필자가 웹 호스팅을 하고 있는 Cafe24에서 CDN 서비스를 제공    한다는 소식을 듣고 블로그의 그림을 모두 CND으로 옮기고 Random Photo Viewer를 설치하면 괜찮을 것 같아 이미지를 Cafe24의 CDN 서버로부터 이미지를 가져오도록 Random Photo Viewer를 바꾸었다.

필자가 사용한 CDN 서버는 블로그를 호스팅한 서버가 아니라 QAOS.com을 호스팅하고 있는 서버이기 때문에 하루 전송량이 3.5G 이다. 그런데도 Random Photo Viewer에서 그림을 10개 가져오도록 설정하면 채 하루가 지나기 전에 3.5G의 전송량을 모두 소모 하는 것이었다.

그래서 결국 Random Photo Viewer에서 실제 그림을 가져오는 것이 아니라 원본 그림을 지정된 크기로 줄인 뒤 그림을 전송하는 패치 및 Random Photo Viewer의 확장을 만들게 되었다.

기본적으로 이 플러그인은 바둥이님의 Random Photo Viewer를 필요로 한다. 따라서 이 플러그인을 설치하기 전에 먼저 바둥이님의 Random Photo Viewer를 먼저 설치하기 바란다.

  1. RPV 확장: RPVExtend.zip
  2. RPV 플러그인: rpv.zip    

RPV 확장 설치
RPV 확장을 사용하기 위해서는 바둥이님의 Random Photo Viewer    를 먼저 설치해야 한다. 확장의 설치는 Random Photo Viewer가 정상적으로 설치되어 있는 것을 가정하고 설명하겠다.
  1. 내려받은 파일의 압축을 푼 뒤 images.php 파일을 RPV가 설치된 폴더로 업로드한다.
  2. 좋아하는 편집기로 서버의 .htaccess 파일을 연뒤 다음 행(적색으로 표시한 행)을 추가한다.
    RewriteRule ^images/.+$ plugins/RandomPhotoViewer/images.php [E=SURI:1,L]
    RewriteRule ^$ blog/index.php [E=SURI:1,L]
    반드시 RewriteRule ^$ blog/index.php [E=SURI:1,L] 바로 윗줄에 삽입하기 바란다.

RPV 패치
PRV에서 원본 그림이 아니라 조각 그림을 가져오도록 하려면 RPV의 index.php를 다음처럼 패치해야 한다. 30 행: 경로명에 // 가 반복되는 것을 막기위해 /attach/를 attach/로 변경
변경전
30	$attachURL = "/".$arr[1]."/attach/".$owner."/";

변경후
30	$attachURL = "/".$arr[1]."attach/".$owner."/";

32 행: 조각 그림을 가져오기 위해 첨부 파일의 URL을 확장의 URL로 변경

변경전
32	if(!($dp = opendir(ROOT."/attach/".$owner))) return "Path Error!";

변경후
32	$attachURL=$blogURL.'/images'.$attachURL;
34	if(!($dp = opendir(ROOT."/attach/".$owner))) return "Path Error!";

36 행: 0.9x에서 가져온 이미지도 불러오기 위해 정규식 변경

변경전
36	if(eregi("^[0-9]{10}",$tfile)) {

변경후
36	if(eregi("^[0-9]{<FONT COLOR="red">6,</FONT>10}",$tfile)) {

75~79 행: 주석 처리된 75행, $Title .= 행(78)과 $TitleList 행(79)을 지우고 77 행을 추가 $TitleLen 변수값에 따라 제목이 변경되지 않는 문제 해결

변경전
75 //	$ImgPath .= "'".$blogURL."/attach/".$owner."/".$tmpfile[$arr_rand]."',";
76	$ImgPath .= "'".$attachURL.$tmpfile[$arr_rand]."',";
77	$LinkPath .= "'".$blogURL."/".$id."',";
78	$Title .= "'".htmlspecialchars(UTF8::lessenAsEm($myrow["title"],$TitleLen))."',";
79	$TitleList .= "'".$title."',";

변경후
75	$ImgPath .= "'".$attachURL.$tmpfile[$arr_rand]."',";
76	$LinkPath .= "'".$blogURL."/".$id."',";
77	$TitleList .= "'".htmlspecialchars(UTF8::lessenAsEm($title,$TitleLen))."',";

124~126행: 조각 그림의 크기에 따라 테이블의 크기가 변하도록 변경

변경전
124	<td>
125	<a href=gotoshow()><img src='#'
	name=slide border=0 width=".$ImageWidth." height=".$ImageHeight."
	style=filter:progid:DXImageTransform.Microsoft.Pixelate
	(MaxSquare=15,Duration=1)></a>
126	</td>

변경후
124	<td height=".$ImageHeight."px valign=center>
125	<a href=gotoshow()><img src='#' name=slide border=0
	style=filter:progid:DXImageTransform.Microsoft.Pixelate
	(MaxSquare=15,Duration=1)></a>
126	</td>
이 확장을 설치한 뒤 블로그에서 운영해본 결과 약 100M의 전송량이 부족했다. 즉, 이 확장을 설치해도 블로그 호스팅에는 약간 부족했다. 따라서 현재 필자는 그림 이미지는 다른 서버에 두고 RVP를 사용하고 있다. 이 경우 RPV 확장 역시 다른 서버에 두고 index.php 파일에서 외부 서버에서 그림을 가져오록 경로만 바꾸면 된다.

네스커 서비스    는 저작권자를 후원하는 서비스입니다. 후원을 클릭하고 트위터나 페이스북으로 글을 보낸 뒤 광고링크를 클릭하면 저작권자에게 후원금이 적립되는 서비스입니다.
     블로그는 기부로 운영됩니다! 우리은행:1002-828-797649 휴대폰     페이팔(artech@qaos.com)
TAG , , ,
ADD WZD | 구글 | 뉴스2.0 | 다음 | 델리셔스 | 마가린 | 북마커 | 야후 | 한RSS | 정보
글쓴이
author image
운영체제의 모든 것을 운영하고 있는 IT 블로거. IT 블로거라는 이름은 현재 시국때문에 시사 블로거로 바뀐 상태다. 그러나 나는 아직도 시사와 사회에 관심이 많은 IT 블로거일 뿐이다. 컴퓨터, 운영체제, 시사, 가족, 여행, 맛집, 리뷰등과 살면서 느끼는 소소한 일상이 블로그의 주제이다. 왼쪽의 아이콘은 둘째 딸 다예가 그린 내 모습이다.
컴관련
오늘글
인기글

Trackback

Trackback Address :: http://offree.net/trackback/548

Facebook

Comments

  1. 박철우 2006/10/15 00:28

    플러그인 게시판에 올라온 것을 보고 바로 설치했습니다. 저의 경우에는 30행에서 "/"를 지우면 앞 폴더와 이름이 붙어버립니다. "aaa//bbb"가 될까봐 취하는 조치인 것으로 보이는데 제 경우에는 "aaabbb"가 되어서 일단 원본대로 그냥 두었습니다.
    다른 변경 사항을 반영하고 보았더니 제목들은 바뀌면서 나타나는데 조각 그림들이 전혀 나타나지 않고 있습니다. 파일 위치를 보니 루프 폴더 아래 "images"라는 새폴더를 만들어서 그 안에 첨부된 그림의 축소판을 넣어두는 게 아닌가 합니다. 혹시나 해서 images 폴더도 수정으로 만들어주고 시스템 재부팅도 했습니다. 조각 그림(축소판)이 생성되는 시간이 필요해서 그런 것인지 궁금합니다.

    확인해볼 만한 다른 사항이 있을런지요.

    좋은 자료 감사합니다.

    perm. |  mod/del. reply.
    • 도아 2006/10/15 08:47

      .htaccess 파일을 수정하지 않았거나 .htaccess 파일을 잘못 수정했기 때문에 발생한 현상인 것 같습니다. .htaccess 파일을 확인해보시기 바랍니다.

      images는 .htaccess에 의해 만들어지는 가상 폴더입니다. 따라서 굳이 /images 폴더를 만들 필요는 없습니다. 오히려 만들면 오동작합니다.

  2. 박철우 2006/10/15 14:49

    답변 감사합니다.

    .htaccess 파일은 RPV 파일 패치 전에 미리 수정했습니다. 위의 내용과 다른 점은 제 RPV의 폴더명이 rpv라서 "RandomPhotoViewer/images.php"를 "rpv/images.php"로 한 것입니다.

    혹시 태터툴즈가 웹서버 htdocs 바로 밑에 설치되어 있는 것이 아니라 하위 폴더에 설치되어서 그런 것은 아닌지요?

    perm. |  mod/del. reply.
    • 도아 2006/10/16 13:31

      하위 폴더라고 해도 동작해야 정상입니다. 그러나 경로는 당연히 일치 시켜주어야 합니다.

  3. 권성철 2006/10/17 17:49

    서버의 .htaccess 가 어디있나요? 서버 접근 권한이 없으면 수정이 불가능한건지요?

    perm. |  mod/del. reply.
    • 도아 2006/10/17 17:54

      태터툴즈를 설치했으면 설치 폴더에 자동적으로 .htaccess가 생성됩니다. 그리고 당연한 얘기지만 서버 접근 권한이 없으면 당연히 수정할 수 없습니다.

쥐박쥐가 아니라면 소통하세요!!!

(옵션: 없으면 생략)

글을 올릴 때 [b], [i], [url], [img]와 같은 BBCode를 사용할 수 있습니다.


믹시