웹마스터 팁
간단한 위키링크 흉내내기
2009.10.17 15:23
소스 코드를 수정하는 것이므로 꼭 백업하시기를 권합니다.
간단한 꼼수로 위키에서처럼 '[['와 ']]'로 감싸면 위키문서로 링크가 걸리도록 해봤습니다.
아직 XE의 위키문법 표준이 미정이라 나중에 어떻게 될지 모르기 때문에 신중하게 적용 바랍니다.
위키 게시판 mid가 wiki라고 가정하면
modules/document/document.item.php 298라인 쯤에 다음을 찾아
// resource_realpath가 true이면 내용내 이미지의 경로를 절대 경로로 변경
if($resource_realpath) {
$content = preg_replace_callback('/<img([^>]+)>/i',array($this,'replaceResourceRealPath'), $content);
}
이 밑에다 아래처럼 추가합니다.
// resource_realpath가 true이면 내용내 이미지의 경로를 절대 경로로 변경
if($resource_realpath) {
$content = preg_replace_callback('/<img([^>]+)>/i',array($this,'replaceResourceRealPath'), $content);
}
// 위키링크 처리
$wikilink_pattern = '/\[\[\[(.+?)\\]\]\]/i';
$content = preg_replace($wikilink_pattern,'<a href="\"?mid=wiki&entry=\\1\'>\\1</a>',$content);
이렇게 하면 전 게시판에서 [[소녀시대]] 라고 입력하면 '+ '+ '소녀시대'라는 위키 문서로 링크됩니다.
만약 wiki 게시판에만 적용하고자 한다면 위의 두 줄을 아래처럼 바꿉니다.
// 위키게시판에서만 위키링크 처리
$mid = Context::get('mid');
if($mid == "wiki") {
$wikilink_pattern = '/\[\[\[(.+?)\\]\]\]/i';
$content = preg_replace($wikilink_pattern,'<a href="\"?mid=wiki&entry=\\1\'>\\1</a>',$content);
}