질문/조언질답게시판

xe에서 게시판 권한이 없을 경우 팝업으로 권한이 없습니다.가 출력됩니다. 저는 이부분을

 

1. 권한이 없고 로그인을 하지 않았을 경우 로그인 페이지로 이동

2. 권한이 없고 로그인을 했을 경우는 팝업창으로 권한이 없습니다 출력

3. 기타의 경우 팝업창으로 권한이 없습니다 출력

 

이런 조건문을 쓰려고 아래와 같이 작성을 했는데  권한이 없고 로그인하지 않은 경우 로그인 페이지로 이동은 정상작동, 권한이 없고 로그인을 한경우 권한이 없습니다,라는 팝업창이 뜨질 않고 홈으로 이동을 해버리는데 조건문 작성이 잘못된 건지 도움 부탁드리겠습니다.   

 

[ board.view.php ]

 

 function alertMessage($message)
    {

 //권한이 없고 로그인을 하지 않았을 경우 로그인 페이지로 이동 ( 정상작동 )

         if(!$is_logged && $message=="msg_not_permitted"){
                   $script =  sprintf('<script type="text/javascript"> jQuery(function(){ location.href="/?act=dispMemberLoginForm"; } );</script>');
                   }

 

//권한이 없고 로그인을 한 경우 권한이 없습니다 팝업창이 뜨질 않고 홈으로 이동해버립니다.

         else if($is_logged && $message=="msg_not_permitted"){
                   $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s"); } );</script>', Context::getLang($message));
                   }

         else 
        {
            $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s"); } );</script>', Context::getLang($message));
        }

        Context::addHtmlFooter( $script );
    }

}

  • profile
    저도 이 부분은 궁금하네요.
    팝업창이 경고창(alert) 말씀이신 거겠죠?
    $script에 return false; 를 넣어도 홈으로 이동하려나요?
  • profile ?

    네 말씀하신 팝업 경고창입니다.

     

      else if($is_logged && $message=="msg_not_permitted"){
                       $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s") } );return false;</script>', Context::getLang($message));
                       }

     

    이렇게 넣어봐도 로그인하고 권한이 없을 경우 팝업창이 뜨질 않고 바로 홈으로 이동을 해버리네요. ^^;

  • profile
    일단은
    $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s"); return false; } );</script>', Context::getLang($message));
    이렇게 가야 할 것 같은데요.
    코어의 강력함에 효과가 있을지는 잘 모르겠습니다;;;
  • profile ?

    네 말씀해 주신 코드를 넣어봐도 팝업경고창이 뜨질 않고 홈으로 바로 이동해버리네요.

     

    else if($is_logged && $message=="msg_not_permitted"){
                       $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s"); return false; } );</script>', Context::getLang($message));
                       }
     

  • ? profile
    ㅠㅠ 저는 gg칩니다. 다른 분께로 패스ㅜ
  • profile ?
    답변감사합니다. ^^
  • profile

    function alertMessage($message)
    {
        if($message=="msg_not_permitted")     //권한이 없을때
        {
             if(!$is_logged){ // 비 로그인
                   $script =  sprintf('<script type="text/javascript"> jQuery(function(){ location.href="/?act=dispMemberLoginForm"; } );</script>');
             }else{ //로그인
                   $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s"); } );</script>', Context::getLang($message));
             }
        }
        else //권한이 있을때
        {
            $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s"); } );</script>', Context::getLang($message));
        }
        Context::addHtmlFooter( $script );
    }//end function

    }//...?

    //...? 부분은 본문의 소스코드에 function 닫는 부분에 } 하나가 더 있어서 표시해두었습니다.

  • profile ?

    답변 감사드립니다 . 답변주신 소스 그대로 와 권한이 있을 때 경우의 수는 필요가 없을 꺼 같아서 해당 부분을 없애고도 적용해보았습니다. 

     

    1. 게시판 권한 설정

    2018-06-27 19,27,44.PNG

     

    2. 게시판 목록 열람 권한이 없는 준회원 아이디로 테스트를  해보면 아래와 같습니다.

      1) 비로그인 상태에서 목록 클릭 시 로그인 페이지로 정상 이동합니다.

      2) 로그인 후 권한이 없는 게시판 목록을 클릭하면 경고팝업창( 권한이 없습니다 )이 떠야 하는데 홈으로 이동을 해버립니다. ^^;

     

    테스트는 

    http://tqooktest.cafe24.com/martbiz_talk 

    아이디 test 비번 1234 로 해보실 수 있습니다.

  • ? profile
    $message=="msg_not_permitted”
    $message 값이 로그인/비로그인 상태에서 같은지 확인을 해보세요.
  • ? profile
    $is_logged 를
    $is_logged = Context::get("is_logged”); 로 선언도 해보세요.
  • profile ?

    1. $message 값이 로그인/비로그인 상태에서 같은지 확인을 해보세요.

     아래 부분을 확인을 하라고 한 부분이 아닌것 같긴 합니다만 

    -> 현재 상태에서 비로그인 시 로그인창을 불러오고 로그인 시는 메세지 팝업경고창이 뜨질 않아 확인이 안됩니다.

     

    2.  $is_logged = Context::get("is_logged”); 어느 줄에 위치를 해야 할지 부탁드리겠습니다.

     

    function alertMessage($message)
    {
        if($message=="msg_not_permitted")     //권한이 없을때
        {
             if(!$is_logged){ // 비 로그인
                   $script =  sprintf('<script type="text/javascript"> jQuery(function(){ location.href="/?act=dispMemberLoginForm"; } );</script>');
             }else{ //로그인
                   $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s"); } );</script>', Context::getLang($message));
             }
        }
        

        Context::addHtmlFooter( $script );
    }

    }

  • ? profile
    if(!$is_logged){ 윗 라인이요
  • profile ?

    앗 감사합니다. 정상작동됩니다.^^
     

    아래 코드, 권한이 있을 때는 의미가 없을 것 같아서 제거 했는데 문제가 없는거 맞겠죠?

     else //권한이 있을때
        {
            $script =  sprintf('<script type="text/javascript"> jQuery(function(){ alert("%s"); } );</script>', Context::getLang($message));
        }

  • ? profile

    소스 코드를 어떻게 사용하실런지 의도를 잘 모릅니다만, 해당 부분이 사용에 있어서 의미가 없다 판단되시면 삭제하셔도 무관하지 않을까요?^^

  • profile ?
    네 도움이 많이 되었습니다.
    다시 한번 감사의 말씀드립니다. ^^
  • ?
    라이믹스에서는 작동하지 않는데 xe에서 아직도 작동하나요? ㅠㅠ