한 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));
    }
    }

제로보드 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
    댓글 주소 수정/삭제 댓글
    감사합니다. 한번 해보고 안되면 도움 부탁합니다..*^^*

ICS 패치 이후

2007.12.22 11:45

Microsoft에 Vista의 인터넷 공유 (ICS, Internet Connection Sharing) 문제에 대한 패치를 요청하여, Hot fix를 제공받았습니다.

테스트할 시간이 많지는 않았지만,

아직까지는 별 문제가 없습니다.

약 8시간쯤 공유 기능을 가동하였는데,
 
아직까지는 Socket이 더이상 생기지 못하는 버그가 발생하지는 않았습니다.

개인적인 사정으로 당분간 테스트를 더이상 하지는 못하게 될 거 같군요 :)

나중에 다시 테스트 해보도록 하겠습니다.

Posted by Parker Falcon

댓글을 달아주세요