웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->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
주여리 얼만이다..^^ 프리뷰는 밑에 사용법, 활용법에 있다..^^
제목 | 글쓴이 | 날짜 |
---|---|---|
간단한 퀴즈? 프로그램을 짜보자구요~^^ [4] | teenteenv | 2002.05.15 |
echo도 많이 유용하게 사용할수있습니다..^^ [14] | ZipShin | 2002.05.19 |
MYSQL에 접속하기..^^ [9] | ZipShin | 2002.05.20 |
제로카운터 한 계정에서 여러개 사용하기 [7] | 영혼 | 2002.06.01 |
총페이지의 값을 구하고 출력하기 | 불티나 | 2002.06.05 |
리스트뷰를 흉내낸 클래스 입니다.^^;; [2] | 용가리 | 2002.06.22 |
트리뷰를 흉내낸 클래스 입니다.^^;; | 용가리 | 2002.06.24 |
[PHP]간단한 로그인페이지 만들기 [15] | ZipShin | 2002.07.09 |
[추천 팁] 웹 브라우저가 한글인지 영문인지(다른 언어인지) 자동 인식하기... [1] | 박용구 | 2002.07.10 |
PHP 와 Flash 를 이용해 즉석복권을 만들어 보자. [2] | 다솜아빠 | 2002.07.10 |
(삽질완료) 다중도메인, 접속도메인따라 경로결정 [1] | nrhythm | 2002.07.25 |
[초보자] 자기 계정에 APM,Perl,PHP이 지원하는지 알아보기. [5] | ZipShin | 2002.08.01 |
[Header 이용하기 #3] 페이지 이동 [2] | )OsE= | 2002.08.01 |
TheMics의 예제와 함께하는 PHP기초(中) [1] | TheMics | 2002.08.05 |
누구나 만들수있는 게시판 [schema, write, write_ok] [10] | Mr. JH | 2002.08.21 |
누구나 만들수있는 게시판 [글목록 list.php 부분] [6] | Mr. JH | 2002.08.21 |
테이블 생성시 데이터베이스의 타입설정 [2] | Mr. JH | 2002.08.22 |
PHP에서 사용하는 간단하지만 중요한 MySQL함수들 [3] | Mr. JH | 2002.08.22 |
PHP 시간관련 함수 [3] | Mr. JH | 2002.08.22 |
PHP의 제어구조 [2] | Mr. JH | 2002.08.22 |