ݿ
1ݿ
2ȫʡ
3ȫʡ


/*   ID,,ɵ˵ID,funݴԼչ,ͻǰ׺user_linkage_
 *   ֻǼӣӲͬݻȡʽ Զ$funȻд
 *   $dataǻļ飬ȷ˵棬ģֱʹá
 *   $otherԶ崫ݡ
 *   <?
        $aa=user_linkage(2);
        echo $aa[name];
 *   ?>
 * <?=user_linkage(2,0,'zcd','<li>{name}</li>')?>
 * <?=user_linkage(9,0,'path',3);?>
 */



/*********************ʵ***************************/
function user_linkage($id, $type = 0, $fun = 'dq', $other = '') {
    global $empire, $dbtbpre;
    $id = (int)$id;
    $type = (int)$type;
    $data = (int)$data;
    $fun = 'user_linkage_' . $fun;
    if (!$type) { //ȡ
        $r = $empire->fetch1("select id,type from {$dbtbpre}extend_linkage where id='$id'");
        if (!$r) {
            return FALSE;
        } else {
            $type = $r['type'] ? $r['type'] : $r['id'];
        }
    }
    $filename = ECMS_PATH . 'e/extend/yl_linkage/data/linkage_cache_' . $type . '.php';
    if (file_exists($filename)) {
        include "$filename";
        $a = 'linkage_' . $type;
        $data = $ {
            $a
        };
    }
    if (function_exists($fun)) {
        return $fun($id, $data, $other); //ִݴ
        
    } else {
        return FALSE;
    }
}
//ʹʾ1ȡIDݰչֶ
function user_linkage_dq($id, $data = '', $template) {
    global $empire, $dbtbpre;
    if (is_array($data)) { //ӻȡ
        $r = $data[$id];
    } else { //ݿȡ
        $r = $empire->fetch1("select * from {$dbtbpre}extend_linkage where id='$id'");
    }
    return $r;
}
//ʹʾ2ģӲ˵
function user_linkage_zcd($id, $data = '', $template = '<li>{name}</li>') {
    global $empire, $dbtbpre;
    if (is_array($data)) { //ӻȡ
        foreach ($data as $val) {
            if ($val[parentid] == $id) {
                $r.= str_replace('{name}', $val[name], $template);
            }
        }
    } else { //ݿȡ
        $query = "select name from {$dbtbpre}extend_linkage where parentid='$id'";
        $sql = $empire->query($query);
        while ($zcd = $empire->fetch($sql)) {
            $r.= str_replace('{name}', $zcd[name], $template);
        }
    }
    return $r;
}
//ʹʾ3·$jibie99
function user_linkage_path($id, $data = '', $jibie = 99) {
    global $empire, $dbtbpre;
    if (is_array($data)) { //ӻȡ
        $arr = explode(',', $data[$id][path]);
        $num = count($arr) - 2;
        foreach ($arr as $key => $val) {
            if ($val && $key > $num - $jibie) {
                $r.= $data[$val][name] . '-';
            }
        }
    } else { //ݿȡ
        $dqr = $empire->fetch1("select path from {$dbtbpre}extend_linkage where id='$id'");
        $allpath = substr($dqr[path], 2, -1);
        $arr = explode(',', $allpath);
        $num = count($arr);
        foreach ($arr as $key => $val) {
            if ($val && $key >= $num - $jibie) {
                $in.= $val . ',';
            }
        }
        $in = substr($in, 0, -1);
        if ($dqr) {
            $query = "select name from {$dbtbpre}extend_linkage where id in ({$in})";
            $sql = $empire->query($query);
            while ($zcd = $empire->fetch($sql)) {
                $i++;
                $r.= $zcd[name] . '-';
            }
        }
    }
    return $r . $data[$id][name];
}