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

 

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

 

  • profile
    라라펠님 만세 ~~~~~
  • ?
    만만세~~~!!
  • profile
    만만세 ~ 이제 라라펠님만 졸라야겠어요 으흐흫
  • ?
    만만세~~~ 제가 말씀 드렸죠. 이분 좀 멋진분~
  • ?
    오랜만에 들어왓는데 좋은 팁이네요
    배포하고 있는 게시판 스킨에 적용해도 될까요?ㅎㅎ
  • ? ?

    그럼요!

    Special Thanks To 정도면 . . . (안해도 돼요)

  • ?

    skin.xml 추가항목은 그대로 복붙했고요,

    스킨 설정에 생성된 자동치환 기능 설정하고 라라펠님이 올려주신 소스

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

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

    를 넣었는데 그 이후 본문에 변화가 없네요 ㅠㅠ 

    혹시나 해서 _read.html 원본가져다가 중간 버전, 업그레이드 버전도 한번씩 넣어봤는데 안되는 것 같습니다ㅠㅠ

    계속 질문해서 죄송합니다 ㅠㅠ

  • ? ?
    기존 코드를 완전 덮어씌우셔야 합니다 ㅎㅎ...
  • ? ?
    _read.html의 {$oDocument->getContent(false);} 이 부분을 수정하고 덮어씌우는 것 말고 다른 걸 덮어 씌울 게 있나요?ㅠㅠ
  • ?
    다른게시판에서는 적용이 되는데 스케치북에서는 안되는데 이유를 알수 있을가요?
  • profile
    엄청나네요 잘작동합니다!!
    감사합니다!
    이제 게시판마다 설정만 하면 되겠네요! 설레네요 ㅎㅎ