XETOWN

질문/답변

웹에 관련된 질문과 답변을 나눌 수 있습니다.

특정게시판에서만 (묻고답하기)

 

글작성 시 쿼리를 돌려 이 회원이 서명에 아무것도 입력하지 않은 회원인지 확인해서 입력 안했다면...

 

너 서명좀 입력해줄래! 정말....!

 

이라고 알럿을 띄워주고 글 작성은 안되고 리턴되게 가능할까요... 

 

 

 

질문시 굉장히 참조가 될만한 사항 그리고 커뮤니티 회원들끼리 가장 궁금해하는 내용을 서명에 넣도록 하는 관례가 만들어진 사이트에요 ㅡㅡ;

  • profile
    기진곰 2016.12.13 14:48:35

    현재 로그인된 회원의 서명을 가져오는 코드:
    $signature = getModel('member')->getSignature(Context::get('logged_info')->member_srl);

    회원정보 수정시 서명을 입력하지 않으면 공백이나 빈 태그만 들어갈 수도 있으므로
    아래의 코드를 사용해서 공백과 태그를 지워줍니다.
    $signature = trim(strip_tags($signature));

    여기서 $signature에 내용이 없으면 빠꾸~
    if(Context::get('mid') == 묻고답하기게시판mid && !$signature)
    {
        return new Object(-1, '서명입력하셈!!!!도대체몇번을말해야알아듣나!!!');
    }

  • profile
    웹지기 2016.12.13 14:53:13
    감사합니다. 나가려던 멘탈 일단 다시 잡아와서 정신차리고 해보겠습니다 ㅡㅡ;
  • profile
    웹지기 2016.12.13 15:16:58
    애드온으로 만들었는데요. 그냥 통과과 되어버리네요. 그냥 다른 애드온 다 지우고 위 코드만 넣어서 뭐가 빠졌나 보네요.

    if(in_array($called_position, array('before_module_init', 'after_module_proc')))
    {
    $signature = getModel('member')->getSignature(Context::get('logged_info')->member_srl);
    $signature = trim(strip_tags($signature));
    if(!$signature)
    {
    return new Object(-1, '회원정보 서명입력란에 함께하는 반려견 정보를 입력하셔야 글 작성이 가능합니다!');
    }

    }
  • profile
    기진곰 2016.12.13 15:24:48
    아, 애드온이라면 얘기가 달라져요. return new Object는 모듈 소스를 직접 수정하실 때 쓰는 거고요, 애드온이라면 별도 파일로 인클루드되기 때문에 return이 무의미해집니다.

    before_module_proc 시점에서 $this->stop('에러메시지'); 해보세요.
  • profile
    웹지기 2016.12.13 15:37:15

    if(in_array($called_position, array('before_module_init', 'after_module_proc')))
    {
    $signature = getModel('member')->getSignature(Context::get('logged_info')->member_srl);
    $signature = trim(strip_tags($signature));
    if(!$signature)
    {
    if(in_array($act, array('procBoardInsertDocument', 'procBoardInsertDocumentBydocument_srl')) && $called_position == 'before_module_init')
    {

    $this->stop_proc = TRUE;
    $this->stop($error_message);
    }
    }

    }

    요렇게 고쳐봐쓴데 그냥 통과네요... 뭐가 빠졌나봐요..

  • profile
    기진곰 2016.12.13 15:46:06
    before_module_init에서는 stop이 먹히지 않고, after_module_proc은 이미 늦었어요.
    before_module_proc에서 잡아야 합니다.

    stop만으로 먹히지 않는다면 $this->act = '무의미한 랜덤 문자열'; 이것도 추가해 보세요.
  • profile
    웹지기 2016.12.13 15:58:02

    감사합니다. 아래로 해서 일단 막아지기는 했는데 다른 애드온에서 작성된 코드를 참조하다보니 그 애드온과 비슷하게 다른 애드온의 경고창도 같이 뜨게 되는데 포지션 차이인가요??

    아이고.,.....   모바일에서는 왜 안막히는거지.....  모바일은 또 통과가 되네요.. 이런....



    if(in_array($called_position, array('before_module_init', 'after_module_proc')))
    {
    $signature = getModel('member')->getSignature(Context::get('logged_info')->member_srl);
    $signature = trim(strip_tags($signature));
    if(!$signature)
    {
    if (in_array($act, array('dispBoardWrite', 'dispBoardWriteBydocument_srl')) && $called_position == 'after_module_proc')
    {
    $this->act = 'true';
    $this->stop('문구!');
    }
    }

    }

  • profile
    기진곰 2016.12.13 16:10:06
    포지션이 틀리다니까요. 여전히 before_module_init, after_module_proc으로 되어 있잖아요.
  • profile
    웹지기 2016.12.13 16:11:10
    아.. 모바일은 착각인듯 해요... 제가 코드 변경 후 모바일만 안되는것으로 봤네요.
    일단 위 코드로 되긴 하는데 다른 애드온에서 띄우는 팝업까지는 같이 뜨는데 에디터는 안뜨고 메시지창은 떠서 막는거 까지는 정상적으로 되었습니다.
  • profile
    웹지기 2016.12.13 16:17:01
    와우.. 무슨 말씀인지 이해되었습니다. 그렇게 하니 한단계 전에 차단해서 다른 애드온이 동작하는 시점보다 앞에서 차단되네요. 감사합니다!!!!
  • profile
    기진곰 2016.12.13 16:19:18
    잘 된다니 다행이네요.

    위의 코드를 보면 서명 체크를 먼저 하고 그 다음에 act 체크를 하도록 되어 있는데, 이렇게 하면 글쓰기와 관련없는 act에서도 불필요하게 서명을 체크하게 됩니다. act 체크를 먼저 하고 그 다음에 서명 체크를 하도록 바꿔보세요.
  • profile
    웹지기 2016.12.13 16:21:03
    네. 감사합니다. 그부분까지 바꿔볼게요~
  • profile
    웹지기 2016.12.13 16:26:24
    위쪽에 조건이 불필요한거 같아서 밑에 조건에 서명체크부분을 넣어서 해보니 잘 되네요. 포지션을 먼저 글쓰기로 체크했으니 다른부분에서는 서명을 불러오는 부하는 없을 듯 합니다. 조언 감사합니다.
  • profile
    웹지기 2016.12.13 16:27:39
    다음 작업은 메시지창이 맘에 안들어 메시지 템플릿을 하나 만들어 회원정보 수정으로 보내던지 해야겠습니다 ㅋㅋ

    PC에서는 로그인, 모바일에서는 로그아웃 하라고 하네요 ㅋ
  • profile
    웹지기 2016.12.18 20:27:14
    기지곰님 $this->act = '무의미한 랜덤 문자열';

    이부분을

    $this->act = 'true';
    $this->stop('문구!')

    이것으로해서 해결을한 것으로 알고 있었고 실제 php7 이 아닌 경우 잘 되는데 php7에서 테스트해보니 그냥 통과가 되어 버리네요. 혹시 다른 방법이 있을까요??
  • profile
    기진곰 2016.12.18 21:00:51
    전체 소스를 보지 않으면 모르겠네요. 자료실에서 내리셨던데 혹시 애드온을 메일로 보내주실 수 있을까요?
  • profile
    웹지기 2016.12.18 21:02:19
    아.. 해당부분이 아니고 그 위쪽에 조건이 php7에서는 적용이 안되는 문법인가 보네요. 더 해보고 해결 못하면 다시 도움 부탁드릴게요.
  • profile
    웹지기 2016.12.18 21:51:09
    같이 공개했던 다른 애드온 때문에 메일 하나 드렸습니다. 귀찮게 해드려서 죄송해요~
  • ?
    라그릿 2016.12.13 16:41:25
    ... 위에 대화를 읽어본다.
    다시 읽어본다.
    한번 더 읽어본다.

    이해 불가능.. 젠장!
  • profile
    웹지기 2016.12.13 16:57:07
    일단 다른 애드온을 먼저 열어서 본다음... 계속 보고 또 보고.. 보다 보면... 수정이 필요한경우 수정이 가능해지고... 뭐 그래요... 저도 개발자가 아니라 그냥 다른 애드온 그대로 놓고 필요 없는거 다 지우고 컨닝하다 안되서 질문 올려 댓글 보고 완성한거에요.
  • ?
    라그릿 2016.12.13 17:00:59
    저도 구글 애드센스 필터 애드온을 뜯고 다른걸 참고해서 수정수정해봤지만..
    위 대화는 뭔가를 만드는 대화..ㅎㄷㄷ.. 저에겐 아직 미지의 길..

    수정과는 달라보여양 ㅠㅠ

