웹마스터 팁
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
주여리 얼만이다..^^ 프리뷰는 밑에 사용법, 활용법에 있다..^^
제목 | 글쓴이 | 날짜 |
---|---|---|
초보분들을 위한 연산자 총정리 [6] | TheMics | 2002.01.29 |
이제 PHP에 ?id=가나다라 같은것을 넣자! [12] | 담배를끊으면복이옴과 | 2002.01.30 |
이제 홈페이지 업데이트 안하는 수모를 겪지 말자! [7] | 담배를끊으면복이옴과 | 2002.02.02 |
md5() 알고리듬 [8] | 양창민 | 2002.02.05 |
원고지 함수;; [3] | 디쓰 | 2002.02.07 |
한글 필터링 정확히 하기 [1] | mini | 2002.02.09 |
필터링조금 다른거.. [7] | 두기두바 | 2002.02.10 |
좋은 난수값을 얻기위한 시드배정 방법 mt_srand(), srand() | 차카게살자 | 2002.02.21 |
제로보드 분석 -1- [4] | 제키드+_+)/ | 2002.02.21 |
PHP 소스 보이게 하기; [5] | Topy | 2002.02.21 |
in_array 함수이용한 업로드금지 [3] | 김승제 | 2002.02.21 |
date 함수의 매개 변수 | Topy | 2002.02.22 |
제로보드 분석 -2- [2] | 제키드+_+)/ | 2002.02.22 |
복잡해? 줄여! [3] | 제키드+_+)/ | 2002.02.22 |
[lib] fun 문자열속의 url에 링크를 거는 함수 [2] | Topy | 2002.02.22 |
[lib] fun. alert message (경고 메시지) [1] | Topy | 2002.02.22 |
for 문에 대한 이해, 구구단 만들어 보기. [3] | Topy | 2002.02.22 |
http://홈주소/?mode=xxx 하는방법 :) [5] | 제니 | 2002.02.23 |
[re | 씽크식 PHP] 많고 많은 페이지들을 하나로 줄이자! [2] | John Sync. | 2002.02.24 |
많고 많은 페이지들을 하나로 줄이자! [7] | 제키드+_+)/ | 2002.02.23 |