외부이미지를 내계정으로 끌어오기 - 삭제지원
페이지 정보
작성자 서방님 댓글 0건 조회 149회 작성일 06-11-17 13:36본문
블로그 이용자들 또는 스크랩이 취미인분들에게 추천하는 소스입니다.
(손님에게 공개기능으로 쓰자니...계정 용량이 맘에 걸리는지라....ㅋㅋ)
1. 제로보드 사용자
글작성 및 수정
글 삭제
2. 테터툴즈 사용자
흠~ 테터를 좀더 잘 아시는 분의 지도가 있으면 좋겠군요...
글작성 및 수정
(손님에게 공개기능으로 쓰자니...계정 용량이 맘에 걸리는지라....ㅋㅋ)
html 태그를 직접 작성하거나 에디터를 이용하여 게시판 또는 블로그에 글 작성시 이미지를 삽입하면
<img src="이미지 주소"> 이런식으로 저장이 되지요, 그쵸?
그때 저 이미지의 주소가 외부계정일경우 읽어다가 본인의 계정에 저장해주고 글 내용에서 주소를 계정에 저장된 위치로 바꿔줍니다.
다른곳에서 긁어다가 붙여넣기했는데 나중에 링크된 이미지가 없어져서 엑박으로 나오는 일이 더이상은 없겠죠? ^^
아차차...숨겨진 뽀나스 기능!
* 외부링크를 막아둔 네이버 그리고 싸이의 이미지도 잘~ 저장됩니다 ^^
원리:
- 글내용의 html 소스를 입력받아 img 태그의 src 만 뽑아와서 외부이미지라면 긁어서 계정에 저장하고나서 img 태그의 src 를 계정에 있는 화일의 주소로 교체해줍니다.이때 싸이의 이미지는 싸이에 로그인 한뒤 저장하는 방식입니다.
설치법:
- imageSaver.zip 을 다운받고 그 안에 화일들(2개)을 임의의 폴더에 풀어넣어줍니다.
- imagesaver.php 를 여시고 주석을 참고하시면서 2곳(6줄 & 104줄 이하)에 설정 정보를 넣어줍니다.
(경로, 아이디, 도메인 등등... 이때 계정에 이미지 저장 폴더생성및 권한설정도 잊지 마시길)
- 설정이 끝났으면 2개의 화일을 계정에 아무대나 원하는곳에 업로드 합니다.
사용법:
- 글을 DB 에 저장시키는 기능을 하는 화일에
include "imagesaver.php";
해줍니다. (이때 imagesaver.php 의 경로에 주의! 어디다 업로드 했느냐에 따라 다르겟죠?)
- 예를 들어 $memo 라는 변수에 글 내용이 있다면 그 내용이 DB 에 들어가기 직전에
$memo= saveRemoteImage($memo);
라고 처리해줌으로서 외부이미지를 저장시켜줍니다.
- 이미지가 크거나, 많거나...기타 등등~ 글의 저장시간이 평소보다 길어지는점 유의하시구요.
(당연한거죠? ^^)
- 삭제를 담당하는 화일에도 역시
include "imagesaver.php";
해줍니다. (역시 imagesaver.php 의 경로에 주의! 어디다 업로드 했느냐에 따라 다르겟죠?)
- 예를 들어 $s_data['memo'] 라는 변수에 삭제될 글의 내용이 있다면 DB 에서 삭제가 완료된 후에
deleteRemoteImage($s_data['memo']);
라고 처리해줌으로서 외부이미지를 삭제시켜줍니다.
흠.. 아는데로 자세한 사용법 나갑니다.
1. 제로보드 사용자
글작성 및 수정
write_ok.php 화일에서...
$memo = saveRemoteImage($memo);
이때 본 기능을 관리자만 쓰고 싶다거나... 게시판별로 적용하고 싶다거나 할때는
if ($member[is_admin] == 1) {
....
}
또는
if ($id == "적용할 게시판 아이디") {
....
}
등의 간단한 if 구문으로 위에 추가한 2줄을 감싸주시면 됩니다.
126줄 (원본기준) 에 있는
$memo=addslashes($memo); 의 아랫줄에 다음과 같이 넣어줍니다.
$memo = saveRemoteImage($memo);
이때 본 기능을 관리자만 쓰고 싶다거나... 게시판별로 적용하고 싶다거나 할때는
if ($member[is_admin] == 1) {
....
}
또는
if ($id == "적용할 게시판 아이디") {
....
}
등의 간단한 if 구문으로 위에 추가한 2줄을 감싸주시면 됩니다.
글 삭제
1. delete_ok.php 화일에서...
// 카테고리 필드 조절
mysql_query("update $t_category"."_$id set num=num-1 where no='$s_data[category]'",$connect);
의 다음줄에 아래처럼 넣어줍니다.
include "imagesaver.php";
deleteRemoteImage($s_data['memo']);
2. list_all.php 화일에서...90줄의
// 글삭제
mysql_query("delete from $t_board"."_$id where no='$selected[$i]'") or Error(mysql_error());
의 아랫줄에 아래처럼 넣어줍니다.
include "imagesaver.php";
deleteRemoteImage($temp['memo']);
// 카테고리 필드 조절
mysql_query("update $t_category"."_$id set num=num-1 where no='$s_data[category]'",$connect);
의 다음줄에 아래처럼 넣어줍니다.
include "imagesaver.php";
deleteRemoteImage($s_data['memo']);
2. list_all.php 화일에서...90줄의
// 글삭제
mysql_query("delete from $t_board"."_$id where no='$selected[$i]'") or Error(mysql_error());
의 아랫줄에 아래처럼 넣어줍니다.
include "imagesaver.php";
deleteRemoteImage($temp['memo']);
2. 테터툴즈 사용자
흠~ 테터를 좀더 잘 아시는 분의 지도가 있으면 좋겠군요...
글작성 및 수정
1. 새글작성시:
/테터폴더/blog/owner/entry/add/index.php 화일의 193줄
$content=mysql_escape_string(filterJavaScript-x-x($entry['content']));
의 윗줄에...
2. 수정시:
/테터폴더/blog/owner/entry/update/item.php 화일의 247줄
$content=mysql_escape_string(filterJavaScript-x-x($entry['content']));
의 윗줄에...
include "imagesaver.php";
$entry['content'] = saveRemoteImage($entry['content']);
를 넣어주고나서
imagesaver.php 의 95줄에있는
$str = addslashes($str); 를
//$str = addslashes($str);
이렇게 주석처리해주세요...
글 삭제/테터폴더/blog/owner/entry/add/index.php 화일의 193줄
$content=mysql_escape_string(filterJavaScript-x-x($entry['content']));
의 윗줄에...
2. 수정시:
/테터폴더/blog/owner/entry/update/item.php 화일의 247줄
$content=mysql_escape_string(filterJavaScript-x-x($entry['content']));
의 윗줄에...
include "imagesaver.php";
$entry['content'] = saveRemoteImage($entry['content']);
를 넣어주고나서
imagesaver.php 의 95줄에있는
$str = addslashes($str); 를
//$str = addslashes($str);
이렇게 주석처리해주세요...
/테터폴더/blog/owner/entry/delete/item.php 화일의 225줄
updateEntriesOfCategory($owner,$target['category']);
의 아랫줄에...
include "imagesaver.php";
deleteRemoteImage($target['content']);
라고 넣어주시면 됩니다.
updateEntriesOfCategory($owner,$target['category']);
의 아랫줄에...
include "imagesaver.php";
deleteRemoteImage($target['content']);
라고 넣어주시면 됩니다.
3. 그누보드 사용자
글작성 및 수정
글작성 및 수정
그누보드/bbs/write_update.php 의 186줄...
if ($w == "" || $w == "r")
{
if ($member[mb_id])
{
의 윗줄에 아래 두줄 추가하면 됩니다.
include "imagesaver.php";
$wr_content= saveRemoteImage($wr_content);
if ($w == "" || $w == "r")
{
if ($member[mb_id])
{
요렇게....
글 삭제if ($w == "" || $w == "r")
{
if ($member[mb_id])
{
의 윗줄에 아래 두줄 추가하면 됩니다.
include "imagesaver.php";
$wr_content= saveRemoteImage($wr_content);
if ($w == "" || $w == "r")
{
if ($member[mb_id])
{
요렇게....
1. 그누보드/bbs/ 폴더안의 delete.php 에서
// 게시글 삭제
sql_query(" delete from $write_table where wr_parent = '$write[wr_id]' ");
를 찾은뒤 그 윗줄에 다음 3줄을 추가해주시면 됩니다.
$wrtemp = sql_fetch(" select wr_content as content from $write_table where wr_id = '$write[wr_id]' ");
include "imagesaver.php";
deleteRemoteImage($wrtemp['content']);
2. 그누보드/bbs/ 폴더안의 delete_all.php 에서
// 사용자 코드 실행
@include_once("$board_skin_path/delete_all.skin.php"); 를 찾아 그 아래에
include_once "imagesaver.php";
를 넣어주세요. 그리고 나서...
// 게시글 삭제
sql_query(" delete from $write_table where wr_parent = '$write[wr_id]' ");
를 찾은뒤 그 윗줄에 다음 2줄을 추가해주시면 됩니다...
.
$wrtemp = sql_fetch(" select wr_content as content from $write_table where wr_id = '$write[wr_id]' ");
deleteRemoteImage($wrtemp['content']);
// 게시글 삭제
sql_query(" delete from $write_table where wr_parent = '$write[wr_id]' ");
를 찾은뒤 그 윗줄에 다음 3줄을 추가해주시면 됩니다.
$wrtemp = sql_fetch(" select wr_content as content from $write_table where wr_id = '$write[wr_id]' ");
include "imagesaver.php";
deleteRemoteImage($wrtemp['content']);
2. 그누보드/bbs/ 폴더안의 delete_all.php 에서
// 사용자 코드 실행
@include_once("$board_skin_path/delete_all.skin.php"); 를 찾아 그 아래에
include_once "imagesaver.php";
를 넣어주세요. 그리고 나서...
// 게시글 삭제
sql_query(" delete from $write_table where wr_parent = '$write[wr_id]' ");
를 찾은뒤 그 윗줄에 다음 2줄을 추가해주시면 됩니다...
.
$wrtemp = sql_fetch(" select wr_content as content from $write_table where wr_id = '$write[wr_id]' ");
deleteRemoteImage($wrtemp['content']);
참고.1: 사이트에 접속하고 내용을 읽어오는 기능은 오픈소스의 Snoopy 클래스를 이용하여 구현하였습니다.
참고.2: 제로보드, 테터, 그누보드 이외에 다른곳에 설치하신분들 이곳에서 정보를 나눕시다. ^^
참고.3: 9월9일 이전에 다운받아서 설치하신분들은 새로 받아서 다시 설치하세요.
첨부파일
- imageSaver.zip (9.8K) 2회 다운로드 | DATE : 2008-09-08 11:38:12
댓글목록
등록된 댓글이 없습니다.