팁/튜토리얼

https://xetown.com/rxe_tip/913522

위 팁의 연계 팁입니다.

 

이거 매번 소스넣고 고치기 힘들죠.

 

이제 게시판 관리 페이지 내에서 관리할 수 있도록 수정해 봅시다.

 

skin.xml 을 열어서 아래 내용을 extra_vars에 추가해 줍니다. (게시판 스킨 폴더에 있음)

 

<extra_vars>
    <group>
        <title xml:lang="ko">게시물 단어 링크 자동 치환</title>
        <var name="autoreplace_use" type="select">
            <title xml:lang="ko">치환 기능 사용</title>
            <options value="Y">
                <title xml:lang="ko">사용</title>
            </options>
            <options value="">
                <title xml:lang="ko">사용하지 않음</title>
            </options>
        </var>
        <var name="autoreplace_text" type="textarea">
            <title xml:lang="ko">치환 문자 *( ',' 로 구분 줄바꿈으로 새 규칙)</title>
        </var>
    </group>

 

대충(?) 이렇게 설정을 추가해줍시다.

 

new.png

 

잘 뜨는군요.

 

그럼 이제 _read.html을 그에 맞게 수정할 시간입니다.

 

{@$content_ = $oDocument->getContent(false)}
<!--@if($module_info->autoreplace_use == 'Y')-->
{@
    $pregs = explode("\n", $module_info->autoreplace_text);
    print_r($pregs);
}
<!--@else-->
{$content_}
<!--@end-->

 

우선 잘 되는지 확인해 봅시다. 설정을 '사용'으로 바꾸고 아래 내용을 넣어봅시다.

"/스킨/", "<a href=\"#\">$0</a>"

"/위젯/", "<a href=\"#\">$0 !</a>"

 

잘 됐다면

이렇게 본문 대신 이게 뜰겁니다.

 

cont.PNG

 

그리고 업그레이드를 해줍니다.

정말로 치환이 잘 되도록 말이죠.

 

{@$content_ = $oDocument->getContent(false)}
<!--@if($module_info->autoreplace_use == 'Y')-->
{@
    $pregs = explode("\n", $module_info->autoreplace_text);
    $items = array();
    foreach($pregs as $key=>$val)
        preg_match_all("/\"(.+)\"(?:\s*?),(?:\s*?)\"(.+)\"(?:\s+?|)/", $val, $items[$key]);
    
    foreach($items as $key=>$val)
        $content_ = preg_replace($val[1], $val[2], $content_);
}
{$content_}
<!--@else-->
{$content_}
<!--@end-->

 

그럼 어떻게 됐을까요?

 

result.PNG

 

크으~ 완성되었습니다. 제대로 변경되고 있는게 보이시나요? 매번 소스코드 고치기 힘드니까 설정으로 빼보도록 해요.

 

댓글 11