한 30분 터미널 보니 나오더군요 엉엉...

원인이 여러가지 있으니 안되는 경우도 있을겁니다.

아무튼 간단한 설명

1.
zbxe/modules/module/query/getDefaultMidInfo.xml에서

#9         <condition operation="equal" column="site_srl" var="site_srl" default="0" notnull="notnull" />

이 줄을 없에시고

2.
도메인/?module=admin 으로 들어가셔서

로그인 후 첫화면(또는 모듈 관리화면)에서

modue 모듈을 설치 / 업데이트 하시고

3.
zbxe/modules/module/query/getDefaultMidInfo.xml에서

#9         <condition operation="equal" column="site_srl" var="site_srl" default="0" notnull="notnull" />

이거 다시 붙여넣으시고

4. 관리자 페이지에서 캐쉬 파일 업데이트 하세요



원인은

1.1.0인가에서에서 가상 사이트 생기면서

모듈에 site_srl 컬럼이 생기지 않았는데 해당 쿼리만 업데이트되어서 제대로 기본 모듈을 못가져오는 문제였습니다.


다른 문제 있으면 블로그로 놀러오세요 ~_~//


추가 : 2009. 04. 10. 13:34 >

http://www.xpressengine.com/index.php?path=%2F&mid=xe_issuetracker&act=dispIssuetrackerViewSource&type=compare&erev=6076&brev=6075


r6076에서 수정되었네요. 감사합니다 :)

Posted by Parker Falcon

댓글을 달아주세요

  1. 2009.04.10 11:02
    댓글 주소 수정/삭제 댓글
    와;; 감사합니다.
    미쳐 생각하지 못한 부분이였네요.
    오늘 긴급패치하겠습니다. ^^
    • 2009.04.10 11:15 신고
      댓글 주소 수정/삭제
      어떻게 보면 정말 간단한 부분인데
      오랫동안 안잡혀서 아쉽네요 ㅠㅠ
      아무튼 기대하겠습니다 +_+

