XpressEngine에 관련 내용에 대해서 이야기 합니다.
글 수 193
[패치] 퍼머링크 주소를 번호가 아닌 문자로 생성해 주는 애드온 입니다.
조회 수:4866
댓글:1
등록일:2008.08.07 17:11:08 (*.234.236.247)
[알림] zbXE1.0.3 릴리즈로 인하여 Entry 애드온도 패치가 되었습니다.
기존 사용자들은 entry_path.zip을 기존꺼에 그대로 덮어씌워 주시면 되겠습니다.
기존 사용자들은 entry_path.zip을 기존꺼에 그대로 덮어씌워 주시면 되겠습니다.
예전에 zbXE 퍼머링크 달기라고 팁을 하나 올렸었는데요.
그걸 중심내용을 건드리지 않고 애드온으로 제작해 보았습니다.
위 제목이 무슨 말이냐 하면
http://www.animeclub.net/zbXE/57447 의 주소를
http://www.animeclub.net/zbXE/entry/[패치]-퍼머링크-주소를-번호가-아닌-문자로-생성해-주는-애드온-입니다 의 주소로 사용 할 수 있도록 해주는 겁니다.
(여기서 출력하면 주소창에는 urldecode() 처리가 되질 않아서 깨지네요... 복사해서 붙여넣기 후 열어보세요)
이런 방식은 '텍스트큐브' 에서 사용 하는 방식으로 zbXE에서도 사용할 수 있도록 구현해 봤습니다.
설치는 entry.zip 파일을 받으셔서 압축을 푸신 후 제로XE/addons 폴더 안에 복사해주세요
특수문자 제거 위 설정 화면 처럼 기본 특수문자 설정 이외의 문자들을 잘라낼수 있도록 특수문자를 추가할 수 있도록 하였습니다.
구분은 <> 으로 해주시면 됩니다.
(특수문자 구분 기호를 처음에 |@|로 하였는데 a|@|b 이렇게 적어놓으면 Array로 변해버리네요.)
Entry 구분기호 기본적으로 entry/ 라는 이름이 무난하다고 봤습니다.
@나 : 등 다른 특수문자등도 사용 가능합니다.
그리고 이 기능을 설정 후에는 .htaccess 의 제일 하단에 아래의 내용을 추가해주세요.
# Entry link
RewriteRule ^구분기호(.*)$ ./index.php?entry=$1 [L]
RewriteRule ^([a-zA-Z0-9_]+)/구분기호(.*)$ ./index.php?mid=$1&entry=$2 [L]
주소 접근식은 'http://도메인/모듈/구분기호Entry이름' 입니다.
또한, rewrite mod가 사용 불가능한 계정에서는 'http://도메인/?구분기호Entry이름' 이런식으로 접근 하실 수 있습니다.
위 부분이 설정이 되셨다면 게시판 등에서 위 주소로 바뀔 수 있도록 한가지 더 소스를 수정해주셔야 합니다.
예) 게시판 리스트 출력 소스
제로XE/modules/board/skins/xe_board/style_list.html
기존 : getUrl 로 검색해서 찾아봐주세요 ^^
{getUrl('document_srl',$document->document_srl, 'listStyle', $listStyle, 'cpage','')}
변경 : 애드온에 함수가 있으며 위 getUrl 함수를 적절히 변형시켜줍니다.
{procEntryTitle($module_info->mid, $document->get('extra_vars20'), $document->document_srl, $listStyle, $page)}
위 방식으로 공지사항 주소 및 게시물 링크 주소를 바꿔주시면 입력 주소형태 및 rewrite mod 여부에 따라 출력 되도록 하였습니다.
Entry 주소는 일단 xe_modules 테이블 에서 extra_vars20으로 임의로 설정하였습니다.
게시판 설정에서 20번째를 활성화하시면 제목이 아닌 원하시는 이름으로 퍼머링크 주소를 만드실 수 있습니다.
만약 활성화가 되지 않았다면 글 작성 시 게시물의 제목이 퍼머링크로 변형되어 입력 됩니다.
주의1) procEntryTitle() 함수를 쓴상태에서 애드온이 '미사용'일 경우 화면이 출력되지 않습니다.
주의2) 타 애드온 등과의 호환성은 아직 제대로 확인이 되질 않았습니다. 버그등이 있다면 알려주시면 수정하도록 하겠습니다.