function url_auto_link() 변경을 어떻게 해야 될까요. ㅠㅠ > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

function url_auto_link() 변경을 어떻게 해야 될까요. ㅠㅠ 정보

function url_auto_link() 변경을 어떻게 해야 될까요. ㅠㅠ

본문

게시판에 예를들어

http://naver.com 이라고 적었을때 링크를 자동으로 걸어주는것이 url_auto_link()함수 인것은 알겠습니다.

함수사용시 <a href="http://naver.com" target="_blank">http://naver.com</a> 이렇게 바뀌는데..
중간에 rel="nofollow"을 추가 하고 싶어서 아래와 같이 함수를 수정하여 성공했습니다.
그럼 이렇게 출력됩니다.<a href="http://naver.com" rel="nofollow" target="_blank">http://naver.com</a>

그런데 문제는 에디터로 삽입을 하거나 html로 처음부터 <a href="http://naver.com" target="_blank">http://naver.com</a> 이렇게 넣은것도 중간에 rel="nofollow" 추가하고 싶은데 하루종일 삽질해도 안됩니다. 초보가 너무 삽질해도 안되서 이 답답한 마음을 해결해주실분께 간절히 도움요청드립니다. 이마음 아실겁니다.ㅠㅠ 원래부터 링크가 걸려있는것에 어떻게해야 중간에 넣을수 있을까요? 부탁드리겠습니다.


function url_auto_link($str)
{
    global $g4;
    global $config;

    // 속도 향상 031011
    $str = preg_replace("/&lt;/", "\t_lt_\t", $str);
    $str = preg_replace("/&gt;/", "\t_gt_\t", $str);
    $str = preg_replace("/&amp;/", "&", $str);
    $str = preg_replace("/&quot;/", "\"", $str);
    $str = preg_replace("/&nbsp;/", "\t_nbsp_\t", $str);
    $str = preg_replace("/([^(http:\/\/)]|\(|^)(www\.[^[:space:]]+)/i", "\\1<A HREF=\"http://\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
    //$str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,]+)/i", "\\1<A HREF=\"\\2\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
    // 100825 : () 추가
    // 120315 : CHARSET 에 따라 링크시 글자 잘림 현상이 있어 수정
    if (strtoupper($g4['charset']) == 'UTF-8') {
        $str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
    } else {
        $str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" rel=\"nofollow\" TARGET='$config[cf_link_target]'>\\2</A>", $str);
    }
    // 이메일 정규표현식 수정 061004
    //$str = preg_replace("/(([a-z0-9_]|\-|\.)+@([^[:space:]]*)([[:alnum:]-]))/i", "<a href='mailto:\\1'>\\1</a>", $str);
    //$str = preg_replace("/([0-9a-z]([-_\.]?[0-9a-z])*@[0-9a-z]([-_\.]?[0-9a-z])*\.[a-z]{2,4})/i", "<a href='mailto:\\1'>\\1</a>", $str);
    $str = preg_replace("/\t_nbsp_\t/", "&nbsp;" , $str);
    $str = preg_replace("/\t_lt_\t/", "&lt;", $str);
    $str = preg_replace("/\t_gt_\t/", "&gt;", $str);

    return $str;
}



  • 복사

댓글 전체

url_auto_link()에서 수정한 것은 원래대로 돌려놓으세요
view.skin.php 하단 자바스크립트 부분에 아래 코드를 넣으세요(어떤 용도로 사용하는 것인지 상세한 설명이 있어야..)

$(function(){
 $('#writeContents a').each(function() {
  $(this).attr('rel','nofollow');
});
}
균이님 감사합니다. 사용용도는 wr_content 내용에 링크가 들어간 태그가 있으면 링크태그 중간에 rel="nofollow"를 넣고 일반주소만 넣을시 오토링크가 걸리되 오토링크에도 rel="nofollow"를 싶어서 입니다. 결론적으로 내용안에 링크가 있으면 rel="nofollow"를 넣고 싶습니다.
view.skin.php 하단에 넣었는데 안되는것 같습니다. 그리고 스킨마다 변경해야되는데 스킨을 변경하지 않고 모두 적용되게 하고 싶습니다. 균이님께 여러번 도움받았는데 초보에게 빛을 주시는 너무너무 감사하고도 감사한분이십니다.
view.skin.php 하단에 넣었는데 안되는것 같습니다.<--- 안되는 것 같다는 것이 혹시 소스보기 하면
rel=~~이게 안보인다는 얘기는 아닌가요?
소스보기하면 소스에 나오지는 않지만 a태그에 rel 속성을 추가하는 코드입니다
그래서 용도를 설명해야 한다는 것입니다
저렇게하면 url_auto_link()함수에서 한 것과 같은 효과가 됩니다
균이님 답변을 목놓아 기다리고 있었다는 너무 감사합니다.
그런데 게시판마다 변경하지 않으려면 tail.php나 tail.sub.php에 아래같이 넣으면 전체에 적용이 될까요?
적용되었는지 확인할수 있는방법은 없는지요?

<script language="JavaScript">
$(function(){
 $('#writeContents a').each(function() {
  $(this).attr('rel','nofollow');
});
}
</script>
tail.php에 넣으려면 아래처럼 하세요
모든 게시판 뷰페이지에 적용됩니다

<?if($bo_table && $wr_id){?>
<script type='text/javascript'>
$(function(){
 $('#writeContents a').each(function() {
  $(this).attr('rel','nofollow');
});
}
</script>
<?}?>
© SIRSOFT
현재 페이지 제일 처음으로