사이트 내 전체검색
PHP
[알고리즘] 포스트잇 메모장 기능 구현 [심플형]
로빈아빠
https://cmd.kr/php/38 URL이 복사되었습니다.

본문

윈도우 바탕화면에서 간편하게
사용하던

포스트잇 프로그램을 구현해 봤습니다

로그 아웃 종전의 위치와 사이즈, 펼침 또는 접힘 형태를
그대로 유지하며 출력을 해 줄수 있도록 해봤습니다

방법은
각종 이벤트가 일어 날때마다
그 이벤트 위치 값등을 찾아내어
DB에 업데이트 시켰습니다

DB를 활용했기 때문에
정보 보전성이 강하고
확장 프로그램이 가능합니다

관리자 로그인 후 스킨이 적용 되면서
이전 모양대로 출력되록 하기 위해서
XML 으로 데이타를 추출해 출력하는 방법을 택했습니다

function postit_xmlList(reqs)
{
    var outhtml= '';
    var xmlDoc = '';
    var xmlDoc = reqs.responseXML;
    
    var sw = document.body.clientWidth;
    var sh = document.body.clientHeight;
    var postmaxw = parseInt( (sw - postit_defaultWH[0]) - 150);
    var postmaxh = parseInt( (sw - postit_defaultWH[1]) - 70);
    
    var xmlList= xmlDoc.getElementsByTagName('item');
    var xmlListLen = xmlList.length;
    for(var i=0; i<xmlListLen; i++){
        var itemList = xmlList.item(i);
        
        var postid    = itemList.getElementsByTagName('postid').item(0).firstChild.nodeValue;
        var x    = itemList.getElementsByTagName('x').item(0).firstChild.nodeValue;
        var y    = itemList.getElementsByTagName('y').item(0).firstChild.nodeValue;
        var w    = itemList.getElementsByTagName('w').item(0).firstChild.nodeValue;
        var h    = itemList.getElementsByTagName('h').item(0).firstChild.nodeValue;
        var dly    = itemList.getElementsByTagName('displaymd').item(0).firstChild.nodeValue;
        var memo= itemList.getElementsByTagName('description').item(0).firstChild.nodeValue;

        x = (x > postmaxw) ? postmaxw : x;
        y = (y > postmaxh) ? 10 : y;
        
        postit_runDiv(postid, w, h,x,y,'create','','default','');
        var elementId = document.getElementById(postid);
        elementId.innerHTML = memo;
        
        if(dly == 'none'){
            postit_simple(postid);
        }
    }
}



또한 포스트잇은 내용을 적음과 동시에
저장을 해줘야 하기 때문에

다음과 같이 하였습니다

// 메모 자동저장 /--------------------------------------
var keystart = 0;
var postTmpMemo = '';
var postMid    = '';


// 이벤트 체크 및 시작
function postit_runKey(evt,id)
{
    var KeyCode =0;
    var e = evt? evt : window.event;
    if(!e) return;
    
    postMid = id;

    if (e.keyCode){ KeyCode = e.keyCode; }
    else if (typeof(e.which)!= 'undefined'){ KeyCode = e.which; }

    if (KeyCode>0){
        if (KeyCode == 40 || KeyCode == 38){ keystart = 0;     }else{ keystart =1; }
    }

    if(keystart==1){ setTimeout("postit_getmemo()",500); }
}

// 데이타 비교 및 저장 /--
function postit_getmemo()
{
    if(keystart == 0) return;
    var obj = document.getElementById(postMid+'_content');
    var objv= obj.value;

    if(objv != postTmpMemo){
        postTmpMemo = objv;
        params = 'postid='+postMid+'&memo='+encodeURIComponent(objv);
        
        postit_runProgramMode('memo',params);
    }

    setTimeout("postit_getmemo()",500);
}

// 포커스 아웃인지 체크
function postit_keyChkFocus(){     keystart = 0; }



부족하지만 해 보고 싶어 하는 분들에게 팁이 될진 몰겠지만
안보는것 보다야 괜찮겠죠 ^^


http://www.apmsoft.net/ax/admin/

-----------------------------------------------

선우님 댓글:
오 죽이는데요.. 제가 만든 비슷한거 ,, 로그인후 노트가면 됩니다.
http://www.passpy.com  아이디 : test1 / 패스 1111

댓글목록

등록된 댓글이 없습니다.

PHP
871 (17/18P)

Search

Copyright © Cmd 명령어 18.191.200.47