그누보드 추천트리 (회원조직도) 수정

그누보드 추천트리 (회원조직도) 수정

QA

그누보드 추천트리 (회원조직도) 수정

답변 2

본문

안녕하세요
항상 고수님들의 도움을 받고 있는 애용자입니다

개별회원에게 생성된 링크로 하위회원이 가입하면 자동으로 추천 트리가 형성되는 <추천 트리도>를 운영하고 있습니다


아래 그림과 같은 형식으로 표현됩니다

 

1040037313_1593190831.4336.jpg

 

 

그런데 회원이 증가하다보니 너무 꼬리를 물고 모든회원이 표현되어
각 회원은  자신으로 부터 12대까지만 표현되도록 하고,
다만 최고 관리자는 전체 계보를 볼수 있도록 수정하고 싶은데 어디를 손대야 할지 모르겠습니다
조언을 부탁드립니다
감사합니다

 

1) 추천트리 스킨 php 입니다
 

<?php
if(!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>

<!-- 트리조직도 시작 { -->
<table class="wfull">
<tr>
    <td class="vat w200">
        <?php 
        @include_once(G5_PATH.'/mypage_left.php');
        ?>
    </td>    
    <td class="vat padl10">
        <div id="mypage">
        <h1><span>마이페이지 (<?php echo $g5['title']; ?>)</span></h1>
        
        <h3>[하위회원 트리조직도]</h3>
        </div>
        <div class="local_ov">
            <?php if($config['cf_mytree_blind']) { ?>
            ※ 회원 정보보호를 위해 <strong>아이디</strong>를 공개하지 않습니다.
            <?php } else { ?>
       
            <?php } ?>    
        </div>
            
        <div class="wfull">
            <?php
            function mb_tree($mb_recommend, $level, $line_array, $pre_cnt=0)
            {
                global $g5, $member;

                $sql = "select count(*) as cnt from {$g5['member_table']} where mb_recommend = '$mb_recommend' ";
                $row = sql_fetch($sql);    
                $total_count = $row['cnt'];

                $sql = "select * from {$g5['member_table']} where mb_id = '$mb_recommend' ";        
                $row = sql_fetch($sql);
                
                $blank = "";
                for($i=0; $i<($level-1); $i++){
                    if($line_array[$i]==0)
                        $blank .="       ";
                    else {
                        $blank .= "<img src='/img/tree/line.gif'> ";
                    }
                }

                if($level!=0) {
                    if($pre_cnt==0){
                        if($total_count==0)
                            $blank .= "<img src='/img/tree/join1.gif'> ";
                        else
                            $blank .= "<img src='/img/tree/minus1.gif'> ";
                    } else {
                        if($total_count==0)
                            $blank .= "<img src='/img/tree/join2.gif'> ";
                        else
                            $blank .= "<img src='/img/tree/minus2.gif'> ";
                    }                
                }        

                echo '<tr height="15"><td nowrap>';

                $r = sql_fetch("select * from {$g5['member_table']} where mb_id = '$mb_recommend' ");
                $mb_level = get_level($r['mb_level']);
                $mb_hp = hyphen_hp_number($r['mb_hp']);

                $sql2 = "select count(*) as cnt 
                           from {$g5['member_table']} 
                          where mb_recommend = '$mb_recommend' ";
                $row2 = sql_fetch($sql2);    
                $member_count = $row2['cnt'];

                if($member_count > 0) { $sly = 'fc_547'; } else { $sly = 'fc_red'; }
                if($mb_recommend == $member['mb_id']) { 
                    $mb_id = $mb_recommend; 
                } else { 
                    if($config['cf_mytree_blind']) {
                        $mb_id = get_id_blind($mb_recommend); 
                    } else {
                        $mb_id = $mb_recommend; 
                    }
                }

                echo $blank.'<strong>'.$r['mb_name'].' <span class="'.$sly.'">('.$member_count.')</span></strong>  |  '.$mb_id;

                echo '</td></tr>';
                if($total_count <= 0)
                    return;

                $pre_cnt = $total_count;
                $sql = "select mb_id 
                          from {$g5['member_table']} 
                         where mb_recommend = '$mb_recommend' order by mb_no asc ";                
                $result = sql_query($sql);
                while($row = sql_fetch_array($result)) 
                {                    
                    $pre_cnt--;
                    
                    if($pre_cnt == 0)
                        $line_array[$level] = 0;
                    else
                        $line_array[$level] = 1;
                
                    mb_tree($row['mb_id'], $level+1, $line_array, $pre_cnt);
                }
            }
            ?>
            <div style="width:786px;border:1px #cfd6e6 solid;table-layout:fixed;">
                <div style='overflow-x:auto; overflow-y:auto;width:100%;min-height:400px;'>
                    <table class="wfull">
                    <tr>
                        <td style='padding:12px'>
                            <div style='padding:3px 0 0 0'>
                            <table>
                            <?php    
                            $line_array = array();
                            mb_tree($member['mb_id'], 0, $line_array);
                            ?>
                            </table>
                            </div>
                        </td>
                    </tr>
                    </table>
                </div>
            </div>
        </div>
    </td>    
</tr>
</table>
<!-- } 트리조직도 끝 -->

이 질문에 댓글 쓰기 :

답변 2

코드를 테스트해 보기전에는 어렵겠지만,  대충 봤을 때 2가지 방법이 있을 것 같습니다.

1. SQL에서 읽어 올때 회원 최대 12개까지 읽어 오는 방법과 Admin은 전체를 다 읽고

 

2. 다 읽어오고 화면에 표시할 때,   회원은 12개로 정해주는 방법이 있을 것 같습니다.

아마도 $pre_count = 12 로

답변을 작성하시기 전에 로그인 해주세요.
전체 3
© SIRSOFT
현재 페이지 제일 처음으로