List of Articles
번호 제목 글쓴이 날짜
3455 ping좀 봐주실수 있나요..? ㅡ,ㅡ 16 file 프렌다 2016.12.14
3454 스티커 모듈 질문이요! 3 희스깅 2016.12.13
3453 db가 날아간 홈페이지 메뉴 변경 2 Asound 2016.12.13
3452 스티커모듈 오류 이거뭐에용?! 1 희스깅 2016.12.13
3451 애드온에서 다른 메시지 스킨을 쓰려면 ? 웹지기 2016.12.13
3450 신고사유라는 기능은 사용 못하는건가요? 3 라그릿 2016.12.13
3449 위젯 정렬 확장변수로 가능할까요? 하늘꿈쟁이 2016.12.13
» 멘탈이 붕괴되기 직전이에요. 서명이 없다면이라는 것을 확인해서 글쓰기를 금지하고 싶을 정도에 이르렀습니다... 21 웹지기 2016.12.13
3447 앞에 번호 재질문 합니다 ㅠㅠ 8 file 낙타 2016.12.13
3446 gif 파일 크기 어떻게 조절하나요? 1 file 낙타 2016.12.13
3445 슈퍼캐시 업데이트 후 오류 2 임시크 2016.12.12
3444 첨부파일 용량이 다른 이유? 8 file KiMoHwang 2016.12.12
3443 라이믹스환경에서 php문서에서 logged_info 를 불러올려는데 안되네요 14 약사이다 2016.12.12
3442 cloudflare 사용중 one more step 표시 문의드립니다. 3 file 블루스카이 2016.12.12
3441 설문조사 선택 버튼이 안나타 나는현상 5 file 보고하비 2016.12.12
3440 XE 홈페이지 메뉴 2 Asound 2016.12.12
3439 홈페이지 db 1 Asound 2016.12.12
3438 슈퍼캐시 특이한(?) 증상입니다. 3 우성군 2016.12.12
3437 게시판 리스트 회원그룹명 조건식으로 컬러 변경 4 file lis**** 2016.12.11
3436 특정게시판만 성인인증 할수있는 소스나..모듈없을까요?! 3 희스깅 2016.12.11
Board Pagination Prev 1 ... 68 69 70 71 72 73 74 75 76 77 ... 245 Next
/ 245
위로
서버에 요청 중입니다. 잠시만 기다려 주십시오...