Special_kak โพสต์ 2009-8-25 16:36:30

Check Linkout for Discuz 7.0

แก้ไขล่าสุดโดย Special_kak เมื่อ 2010-1-30 19:12

แก้ไขล่าสุดโดย Special_kak เมื่อ 2010-1-30 19:11

เช็คลิงก์ตัวนี้สามารถใส่โดเมนที่ไม่ต้องการเช็คได้ เช่นถ้าผมใส่โดเมน google.com เมื่อมีลิงก์ google.com/xxx มันก็ไม่เช็คมันจะไปเลย -*- ตัวอย่าง
http://www.i7forums.com/attachment/month_0908/0908251635ca05793acca80fff.jpg

demo :: http://www.i7forums.com/read-htm-tid-493.html

การติดตั้งครับ เปิดไฟล์ /include/discuzcode.func.php หาfunction parseurl($url, $text) {
        if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {
                $url = $matches;
                $length = 65;
                if(strlen($url) > $length) {
                        $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));
                }
                return '<a href="'.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';
        } else {
                $url = substr($url, 1);
                if(substr(strtolower($url), 0, 4) == 'www.') {
                        $url = 'http://'.$url;
                }
                return '<a href="'.$url.'" target="_blank">'.$text.'</a>';
        }
}แทนด้วยโค้ดนี้function parseurl($url, $text) {
        preg_match("/.*\.(.+?)\.(.+?)$/",$_SERVER['HTTP_HOST'], $matches);
        $localurl=$matches.'.'.$matches;
        if ($_SERVER['SERVER_NAME']=='localhost') $localurl='localhost';
        if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|ed2k|thunder|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {
                $url = $matches;
                $length = 65;
                if(strlen($url) > $length) {
                        $text = substr($url, 0, intval($length * 0.5)).' ... '.substr($url, - intval($length * 0.3));
                }
                if (!strpos($url,$localurl) && linkcheck($url)){
                        return '<a href="'.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" onClick="return extendurl(this)" target="_blank">'.$text.'</a>';
                        }
                else{
                        return '<a href="'.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';
                        }
        } else {
                $url = substr($url, 1);
                if(substr(strtolower($url), 0, 4) == 'www.') {
                        $url = 'http://'.$url;
                }
                if (!strpos($url,$localurl) && linkcheck($url)){
                        return '<a href="'.$url.'" onClick="return extendurl(this)" target="_blank">'.$text.'</a>';
                        }
                else{
                        return '<a href="'.$url.'" target="_blank">'.$text.'</a>';
                        }
        }
}

function linkcheck($url){
        $whitelist=array();
        if(substr(strtolower($url), 0, 4) == 'www.') {
                        $url = 'http://'.$url;
        }
        require './linklist.php';
        $urldomain=explode("/",$url);
        $urldomain=explode(".",$urldomain);
        $urldomain=$urldomain.'.'.$urldomain;
        if (in_array($urldomain,$whitelist)){
                return 0;
        }else return 1;
}เปิดไฟล์ /include/js/common.js
เพิ่มโค้ดนี้บรรทัดสุดท้ายfunction extendurl(obj){
        var turl=obj.href;
        var title=turl.substr(0,30)+'....';
        floatwin('open_confirm', -1, 350, 120);
        $('floatwin_confirm_title').innerHTML = title;
        $('floatwin_confirm_content').innerHTML = '<font color=red>กรุณาคัดลอกลิงก์ไปวางที่แอดเดรสบาร์์</color>' + '<br /><br /><a href="'+ turl +'" target="_blank" onclick=floatwin(\'close_confirm\')><font color=green>เข้าชมเว็บนี้</font></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:;" onclick="floatwin(\'close_confirm\')">ปิด</a>';
        return false;
        }อัพโหลดไฟล์ linklist.php ไปวางที่ตำแหน่งติดตั้ง dz นะจบ

princekoong โพสต์ 2009-8-25 16:44:50

ขอบคุณครับ

prsp โพสต์ 2010-1-31 10:00:57

<?php
//ใส่โดเมนที่ไม่ต้องเซ้ค เช่น
//'google.com',
        $whitelist=array(
        'discuzthai.com',
        'google.com',
        );

ตรงนี้อ่า ใส่ไงหรอครับ

prsp โพสต์ 2010-1-31 10:39:48

แง่ง ทำไมไ่ด้ แต่ก็ขอบคุณครับ

natty-mini โพสต์ 2010-2-3 01:04:51

วันนี้รู้สึกจะเริ่มมึน ๆ กับ php แระ

การบ้าน จาวา ก็ยังไม่ได้ทำเลย   ตายแน่ ๆๆๆ :'(

rogers โพสต์ 2015-4-22 14:16:13

ขอบคุณครับ
หน้า: [1]
ดูในรูปแบบกติ: Check Linkout for Discuz 7.0