웹마스터 팁

class ListView{
/*----------------------------------------------------------------------------*/
//  Class Name : TreeView                                                      /
//  Date  : 2002. 6. 22                                                        /
//  Coder : 이용회                                                             /
//  Homepage : http://www.sjbiz.net (개인 홈페이지는 아직 없음.)               /
//  eMail : lyh4612@hanmail.net                                                /
//  하고 싶은 말 : 우헤헤... 트리뷰 만든김에 리스트뷰까정...                   /
//                 머 수정해서 쓰시는건 상관 없는데 고칠점 있음 알려주세영 ^^  /
//                 그리고 수정하시면 저도 좀 보내주시구영..^^                  /
//                                                                             /
//                      그럼 즐프~~~~~ ^______________^                        /
/*----------------------------------------------------------------------------*/
        var $tHead;

        var $showHeaders=true; //제목 보이기/감추기
        var $posX; //리스트뷰 X위치
        var $posY; //리스트뷰 Y위치
        var $width; //리스트뷰 넓이
        var $BGColor; //리스트뷰 내용 배경색
        var $uLine; //밑줄 여부

        var $IMG=array("img/blank.gif"); //+, - 이미지 저장

        var $ITEMHEAD=array(array(
                "Index",
                "Text",
                "Width",
                "Align"));
        var $HeadCount=0;

        var $ITEM=array(array(
                "Index",
                "Key",
                "Text",
                "Anc",
                "Icon Index"));
        var $ItemCount=0;

        var $loadStr; //리스트뷰 내용 담는 변수

        function ListView($x="30", $y="30", $width="250", $bg="ffffff", $uLine=false,$bHeader=true){
                $this->posX=$x;
                $this->posY=$y;
                $this->width=$width;
                $this->uLine=$uLine;
                $this->BGColor=$bg;
                $this->showHeaders=$bHeader;
        }

        function setPos($x, $y){ //위치 설정
                $this->posX=$x;
                $this->posY=$y;
        }

        function setWidth($width){ //크기 설정
                $this->width=$width;
        }

        function setTBGColor($bg){ //리스트뷰 배경색
                $this->BGColor=$bg;
        }

        function setUnderLine($bool=true){ //밑줄 설정
                $this->uLine=$bool;
        }

        function addIcon($img){ //아이콘 이미지 삽입
                array_push($this->IMG, $img);
        }

        function showHeaders($b=true){ //타이틀바 보이기/감추기
                $this->showHeaders=$b;
        }