1.0.6에서는 제대로 작동 하던 기능이
1.1.0인가 1.1.1로 넘어오면서 제대로 작동하지 않았습니다.

                function dispBoardWrite() {
            // 권한 체크
            if(!$this->grant->write_document) return $this->dispBoardMessage('msg_not_permitted');
        
         // check point
         if(Context::get('is_logged')) {
            $logged_info = Context::get('logged_info');
            $oPointModel = &getModel('point');
        $current_point = $oPointModel->getPoint($logged_info->member_srl);
        $oModuleModel = &getModel('module');
        $point_config = $oModuleModel->getModulePartConfigs('point');
        $module_srl = Context::get('module_srl');
        $current_module_point = ($point_config[$module_srl]['insert_document']? $point_config[$module_srl]['insert_document'] : $point_config->insert_document);
        if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');



예전과 지금의 Module의 Config를 가져오는 방법이 달라져서 제대로 작동하지 않았습니다.
1.1.1에서 적용중인 자료입니다.
Posted by Parker Falcon

댓글을 달아주세요

  1. 뚱^^
    2009.01.10 02:30
    댓글 주소 수정/삭제 댓글
    글 조회시 포인트 체크하여 포인트가 조회에 필요한 포인트 보다 작을 때 조회 불가능하게 하는 방법 부탁합니다. 일러 주신대로 아래와 같이 수정하여 보았는데 삽질만 엄청하고 있습니다.
    기본적을 프로그래밍을 모르니 무지 힘들군요ㅠㅠ
    조언 부탁합니다.

    function dispBoardContent() {
    /**
    * 목록보기 권한 체크 (모든 권한은 ModuleObject에서 xml 정보와 module_info의 grant 값을 비교하여 미리 설정하여 놓음)
    **/
    if(!$this->grant->list) return $this->dispBoardMessage('msg_not_permitted');
    // 포인트 검사
    if(Context::get('is_logged')) {
    $logged_info = Context::get('logged_info');
    $oPointModel = &getModel('point');
    $current_point = $oPointModel->getPoint($logged_info->member_srl);
    $oModuleModel = &getModel('module');
    $point_config = $oModuleModel->getModulePartConfigs('point');
    $module_srl = Context::get('module_srl');
    $current_module_point = ($point_config[$module_srl]['insert_document']? $point_config[$module_srl]['insert_document'] : $point_config->insert_document);
    if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');
    }

    /**
    * 카테고리를 사용하는지 확인후 사용시 카테고리 목록을 구해와서 Context에 세팅
    **/
    $this->dispBoardCatogoryList();
    • 2009.01.10 12:27 신고
      댓글 주소 수정/삭제
      $current_module_point = ($point_config[$module_srl]['insert_document']? $point_config[$module_srl]['insert_document'] : $point_config->insert_document);
      이부분은 insert_document 즉 글작성시의 포인트를 말합니다.
      read_document로 바꾸어보세요
  2. 뚱^^
    2009.01.10 18:16
    댓글 주소 수정/삭제 댓글
    우왕! 감사합니다.
  3. 2009.01.13 12:38
    댓글 주소 수정/삭제 댓글
    안녕하세요. Parker Falcon님의 도움으로 포인트 문제를 해결했던 "뚱^^"입니다.
    정말 큰힘이 되었습니다. 이 문제로 여러군데 도움을 요청하고 고민도 많이했는데 Parker Falcon님의 도움으로 쉽게 해결했습니다.
    혼자 이것 저것을 건드리다 또 이렇게 질문을 드리네요.
    아래 소스에서 메세지를 point 모듈의 "LANG" 폴더의 "ko.lang.php" 화일에 메세지를 추가하는 것이 맞는지요?
    원하는 메세지를 뛰우지 못해서 이렇게 질문을 남깁니다.
    if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');
    }
    • 2009.01.13 14:46 신고
      댓글 주소 수정/삭제
      도움이 되었다니 다행입니다 :)
      실제 lang이 가져와지는 것이 두 곳이 있는데,
      어떠한 곳이라도 상관은 없습니다.
      그래도 해당 모듈에 있는 lang에 추가하시는게 좋겠죠 ^^
      저도 모듈 아래의 lang에 추가하였습니다.
  4. 조현우
    2009.01.16 16:03
    댓글 주소 수정/삭제 댓글
    또 질문을 하게되네요. 알고 싶었던 기능인데, 너무감사합니다.
    그런데 이 팁을 적용해보니, 포인트가 부족하면 글목록부터 볼수가 없네요. 저의 경우는 글목록은 아무나 볼수 있게 하고, 게시글을 읽을경우만 포인트에 따라 권한을 주려고 하고 있습니다.

    미리 감사드립니다.
    • 2009.01.17 14:15 신고
      댓글 주소 수정/삭제
      제가 쓴 글은 게시물을 작성할 때 포인트를 체크하는 루틴입니다.
      따로 넣지 않으셨으면 글 목록을 출력할 때는 저 부분이 실행되지 않는데요, 혹시 해당 소스를 어디쯤에 넣으셨는지 확인해주세요 :)
  5. 조현우
    2009.01.17 14:26
    댓글 주소 수정/삭제 댓글
    원댓글(뚱님)에서 처럼,
    function dispBoardContent() {
    /**
    * 목록보기 권한 체크 (모든 권한은 ModuleObject에서 xml 정보와 module_info의 grant 값을 비교하여 미리 설정하여 놓음)
    **/
    if(!$this->grant->list) return $this->dispBoardMessage('msg_not_permitted');
    이아랫에 넣었고, 실패해서, 아래코드 밑쪽근처에도 넣었는데, 아예 페이지에러가 뜨더군요. ^^;;;
    (무식하면 용감하다고...)

    // 글 보기 권한을 체크해서 권한이 없으면 오류 메세지 출력하도록 처리
    if(!$this->grant->view && !$oDocument->isGranted()) {
    $oDocument = null;
    $oDocument = $oDocumentModel->getDocument(0);
    Context::set('document_srl','',true);

    귀잖게 안할려고, 아무리 머리를 쥐어짜도... 답은 먼곳에.. ^^;;
  6. 2009.01.23 11:02
    댓글 주소 수정/삭제 댓글
    조현우님 말처럼 포인트가 모자라면 목록도 보지 못하는 건 맞습니다.
    저도 목록은 보게 할려고 고민중인데 해결이 안되네요. 조언 부탁합니다.
    부탁할려니 미안해서리 머뭇거리다 현우님 질문을 보고 부탁해보네요.
  7. 2009.01.23 18:00 신고
    댓글 주소 수정/삭제 댓글
    if(!$this->grant->list) return $this->dispBoardMessage('msg_not_permitted');
    이 부분은, 목록을 보는 권한이 없으면 에러메시지를 출력하는 줄 입니다.

    조현우님의 경우에 일단 지금
    dispBoardContent() 함수의 소스를 보여주시면 제가 확인해 볼 수 있겠습니다.
    소스가 어떻게 되어있는지 제가 잘 몰라서 답변 드리기 점점 모호해져서요 ㅠㅠ
  8. 2009.01.30 11:42
    댓글 주소 수정/삭제 댓글
    소스가 아래와 같이 되어 있는데 포인트가 모자라면 목록이 안보이네요..
    뭐가 문제일까요?

    function dispBoardContent() {
    /**
    * 목록보기 권한 체크 (모든 권한은 ModuleObject에서 xml 정보와 module_info의 grant 값을 비교하여 미리 설정하여 놓음)
    **/
    if(!$this->grant->list) return $this->dispBoardMessage('msg_not_permitted');
    // 포인트 검사
    if(Context::get('is_logged')) {
    $logged_info = Context::get('logged_info');
    $oPointModel = &getModel('point');
    $current_point = $oPointModel->getPoint($logged_info->member_srl);
    $oModuleModel = &getModel('module');
    $point_config = $oModuleModel->getModulePartConfigs('point');
    $module_srl = Context::get('module_srl');
    $current_module_point = ($point_config[$module_srl]['read_document']? $point_config[$module_srl]['read_document'] : $point_config->read_document);
    if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');
    }

    /**
    * 카테고리를 사용하는지 확인후 사용시 카테고리 목록을 구해와서 Context에 세팅
    **/
    $this->dispBoardCatogoryList();


    /**
    * 목록이 노출될때 같이 나오는 검색 옵션을 정리하여 스킨에서 쓸 수 있도록 context set
    **/
    // 템플릿에서 사용할 검색옵션 세팅 (검색옵션 key값은 미리 선언되어 있는데 이에 대한 언어별 변경을 함)
    foreach($this->search_option as $opt) $search_option[$opt] = Context::getLang($opt);

    // 모듈정보를 확인하여 확장변수에서도 검색이 설정되어 있는지 확인
    for($i=1;$i<=20;$i++) {
    $ex_name = trim($this->module_info->extra_vars[$i]->name);
    if(!$ex_name) continue;
    if($this->module_info->extra_vars[$i]->search == 'Y') $search_option['extra_vars'.$i] = $ex_name;
    }
    Context::set('search_option', $search_option);


    // 게시글을 가져옴
    $this->dispBoardContentView();

    // 공지사항 목록을 구해서 context set (공지사항을 매페이지 제일 상단에 위치하기 위해서)
    $this->dispBoardNoticeList();

    // 목록
    $this->dispBoardContentList();

    // template_file을 list.html로 지정
    $this->setTemplateFile('list');
    }

    function dispBoardCatogoryList(){
    if($this->module_info->use_category=='Y') {
    $oDocumentModel = &getModel('document');
    Context::set('category_list', $oDocumentModel->getCategoryList($this->module_srl));
    }
    }

사용자 삽입 이미지

아직은 개발중입니다.

몇 가지 재미난 점이 있다면, 앞의 Bullet의 색상을 6자리 Hex값으로 입력하면 출력 가능 하다는 것과,
Bullet 이미지를 PHP로 만들어서 뿌리는게 아니라는점 입니다.

기본적인 일정 제목, 시작/종료 날짜/시간 입력 기능으로 돌아갑니다.

어제 저 색을 만들기 위해서 얼마나 노력했던지...
Posted by Parker Falcon

댓글을 달아주세요

  1. 조현우
    2009.01.16 15:22
    댓글 주소 수정/삭제 댓글
    멋지네요. 기대가 됩니다. ^^

modules/editor/skins/default 업데이트
modules/editor/tpl/images 업데이트
modules/editor/editor.controller.php 업데이트
modules/editor/editor.model.php 업데이트
modules/file/file.controller.php 업데이트
modules/file/file.admin.view.php 업데이트
modules/file/file.model.php 업데이트
file.model.php 수정
80 //if($module_srl) $file_config = $oModuleModel->getModulePartConfig('file',$module_srl);
Posted by Parker Falcon

댓글을 달아주세요

제로보드 XE 1.0.6 에는 포인트 기능에서 조그마한 문제가 있습니다.

글을 작성할 떄 포인트가 줄어드는 게시판에, 포인트가 부족한 상태에서도 글을 작성할 수 있다는 사실.

좀 귀찮은 문제이어서 바로 수정하였습니다.

modules/board/board.view.php 입니다.

약 263줄 부터입니다.

         /**
         * @brief 글 작성 화면 출력
         **/
        function dispBoardWrite() {
            // 권한 체크
            if(!$this->grant->write_document) return $this->dispBoardMessage('msg_not_permitted');

            // check point
            if(Context::get('is_logged')) {
                $logged_info = Context::get('logged_info');
                $oPointModel = &getModel('point');
                $current_point = $oPointModel->getPoint($logged_info->member_srl);
                $oModuleModel = &getModel('module');
                $point_config = $oModuleModel->getModuleConfig('point');
                $module_srl = Context::get('module_srl');
                $current_module_point = ($point_config->module_point[$module_srl]['insert_document']? $point_config->module_point[$module_srl]['insert_document'] : $point_config->insert_document);
                if ($current_point + $current_module_point < 0) return $this->dispBoardMessage('msg_not_enough_point');
                debugPrint ('cur = '.$current_point.' mod = '.$current_module_point );
            }


            $oDocumentModel = &getModel('document');

아 그리고 $lang->msg_not_enough_point 라는 메시지는 적당히 추가해주면 됩니다.

"포인트가 부족합니다" 정도는 어떨까요?

2009년 1월 8일 추가 :

1.1.1 에서 제대로 작동하지 않아서 http://quota.tistory.com/129 에 업데이트 하였습니다.
Posted by Parker Falcon

댓글을 달아주세요

  1. 뚱^^
    2009.01.08 07:33
    댓글 주소 수정/삭제 댓글
    안녕하세요. 도움을 구하고자 합니다.
    조회시 포인트가 없거나 부족할때도 조회가 되는데 안되게 할 수 있는 방법이 없을까요?
    답변 주신다면 정말 고맙겠습니다.
    • 2009.01.08 11:18 신고
      댓글 주소 수정/삭제
      제가 작성해서 올려놓은 코드는
      dispBoardWrite - 게시물 작성
      할 때 점수를 미리 확인하는 코드입니다.

      해당 코드를 글을 읽는 부분의 함수에 넣어서
      글을 읽기 전에 점수를 확인하게 하시면 됩니다.
      해당 함수는
      function dispBoardContent()
      입니다 :)
  2. 2009.01.09 09:31
    댓글 주소 수정/삭제 댓글
    감사합니다. 한번 해보고 안되면 도움 부탁합니다..*^^*

잠 안와서 몇 시간 밤 새다가 만들었네요 ㅠㅠ

다시는 이런짓 안해야지 ㅠㅠ

설치 방법 - 그냥 풀어서, 덮어씌우시거나 알아서 폴어 옮기시거나... 이전 자료 날라갔다고 저에게 뭐라하셔도 소용없습니다.

저번에 zip 안올려서 곤란하신 분들 생각에 이번에는 두 버전 같이 올립니다...

point-log3.zip point-log3.tar.bz2


이용 방법


조금 더 고치기

알려진 문제점


추가 - 0.2 버전에 몇 가지 사소한 수정하여 0.2.1 올렸습니다.
= 이전에 debugPrint로 사용하던 소스가 일부 남아서 없에고 올렸습니다.
= 관리자가 임의로 포인트를 정해 줄 경우 메시지로 기록이 남습니다.
= 관리자 메뉴에서 검색 후 이동할 때 검색 쿼리가 따라다니는 문제점을 해결하였습니다.
= 글 쓰기 과정에서 점수 변화량을 제대로 출력하지 못한 문제를 해결하였습니다.
Posted by Parker Falcon

댓글을 달아주세요

  1. NXT
    2014.03.21 12:03
    댓글 주소 수정/삭제 댓글
    파일공유가능하신가요? ㅜㅜ

제로보드 XE 에서 개인적으로 생각할 때 부족한 기능 중 하나인 다중 언어 모듈이 일단 완성되었다.

하는 일이라고는, 현재 설정된 언어에 따라서 해당하는 주소로 redirect하는 일이기는 하지만,

여러 언어를 위한 페이지를 위해서 언어별로 레이아웃이나 메뉴을 똑같이 여러개 만들 필요성은 없어졌다.

다만 아직은 테스트 단계이고, release 는 아직 계획에는 없다.

아무튼 잘 작동해서 다행이고, 조금 더 user-friendly 하게 만들어야지.

샘플 사진 하나

사용자 삽입 이미지

동영상은?


Posted by Parker Falcon

댓글을 달아주세요

  1. 망치
    2008.10.07 13:20
    댓글 주소 수정/삭제 댓글
    빨리...공개해주세요....예~~~
    기대...중..
  2. 2008.10.10 05:48
    댓글 주소 수정/삭제 댓글
    안녕하세요.
    고생이 많으십니다 ^^
    저도 기대가 많이 됩니다.
    지비공식사이트에 아이디어를 제안했지만, 만들고 계시는데 도움이 될랑가 모르겠지만.
    1. 게시글 쓰기를 하면 한국어, 영어.. 그외 언어의 통합 에디터가 뜨고, 한글 담당자는 한글내용을 쓰고, 저장하면 나중에 다른 언어 담당자가 그 게시글을 열어서 그 언어의 내용을 쓰고 저장합니다.
    2. 방문자가 언어선택을 하면 그 언어에 맞는 내용과 메뉴가 나타 납니다.

    게시판이 아니라, 페이지도 같은 기능이 있으면 좋을거 같습니다. 첨부화일들도 그 언어에 맞게 등등...
    어떨까요?

    화이팅!

현재 서버에 등록된 파일을 크기순으로 출력하는 위젯입니다.

사용자 삽입 이미지


라이선스는 GPL
코드에 대한 저작권은 따로?

http://www.zeroboard.com/17336097
Posted by Parker Falcon

댓글을 달아주세요

메뉴 모듈의 기능을 몇 가지 추가하였습니다.

사용자 삽입 이미지

아래에 붉은색 테두리를 친 부분인데요, 활용 방법은 아래와 같습니다.
사용자 삽입 이미지
이렇게 하나의 메뉴 아이템으로 서브메뉴 이미지까지 처리할 수 있게 변경하였습니다.

원본 소스가 GPL이고, 이 개작도 GPL입니다.

http://www.zeroboard.com/17320295
Posted by Parker Falcon

댓글을 달아주세요

  1. 김기수
    2011.04.06 11:22
    댓글 주소 수정/삭제 댓글
    menu를 module에 기존 것을 없애고 대신 올리니 관리자 모드에서 "메뉴" 모듈 표시가 나타나지 않네요
    바법 좀 알려 주세요 kskim88@paran.com

게시물보다 댓글이 더 위험한건 아닌가 걱정됩니다...
Posted by Parker Falcon

댓글을 달아주세요