2007. 6. 29. 15:43

자바스크립트로 쿠키 처리


<script language="javascript" type="text/javascript">
function GetCookie (name) {
 var arg = name + "=";
 var alen = arg.length;
 var clen = document_.cookie.length;
 var i = 0;
 while (i < clen) {
  var j = i + alen;
  if (document_.cookie.substring(i, j) == arg)
   return getCookieVal (j);
  i = document_.cookie.indexOf(" ", i) + 1;
  if (i == 0) break;
 }
 return null;
}


function SetCookie (name, value) {
 var argv = SetCookie.arguments;
 var argc = SetCookie.arguments.length;
 var expires = (argc > 2) ? argv[2] : null;
 var path = (argc > 3) ? argv[3] : null;
 var domain = (argc > 4) ? argv[4] : null;
 var secure = (argc > 5) ? argv[5] : false;

 if(expire) {
   todayDate.setDate(todayDate.getDate() + expires);
 }

 document_.cookie = name + "=" + escape (value) +
 ((expires == null) ? "" : ("; expires=" + todayDate.toGMTString())) +
 ((path == null) ? "" : ("; path=" + path)) +
 ((domain == null) ? "" : ("; domain=" + domain)) +
 ((secure == true) ? "; secure" : "");
}


function DeleteCookie (name) {
 var exp = new Date();
 exp.setTime (exp.getTime() - 1);
 var cval = GetCookie (name);
 document_.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
} 
</script>

2007. 6. 29. 15:42

팝업창 화면 크기에 맞게 띄우기


<script language="javascript" type="text/javascript">
function resizeWindow(){
  if(document.all)
  { 
    var x = (document.body.scrollWidth  > 1000) ? 1000 : document.body.scrollWidth;
    var y = (document.body.scrollHeight > 700)  ? 700  : document.body.scrollHeight;
    x -= document.body.clientWidth;
    y -= document.body.clientHeight;
    window.resizeBy(x, y);
  }
}

resizeWindow();
</script>

2007. 6. 29. 15:41

팝업창 화면 중앙에 띄우기



<script language="javascript" type="text/javascript">
function MoveCenterWindow(){
  var cx = document.body.clientWidth;
  var cy = document.body.clientHeight;
  var sw = screen.availWidth;
  var sh = screen.availHeight;
  var px = (sw-cx)/2;
  var py = (sh-cy)/2

  window.moveTo(px, py);
}

MoveCenterWindow();
</script>

2007. 6. 29. 15:37

PEAR Pager Class 간단 메뉴얼

Pager 는 말그대로 페이징 클래스입니다.

설치방법은 php 설치 디렉토리에서

pear install Pager 엔터 하면 설치가 되고

사용은 require_once 'Pager/Pager.php'; 하시고 쓰시면 되겠습니다.

사용방법은 단순히 인스턴스 생성시 파라메타로 설정값을 넘기면

페이징 링크를 생성해서 사용할수 있는 아주~ 간단한 클래스입니다.

사용예제는 아래와 같습니다.


<?php
$params = array(
    'mode'      => 'Jumping',
    'extraVars' => array('sType' => $sType, 'sString' => $sString),
    'totalItems'  => (int)$total,
    'delta'  => 10,
    'perPage' => 30,
    'prevImg' => '[◀]',
    'nextImg' => '[▶]',
    'firstPageText' => '맨처음',
    'lastPageText' => '마지막',
    'curPageLinkClassName' => 'pagerStyle'
);
$pager =& Pager::factory($params);
$page =& $pager->getLinks(); 
?>

이렇게 만들면 $page에 배열로된 링크가 만들어져 리턴됩니다.
그걸 뿌려주기만 하면 끝이죠. 옵션에 관한 설명은 아는거만 ^^;

itemData [array] -
페이징에 사용할 내용 전체를 배열로 넣을수 있습니다.
그럼 배열의 총수가 total 이 되는거죠.

totalItems [integer]-
itemData 에 내용전체를 넣지않고 페이징될 총 갯수만 설정할수 있습니다.

perPage [integer] -
한페이지에 글이 몇개인지.

delta [integer]-
페이지 번호를 몇개 보여줄지.

mode [string] "Jumping" or "Sliding"
점핑은 보통 사용하는 페이징 방식이고 슬라이딩은 일정페이지 이상이 되면
현재 페이지가 항상 페이지 번호 중간에 나오는 방식입니다.(구글 결과페이지 참고)

httpMethod [string] "get" or "post" -
페이징 변수를 get,post로 넘길건지.

linkClass [string] -
페이징에 걸 스타일 시트

urlVar [string] "pageID" -
페이지 번호로 사용할 변수이름

altFirst [string]
altPrev [string]
altNext [string]
altLast [string]
altPage [string]
- 마우스 올렸을때 나타낼 문자열

prevImg [string] "<<"
nextImg [string] ">>"
- 앞,뒤 링크 문자 혹은 이미지 아이콘으로 설정

separator [string] -
페이지 번호에 특정 문자,이미지를 추가할수 있습니다.

curPageLinkClassName [string]
- 현재페이지 번호에 적용할 스타일 시트

firstPageText [string]
lastPageText [string]
- 맨처음,맨끝 페이지 표시할때 사용할 문자열

extraVars [array]
- 페이징 링크에 추가할 변수들 넣을수 있습니다.

머 대충 이정도구요.

나머지 메소드들도 간단히 아는거만 ^^;

Pager::getCurrentPageID() -- 현재페이지 번호리턴

Pager::getLinks() --  생성된 링크를 배열로 리턴

Pager::getNextPageID() -- 다음페이지 번호 리턴

Pager::getOffsetByPageId() -- 페이지에 해당하는 limit 리턴

Pager::getPageData() -- itemData에 전체 내용을 배열로 넣었을때 페이지에 해당하는 배열내용을 가져울수 있습니다.

Pager::getPreviousPageID() -- 이전 페이지 번호

Pager::getperpageselectbox ([integer $start = 5 [, integer $end = 30 [, integer $step = 5 [, boolean $showAllData = false [, string $optionText = '%d']]]]]) -- 페이지 바로가기 selectbox html 을 리턴합니다.


대충 이정도구요.
아쉬운 점이라면 이전10개 다음10개 이기능이 없더군요.
페이징관련 소스를 찾고 있으시거나 공부해보실 분이라면
한번 봐두는 것도 좋을듯 하네요.

http://pear.php.net/manual/en/package.html.pager.php