        function setFont($style="333333|none,333333|none"){
                $sArr=array(array("color","decoration"));
                $aTmp=explode(",", $style);
                while(list(, $val)=each($aTmp)){
                        $tmp=explode("|", $val);
                        array_push($sArr, $tmp);
                }
                $this->tHead="
<style>
.TDLview {font-size:9pt; line-height:140%; font-family:굴림, tahoma, verdana, 돋움; color:#333333;}
A:link.ListView    {text-decoration:{$sArr[1][1]}; color:{$sArr[1][0]};}
A:visited.ListView {text-decoration:{$sArr[1][1]}; color:{$sArr[1][0]};}
A:active.ListView  {text-decoration:{$sArr[1][1]}; color:{$sArr[1][0]};}
A:hover.ListView   {text-decoration:{$sArr[2][1]}; color:{$sArr[2][0]};}

.TDSubject1 {background-color:d6d3ce; border-bottom:1px solid #848284;
             border-right:1px solid #848284; cursor:default; padding-top:3px;
             font-size:9pt; font-family:굴림, tahoma, verdana, 돋움;
             color:#333333;}

.TDSubject2 {background-color:d6d3ce; border-bottom:1px solid #848284;
             border-right:1px solid #848284; border-left:1px solid #ffffff;
             cursor:default; padding-top:3px; font-size:9pt;
             font-family:굴림, tahoma, verdana, 돋움; color:#333333;}

.TDSubject3 {background-color:d6d3ce; border-bottom:1px solid #848284;
             border-left:1px solid #ffffff; cursor:default;
             padding-top:3px; font-size:9pt;
             font-family:굴림, tahoma, verdana, 돋움; color:#333333;}
</style>";
        }

        function AddHeads($index, $str, $width="", $align="left"){
                if($index=="" && $str==""){
                        echo "$index : $str";
                        return false;
                }

                array_push($this->ITEMHEAD, array($index, $str, $width, $align)); //ITEM에삽입
                $this->HeadCount++;
                return true;
        }

        function Add($index, $key, $str="", $anc="#", $Icon=0){ //ITEM 추가
        //인자 : 순차, 키값, 텍스트, 링크, 아이콘 번호
                if($this->HeadCount < $index){ //헤드 인덱스 갯수 검사
                        echo("입력된 인덱스 값 : $index<br>인덱스값이 잘못 입력되었습니다.!!"); return false;
                }

                if(sizeof($this->IMG)<$Icon){ //아이콘 인덱스 검사
                        echo("입력된 이미지 인덱스 값 : $Icon<br>이미지 인덱스값이 잘못 입력되었습니다.!!"); return false;
                }

                array_push($this->ITEM, array($index, $key, $str, $anc, $Icon)); //ITEM에 삽입
                $this->ItemCount++;
                return true;
        }

        function array_unique($arr, $ndx){ //2차원 배열의 중복값을 찾아준다.
        //인자 : 원본 배열, 검색 인덱스 값
                $in=0; //새로운 배열의 인자값을 저장
                $cArr=current($arr);
                for ($i=0;$i<sizeof($arr);$i++){
                        $nArr=next($arr);
                        if ($nArr[$ndx]!=$cArr[$ndx]){
                                $newArr[$in]=$cArr;
                                $cArr=current($arr);
                                $in++;
                        }
                } return $newArr;
        }

function findValur($ndx, $key){ //배열 위치 검색.
//인자 : 인덱스 값, 키값
                for ($i=1;$i<$this->ItemCount;$i++)
                        if($this->ITEM[$i][0]==$ndx && $this->ITEM[$i][1]==$key) return $i;
}

        function Refresh($debug=false){ //리스트뷰 생성/출력
        //인자 : true=모든 입력 자료 출력
                if(sizeof($this->ITEM)<2)return 1;
                $startTime=time(); //처리 시작 시간
                if($this->tHead=="")$this->setFont(); //스타일 정의가 안 되어 있으면 실행한다.
                $this->loadStr="
<div id='remoteList' style='position:absolute; left:{$this->posX}px; top:{$this->posY}px;'>
<table border='0' cellpadding='0' cellspacing='0' width='$this->width'>
<tr>
        <td style='border:1px solid #848284;'>
                <table border='0' cellpadding='0' cellspacing='0' width='100%' style='border-top:1px solid #424142; border-left:1px solid #424142;'>";

                if($this->showHeaders){ //제목 보이기일 경우일 경우 처리
                        $this->loadStr.="                <tr>";
                        $endHead=$this->HeadCount-1;
                        for($i=1;$i<=$this->HeadCount;$i++){ //제목 입력
                                if($this->ITEMHEAD[$i][0]==0) $this->loadStr.="
                        <td colspan='2' width='{$this->ITEMHEAD[$i][2]}' align='{$this->ITEMHEAD[$i][3]}' class='TDSubject1'> {$this->ITEMHEAD[$i][1]} </td>";
                                else if($this->ITEMHEAD[$i][0]==$endHead) $this->loadStr.="
                        <td width='{$this->ITEMHEAD[$i][2]}' align='{$this->ITEMHEAD[$i][3]}' class='TDSubject3'> {$this->ITEMHEAD[$i][1]} </td>";
                                else $this->loadStr.="
                        <td width='{$this->ITEMHEAD[$i][2]}' align='{$this->ITEMHEAD[$i][3]}' class='TDSubject2'> {$this->ITEMHEAD[$i][1]} </td>";
                        }
                        $this->loadStr.="n                </tr>";
                }

                $loop=$this->ItemCount/$this->HeadCount;
                $uItem=$this->array_unique($this->ITEM, 1); //아이템의 중복값을 뺀 값
                for($i=1;$i<$loop;$i++){ //아이템 갯수만큼 반복
                        $this->loadStr.="n                <tr>";
                        for($j=1;$j<=$this->HeadCount;$j++){ //아이템 입력
                                $n=$this->findValur($j-1, $uItem[$i][1]);
                                //밑줄 설정
                                if($this->uLine) $dot=" style='padding-top:1px; background-image:url(img/dot.gif); background-repeat:repeat-x; background-position:bottom bottom;'";
                                else $dot=" style='padding-top:1px;'";

                                if($j==1){ //첫번째 필드에 이미지 설정
                                        $txt="<a href={$this->ITEM[$n][3]} class='ListView' onfocus='this.blur();'><img src='+ '{$this->IMG[$this->ITEM[$n][4]]}' style='border:0px;' width='16'height='16' align='center'></a></td>
                        <td bgcolor='$this->BGColor' align='{$this->ITEMHEAD[$j][3]}' valign='top'$dot class='TDLview'>
                                        <a href={$this->ITEM[$n][3]} class='ListView' onfocus='this.blur();'>{$this->ITEM[$n][2]}</a>";
                                        $wd="23";
                                }else{
                                        $txt=$this->ITEM[$n][2];
                                        $wd="";
                                }

                                $this->loadStr.="
                        <td width='$wd' bgcolor='$this->BGColor' align='{$this->ITEMHEAD[$j][3]}'valign='top'$dot class='TDLview'>
                                 {$txt} </td>";
                        }
                        $this->loadStr.="n                </tr>";
                }
                $this->loadStr.="
                </table>
        </td>
</tr>
</table>
</div>";
                echo($this->tHead.$this->loadStr);
                if($debug)$this->ITEMPrint($startTime);
        }

        function ITEMPrint($startTime){ //입력한 모든 내용을 출력
                echo("
                <table border='0' cellspacing='1' cellpadding='3' bgcolor='666666'>
                <tr>
                        <td colspan='8' align='center' bgcolor='ffffff' class='TDLview'><b>리스트뷰에 입력하신 모든 내용입니다.</b></td>
                </tr>
                <tr>
                        <td align='center' bgcolor='ffffff' class='TDLview'>No</td>
                        <td align='center' bgcolor='ffffff' class='TDLview'>Index</td>
                        <td align='center' bgcolor='ffffff' class='TDLview'>Key</td>
                        <td align='center' bgcolor='ffffff' class='TDLview'>Text</td>
                        <td align='center' bgcolor='ffffff' class='TDLview'>Anc</td>
                        <td align='center' bgcolor='ffffff' class='TDLview'>Icon Index</td>
                </tr>");
                for($i=1;$i<sizeof($this->ITEM);$i++){ echo("
                <tr>
                        <td bgcolor='ffffff' align='right' valign='top' class='TDLview'>$i </td>
                        <td bgcolor='ffffff' valign='top' class='TDLview'> {$this->ITEM[$i][0]} </td>
                        <td bgcolor='ffffff' valign='top' class='TDLview'> {$this->ITEM[$i][1]} </td>
                        <td bgcolor='ffffff' align='center' valign='top' class='TDLview'> {$this->ITEM[$i][2]} </td>
                        <td bgcolor='ffffff' valign='top' class='TDLview'> {$this->ITEM[$i][3]} </td>
                        <td bgcolor='ffffff' align='right' valign='top' class='+ 'TDLview'>{$this->ITEM[$i][4]} </td>
                </tr>");
                } $endTime=time(); //처리 종료 시간
                $pTime=$endTime-$startTime; //처리 시간
                echo("
                <tr>
                        <td colspan='8' bgcolor='ffffff' class='TDLview'>  ::: Process Time : $pTime sec.</td>
                </tr>
                </table>");
        }
}
제목 글쓴이 날짜
[추천 팁] 폴더내의 파일중에서 특정정보만 뽑아오기. [2] M2Vis 2002.07.12
[추천 팁] 파일의 최종접근시간과 파일의 수정시간을 알려주는 함수 [2] ssukai 2002.07.10
PHP 와 Flash 를 이용해 즉석복권을 만들어 보자. [2] 다솜아빠 2002.07.10
[추천 팁] 웹 브라우저가 한글인지 영문인지(다른 언어인지) 자동 인식하기... [1] 박용구 2002.07.10
[PHP]간단한 로그인페이지 만들기 [15] ZipShin 2002.07.09
php소스를 윈도우 실행파일로 만드는 컴파일러 있나요? [2] 소우리 2002.07.08
배경그림과 글자색상,배경색상을 지정해주는 php스크립트 [2] ZipShin 2002.07.07
echo를 처음사용하시는 초보들에게... [10] ZipShin 2002.07.06
HTML 태그 메일 전송하기 [2] ZipShin 2002.07.06
EMail 주소 검사하기 [6] ZipShin 2002.07.06
트리뷰를 흉내낸 클래스 입니다.^^;; 용가리 2002.06.24
위 짜가리 클래스 활용 1 (FTP 디렉토리 트리뷰) 용가리 2002.06.24
위 짜가리 클래스 활용 1 (디렉토리 트리뷰) 용가리 2002.06.24
트리뷰를 흉내낸 클래스 사용법 입니다.^^;; 용가리 2002.06.24
리스트뷰를 흉내낸 클래스 입니다.^^;; [2] 용가리 2002.06.22
위의 리스트뷰 흉내낸 클래스 활용법 입니다.^^; [1] 용가리 2002.06.22
위의 리스트뷰 흉내낸 클래스 사용법 입니다.^^; 용가리 2002.06.22
php에서 GD를 이용한 3차원 막대 그래프 입니다. [4] 용가리 2002.06.22
리눅스로 쉘 프로그래밍 할때 [1] OsE= 2002.06.19
[mysql] 하나 더 추가요. 역시 별로 쓸대 없는거... 불티나 2002.06.18