일반 자료실

제목 ztree 1.11 cookie state
글쓴이 darkninja 작성시각 2014/08/12 00:58:45
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 21420   RSS
http://www.ztree.me/v3/main.php#_zTreeInfo
https://code.google.com/p/jquerytree/
https://github.com/zTree/zTree_v3

https://code.google.com/p/jquerytree/downloads/list

최소한의 기능만 갖춘 ztree 초기버젼에 cookie 기능을 더한것입니다.
분석하기 위해 만든것인데 만들어 놓으니 쓸데가 생기는군요!

원저작자가 수정 배포를 허용하였나요?
초기버젼이니 괜찬겠죠?
http://www.ztree.me/v3/main.php#_license
 
	<!--script type="text/javascript" src="<?php echo JS_DIR; ?>/jquery.ztree.core-1.11.js"></script-->
	<!--script type="text/javascript">
		var root_dir = '<?php echo ROOT_DIR; ?>';
		var seg_controller = '<?php echo $this->uri->segment(1) ? $this->uri->segment(1).'/' : ''; ?>';
		
		var setting1 = {	
			saveState: true,
			showLine: true
		};
		var zTree = $("#tree_category").zTree(setting1, json_parse('<?php echo $ztree1_json; ?>'));

		var node = zTree.getNodeByParam("url", root_dir + seg_controller);
		if (node) {
			zTree.selectNode( node, 0);
		};
	</script-->
첨부파일 ztree-1.11-cookie_.zip (109.7 KB)
 다음글 Mac 용 Color Picker (1)
 이전글 bxslider 에서 css 를 수정한 것입니다. (2)

댓글

한대승(불의회상) / 2014/08/12 08:49:21 / 추천 0
유용하게 사용하도록 하겠습니다.
감사 합니다.
변종원(웅파) / 2014/08/18 18:17:03 / 추천 0
메뉴 끝판왕이네요.
감사합니다. ^^
darkninja / 2014/08/21 22:09:40 / 추천 0
실력이 미천하여 ㅠㅠ
아래 코드들도 수정이 필요해 보입니다.
firefox에서 제대로 작동을 하지 않았는데 저장된 쿠키와 새로운 쿠키와의 충돌때문이었습니다.
오류 수정은 각자 해보시기 바랍니다.

ie8 에서는 indexof 를 지원하지 않는군요
아래코드를 js 파일 상단에 추가합니다.
if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(obj, start) {
    for (var i = (start || 0), j = this.length; i < j; i++) {
      if (this[i] === obj) {
        return i;
      }
    }
    return -1;
  };
}
  var setting = {
   treeObjId: "",
   checkable: false,
   editable: false,
   showLine: true,
   curTreeNode: null,
   dragStatus: 0,
   dragNodeShowBefore: false,
   uselocalStorage: false, // cookie 를 테스트 하기 위한 변수
   saveState: false,
   root: {
    isRoot: true,
    children: [] // [{ "id":0, "name":"tree", "icon":"", "url":"", "target":"_self" }]
   } 
  };
아래 코드가 cookie 처리에 맞지 않아 수정하였습니다.
  function readState(setting) {
    if (typeof localStorage !== "undefined" && localStorage !== null && setting.uselocalStorage) {
   return localStorage.getItem(getCookieName(setting));
  } else if ($.cookie) {
   return $.cookie(getCookieName(setting));
  } else {
   return null;
  }
  };

  function saveState(setting) {
    if (typeof localStorage !== "undefined" && localStorage !== null && setting.uselocalStorage) {
   return localStorage.setItem(getCookieName(setting), getState(setting));
  } else if ($.cookie) {
   return $.cookie(getCookieName(setting), getState(setting));
  }
  };
cookie 를 테스트 하지 않고 올려서 송구하옵니다^^








 
darkninja / 2014/08/21 22:15:21 / 추천 0
cookie 에 관련된 코드들은 jqtree 에서 무단 도용하였습니다.
http://mbraak.github.io/jqTree/