웹마스터 팁
page_full_width">
리스트뷰를 흉내낸 클래스 입니다.^^;;
2002.06.22 10:00
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>");
}
}
/*----------------------------------------------------------------------------*/
// 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
-
주여리
2002.06.23 23:34
-_-; 요놈봐라. 이거 뭐꼬.... 드뎌 엔지오 데뷰냐? 프리뷰는 없는것이여? -
용가리
2002.06.24 15:32
주여리 얼만이다..^^ 프리뷰는 밑에 사용법, 활용법에 있다..^^
제목 | 글쓴이 | 날짜 |
---|---|---|
[추천 팁] 폴더내의 파일중에서 특정정보만 뽑아오기. [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 |