태터툴즈 1.1.2 Animato로 판올림 및 엔트리 패치
Animato
태터툴즈 1.1.2 Animator가 배포됐다. 그러나 태터툴즈를 개인적으로 패치한 부분이 많아 일단 설치를 보류하고 있었다. 그러다 실수로 판올림한 뒤 어떤 파일을 어떻게 패치했는지 기록을 남기기 위해 이 글을 작성하게 되었다.
태터툴즈 릴리즈
어제 태터툴즈 1.1.2 Animato가 배포됐다. 공지를 보고 바로 판올림할까 하는 생각도 해봤지만 현재 패치한 것이 많고 1.1.1에서 어떤 것을 패치했는지 기억이 나지않아 나중에 확인한 뒤 설치하기 위해 일단 설치를 보류하고 있었다.
이렇게 패치하는 방법은 간단하다. 일단 FTP를 지원하는 편집기(예: EditPlus)로 /blog/index.php
파일을 열고 가장 마지막의 print $view
를 주석으로 처리한 뒤 다음처럼 두줄을 추가하면된다.
//print $view; if(ereg('MSIE 6',$_SERVER['HTTP_USER_AGENT'])) $slogan=iconv('UTF-8', 'EUC-KR', $entries[0]['slogan']); else $slogan=$entries[0]['slogan']; header("Location:".불blogURL."/entry/".불slogan); ?>
목록 한쪽 당 글 수 패치
나처럼 최근글, 댓글, 걸린글까지 문자로 표시하고 싶다면 좋아하는 편집기로 /blog/entry/index.php
파일을 연 뒤 다음처럼 패치하면 된다. 빨간색으로 표시된 부분이 바뀐 부분이다.
최근글
변경전======================================================================== **getRecentEntries 함수** $result=DBQuery::query("SELECT e.id, e.title, e.comments FROM {$database['prefix']}Entries e LEFT JOIN {$database['prefix']}Categories c ON e.owner = c.owner AND e.category = c.id WHERE e.owner = $owner AND e.draft = 0 $visibility AND e.category >= 0 ORDER BY published DESC LIMIT {$skinSetting['entriesOnRecent']}"); **getRecentEntriesView 함수** dress('rctps_rep_link',"$blogURL/{$entry['id']}",$view); 변경후======================================================================== **getRecentEntries 함수** $result=DBQuery::query("SELECT e.id, e.title, e.comments, e.slogan FROM {$database['prefix']}Entries e LEFT JOIN {$database['prefix']}Categories c ON e.owner = c.owner AND e.category = c.id WHERE e.owner = $owner AND e.draft = 0 $visibility AND e.category >= 0 ORDER BY published DESC LIMIT {$skinSetting['entriesOnRecent']}"); **getRecentEntriesView 함수** dress('rctps_rep_link',"$blogURL/entry/{$entry['slogan']}",$view);
댓글
변경전======================================================================== **getRecentComments 함수** $sql=doesHaveOwnership()?"SELECT * FROM {$database['prefix']}Comments WHERE owner = $owner".($isGuestbook!=false?" AND entry=0":" AND entry>0")." AND isFiltered = 0 ORDER BY written DESC LIMIT ".($count!=false?$count:$skinSetting['commentsOnRecent']): "SELECT r.* FROM {$database['prefix']}Comments r LEFT JOIN {$database['prefix']}Entries e ON r.owner = e.owner AND r.entry = e.id LEFT JOIN {$database['prefix']}Categories c ON e.owner = c.owner AND e.category = c.id WHERE r.owner = $owner AND e.draft = 0 AND e.visibility >= 2 AND (c.visibility > 1 OR e.category = 0) ".($isGuestbook!=false?" AND r.entry = 0":" AND r.entry > 0")." AND isFiltered = 0 ORDER BY r.written DESC LIMIT ".($count!=false?$count:$skinSetting['commentsOnRecent']); **getRecentCommentsView 함수** dress('rctrp_rep_link',"$blogURL/{$comment['entry']}#comment{$comment['id']}",$view); 변경후======================================================================== **getRecentComments 함수** $sql=doesHaveOwnership()?"SELECT r.*, e.slogan FROM {$database['prefix']}Comments r, {$database['prefix']}Entries e WHERE r.owner = $owner".($isGuestbook!=false?" AND r.entry=0":" AND r.entry>0")."AND r.isFiltered = 0 AND r.entry = e.id ORDER BY r.written DESC LIMIT ".($count!=false?$count:$skinSetting['commentsOnRecent']): "SELECT r.*, e.slogan FROM {$database['prefix']}Comments r LEFT JOIN {$database['prefix']}Entries e ON r.owner = e.owner AND r.entry = e.id LEFT JOIN {$database['prefix']}Categories c ON e.owner = c.owner AND e.category = c.id WHERE r.owner = $owner AND e.draft = 0 AND e.visibility >= 2 AND (c.visibility > 1 OR e.category = 0) ".($isGuestbook!=false?" AND r.entry = 0":" AND r.entry > 0")." AND isFiltered = 0 ORDER BY r.written DESC LIMIT ".($count!=false?$count:$skinSetting['commentsOnRecent']); **getRecentCommentsView 함수** dress('rctrp_rep_link',"$blogURL/entry/{$comment['slogan']}#comment{$comment['id']}",$view);
걸린글
변경전======================================================================== **getRecentTrackbacks 함수** $sql=doesHaveOwnership()?"SELECT * FROM {$database['prefix']}Trackbacks WHERE owner = $owner AND isFiltered = 0 ORDER BY written DESC LIMIT ".($count!=false?$count:$skinSetting['trackbacksOnRecent']): "SELECT t.* FROM {$database['prefix']}Trackbacks t LEFT JOIN {$database['prefix']}Entries e ON t.owner = e.owner AND t.entry = e.id LEFT JOIN {$database['prefix']}Categories c ON e.owner = c.owner AND e.category = c.id WHERE t.owner = $owner AND e.draft = 0 AND e.visibility >= 2 AND (c.visibility > 1 OR e.category = 0) AND t.isFiltered = 0 ORDER BY t.written DESC LIMIT ".($count=false?$count:$skinSetting['trackbacksOnRecent']); **getRecentTrackbacksView 함수** dress('rcttb_rep_link',"$blogURL/{$trackback['entry']}#trackback{$trackback['id']}",$view); 변경후======================================================================== **getRecentTrackbacks 함수** $sql=doesHaveOwnership()?"SELECT t.*, e.slogan FROM {$database['prefix']}Trackbacks t, {$database['prefix']}Entries e WHERE t.owner = $owner AND t.isFiltered = 0 AND t.entry = e.id ORDER BY t.written DESC LIMIT ".($count!=false?$count:$skinSetting['trackbacksOnRecent']): "SELECT t.*, e.slogan FROM {$database['prefix']}Trackbacks t LEFT JOIN {$database['prefix']}Entries e ON t.owner = e.owner AND t.entry = e.id LEFT JOIN {$database['prefix']}Categories c ON e.owner = c.owner AND e.category = c.id WHERE t.owner = $owner AND e.draft = 0 AND e.visibility >= 2 AND (c.visibility > 1 OR e.category = 0) AND t.isFiltered = 0 ORDER BY t.written DESC LIMIT ".($count=false?$count:$skinSetting['trackbacksOnRecent']); **getRecentTrackbacksView 함수** dress('rcttb_rep_link',"$blogURL/entry/{$trackback['slogan']}#trackback{$trackback['id']}",$view);
myEolin
내가 myEolin 기능 중 유일하게 사용하는 기능은 블로그 아래쪽에 달려있는 '이올린에 북마크할 수 있는 책갈피'와 '이올린에 추천할 수 있는 추천'이다. 그런데 이 기능은 ViewPost
핸들러를 사용해서 글의 끝부분에 붙기 때문에 위치를 마음대로 바꿀 수 없다. 따라서 이 위치를 마음대로 바꿀 수 있도록 태그로 만들어 사용하고 있다. 나처럼 'myEolin 플러그인'을 패치해서 사용하려면 좋아하는 편집기로 /plugins/myEolin/index.php
파일을 연 뒤 다음처럼 바꾸면 된다.
변경전======================================================================== **Bm_myEolin 함수** global $hostURL, $blogURL, $pluginURL,$owner,$permalink,$entry,$configVal; if($entry['visibility'] >= "2" ){ $target .= '<div class="EolinBmVote">'; $img = $pluginURL."/images/bookmarkToEolin.gif"; $img2 = $pluginURL."/images/voteToEolin.gif"; $permalink = $hostURL. (isset($permalink)?$permalink:''); $ownership = false; if(true==function_exists('doesHaveOwnership')){ $ownership = doesHaveOwnership(); } if($ownership != false){ $url = "http://api.eolin.com/myEolin/getEntryInfo.js?permalink=" .rawurlencode($permalink)."&id=".불entry['id']."&log=0"; }else{ $url = "http://api.eolin.com/myEolin/getEntryInfo.js?permalink=" .rawurlencode($permalink)."&id=".불entry['id']."&log=1"; } $target .= '<span class="EolinBookmarkBtn"><a href="#void" title="이올린에 북마크하기" onclick="bookMarkEolin('.불entry['id']. ', ''.불permalink.'', 'bookmark');return false;"> <img src="'.불img.'" style="vertical-align:middle;" /></a></span>'; if($entry['visibility'] == "3" && $getMyvote == 1){ $target .= '(<span id="bookmarkEolin'.불entry['id'].'" class="EolinBookmarkCount">0</span>) <span class="EolinVoteBtn"><a href="#void" title="이올린에 추천하기" onclick="bookMarkEolin('.불entry['id'].',''.불permalink.'', 'vote') ;return false;"> <img src="'.불img2.'" style="vertical-align:middle;" /> </a></span>(<span id="voteEolin'.불entry['id']. '" class="EolinVoteCount">0</span>)'; $target .= "<script language=\"JavaScript\" type=\"text/javascript\">//<![CDATA[ apiEolinURL.push(\"".불url."\"); //]]></script>"; //$target .= "<script src='".불url."' type='text/javascript' ></script>"; } $target .= "</div>"; } 변경후======================================================================== **Bm_myEolin 함수** global $hostURL, $blogURL, $pluginURL,$owner,$permalink,$entry,$configVal,$entryView; if($entry['visibility'] >= "2" ){ $myeolin .= '<div class="EolinBmVote">'; $img = $pluginURL."/images/bookmarkToEolin.gif"; $img2 = $pluginURL."/images/voteToEolin.gif"; $permalink = $hostURL. (isset($permalink)?$permalink:''); $ownership = false; if(true==function_exists('doesHaveOwnership')){ $ownership = doesHaveOwnership(); } if($ownership != false){ $url = "http://api.eolin.com/myEolin/getEntryInfo.js?permalink=" .rawurlencode($permalink)."&id=".불entry['id']."&log=0"; }else{ $url = "http://api.eolin.com/myEolin/getEntryInfo.js?permalink=" .rawurlencode($permalink)."&id=".불entry['id']."&log=1"; } $myeolin .= '<span class="EolinBookmarkBtn"><a href="#void" title="이올린에 책갈피" onclick="bookMarkEolin('.불entry['id']. ', ''.불permalink.'', 'bookmark');return false;"> <img src="'.불img.'" style="vertical-align:middle;" />책갈피</a> </span>'; if($entry['visibility'] == "3" && $getMyvote == 1){ $myeolin .= '(<span id="bookmarkEolin'.불entry['id'].'" class="EolinBookmarkCount">0</span>) <span class="EolinVoteBtn"><a href="#void" title="이올린에 추천하기" onclick="bookMarkEolin('.불entry['id'].',''.불permalink.'', 'vote'); return false;"> <img src="'.불img2.'" style="vertical-align:middle;" /> 추천</a></span>(<span id="voteEolin'.불entry['id']. '" class="EolinVoteCount">0</span>)'; $myeolin .= "<script language=\"JavaScript\" type=\"text/javascript\">//<![CDATA[ apiEolinURL.push(\"".불url."\"); //]]></script>"; //$myeolin .= "<script src='".불url. "' type='text/javascript' ></script>"; } $myeolin .= "</div>"; } misc::dress('myeolin_vote', $myeolin, $entryView); return $target;
내려받기
변경된 소스를 보면 알 수 있지만 전역 변수에 $entryView
를 추가하고 if($entry['visibility'] >= "2" ){
이하의 $target
를 모두 $myeolin
으로 바꾸고 return
문 앞에 misc::dress('myeolin_vote', $myeolin, $entryView);
만 추가하면 된다.
일단 이렇게 소스를 바꾼 뒤 책갈피와 추천 링크를 표시할 곳에 [ ##_myeolin_vote_## ]
치환자를 삽입하면 된다. [ ##_myeolin_vote_## ]
는 공백없이 입력해야 한다.
프로그램에 대한 지식이 전혀 없어 죽어도 소스를 패치할 수 없는 사람은 다음 링크에서 내려받아 사용하기 바란다. 나와 똑 같이 사용하고 싶다면 폴더째 올려 덮어쓰면 되고 부분적으로 패치하고 싶은 사람은 파일별로 올려서 사용하면 된다.
압축 파일에 포함된 파일은 다음과 같다.
blog/index.php 블로그 주소를 치고 들어오면 자동으로 최근글로 분기 blog/search/index.php 검색 결과에서 페이지를 한 쪽 당 글수로 표시 blog/entry/index.php 절대 주소를 문자로 한 경우 페이지내의 모든 링크를 문자로 표시 plugins/myEolin/index.php 이올린의 책갈피와 추천 링크를 치환자로 변경
관련 글타래 - 플레이톡, 완전히 까발려 주마!!! 최근 마이크로 블로그로 불리는 플레이톡이 오픈했다. 과거 PC... 새창
- 태어나서 처음으로 이벤트에 당첨됐습니다. 사람마다 다르겠지만 이벤트에 잘 당첨되는 사람이 있다. ... 새창
- 내 사이트의 검색 엔진 최적화 정도는 IP나 도메인 관련 정보를 알기 위해 방문하는 사이트가 있다.... 새창
- 태터툴즈 - 올블로그 수동 싱크 플러그인 판올림 0.3 올블로그 수동 싱크 루틴이 다시 변경되서 이전 판... 새창
- 태터툴즈 - 올블로그 수동 싱크 플러그인 판올림 오늘 글을 하나 올리려고 하니 계속 '수동 싱크 실패' ... 새창