애드온도 있고 하지만 저는 대도록이면 "write_form.html" 이곳에 적용후 사용하고 싶습니다 

하루에 한개의 질문을 해야 하는데 한사람이 다른 질문이 다 끝나지도 않았는데 

계속 여러개를 질문하여 문제가 심각합니다 

하여 질문 게시판만 한사람이 한개의 질문만 가능하도록 하고 싶습니다 

 

저는 아래 링크대로 해봐도 잘 안되더군요 

 

https://xe1.xpressengine.com/qna/20357456
https://xe1.xpressengine.com/qna/21221535
https://xe1.xpressengine.com/qna/21353763
 

모든 게시판이 전부다 글쓰기가 안되는 현상이 일어나서요 

추석인데 질문해서 죄송 합니다 

  • Lv30
    애드온으로 안하실 필요가...

    https://xe1.xpressengine.com/qna/21353763

    위 링크의 소스를 예들들면
    안될때는 어떤 부분이 문제인지 부터 하나씩 디버깅해야 찾을 수 있습니다.

    모든 게시판에 글이 안써진다고 하신 부분이 어떤 현상인지 정확히 파악이 어렵네요.


    <block cond="$mid=='게시판 모듈명'">
    {@
    $args->member_srl = $logged_info->member_srl;
    $args->module_srl = $module_info->module_srl;
    $output = executeQuery('document.getDocumentCount', $args);
    }
    </block>

    이 소스는 원하는 게시판에서만 동작되도록 하는 소스입니다.
    그런데 만약 모든 게시판에서 동작해서 문제가 된다고 하신 거라면..

    위 코드 중 게시판모듈명이라는 조건이 안걸리는 것 이겠죠.


    저 소스 안에
    **** 와 같은 식별 가능한 문자를 </block> 위쪽에 넣고 테스트를 해보세요.

    질문 게시판이 아닌 모든곳에서 저 식별문자가 노출된다면 모든 게시판에서 동작되어 버리는 것 입니다.


    그럼 $mid 를 확인하지 못하는 문제있게죠.

    원인으로는 서버의 문제로 특정한 상황에서 cond 문법이 컴파일이 문제가 생기는 경우가 있습니다.
    이건 향후 다른 곳에서 문제를 만나지 않으려면 서버에서 해결을 해야 하는데 쉽지 않을 수도 있습니다.

    if 조건문으로 바꿀수도 있습니다.
    <!--@if($mid=='게시판 모듈명')-->
    {@
    $args->member_srl = $logged_info->member_srl;
    $args->module_srl = $module_info->module_srl;
    $output = executeQuery('document.getDocumentCount', $args);
    }
    <!--@end-->
  • Lv30 ?

    <!--@if($mid=='게시판 모듈명')-->
    {@
    $args->member_srl = $logged_info->member_srl;
    $args->module_srl = $module_info->module_srl;
    $output = executeQuery('document.getDocumentCount', $args);
    }
    <!--@end-->
    위와 같이 적용해보니 글이 다 써지는군요
    참제가 글이 다 안써진다는 것은 글쓰기 버튼을 클릭할때 모두 게사판에서 글쓰기 가 안된다는 것으로 말씀을 드린 겁니다

    위에 있는 것만 적용했을대는 계속 질문게시판에 글작성이 되는군요
    혹시
    그리고 몇라인 아래에
    <form action="/" method="post" onsubmit="jQuery(this).find('input').each(function(){if(this.title==this.value)this.value='';});return procFilter(this, window.insert)" id="fo_write" class="boardWrite" cond="!$output->data->count">
    위에 있는 부분에서 cond="!$output->data->count" 이것을 추가했지만 그래도 글쓰기가 다 되는군요

    그리고 애든온을 사용안하는 이유는 이게 가끔 에러를 일이키더군요
    그래서 저는 최대한 사용을 안할려고 합니다

  • ? Lv30
    <!--@if($mid=='게시판 모듈명')-->
    {@
    $args->member_srl = $logged_info->member_srl;
    $args->module_srl = $module_info->module_srl;
    $output = executeQuery('document.getDocumentCount', $args);
    }
    <!--@end-->

    이부분은 해당 게시판의 글 작성 갯수를 불러오는 코드 입니다.
    따라서 이 부분만 적용해서는 글 쓰기 버튼을 눌렀을때는 글 작성 제한을 하지 않겠죠.

    아래 글쓰기 버튼에 코드를 추가해야 갯수가 1개가 넘는 경우 글 작성이 제한이 되겠죠.


    모두 제대로 하셨다면 해당 게시판에서는 게시글 1개라도 작성한 이력이 있다면 작성이 안되어야 합니다.

    제가 샘플로 알려드린 링크의 팁은 하루 한개의 제한이 아님을 참고하셔서 하루 한개 제한 하는 팁을 찾아 적용하셔야 합니다.



    <!--@if($mid=='게시판 모듈명')-->
    식별문구
    <!--@end-->


    이코드가 먹는지 확인하실때는 식별문구를 넣고 해당 코드가 동작하는 페이지(글쓰기) 에서 식별문구가 원하는 곳에서만 나오는지 먼저 확인이 필요합니다.
  • Lv30 ?
    감사 합니다 한번 더 해보겠습니다
    추석인데 이렇게 답글줘서 고맙습니다
  • ? Lv30

    그냥 애드온 사용하세요. 스킨에서 버튼 클릭으로 막으면 이용자들은 금방 주소창에 글쓰기 주소를 넣어 글작성 화면을 띄우는 방법을 알아낼 겁니다.
    저희도 기간동안 갯수 제한 애드온 사용하지만 별 오류는 없습니다.

  • Lv30 ?
    그렇군요 저는 이게 php7.2 최신버전을 사용하다 보니 가끔 요류가 있어서요
    그럼 어떤게 좋은가요 ...? 여러게 있던데요
    그리고 웹지기님은 소스를 보실수 있군요
    저도 본다고 보기는 하지만 중간중간 뭔가뭔지 모르겠더군요
  • ? Lv30
    글 등록 버튼을 막으면 막히겠군요. 제가 글쓰기 버튼이 적용하시는거로 착각했습니다.

    php7.2 이야기 자주하시는데 object 함수 없어진거 외 특별한거 없습니다.

    그것과 상관 없으니 모든 자료마다 php7.2 걱정하실 필요 없습니다. 과거 모듈등에 object 함수가 있다면 new object 로 바꾸면 그만입니다.


    저희가 사용하는 애드온은
    https://xe1.xpressengine.com/index.php?mid=download&package_id=19923002
  • Lv30 ?
    그럼 다음부터는 모두 "new object 이것으로 변경하면되나요 ...?
    일단 적용했습니다 설정은 모두 1로 다 하였습니다
  • Lv30 ?

    여기서도  오류가 발생 하는군요 

    제가 이이런경우가 발생해서 원인도 모르겠고해서 잘 사용안하거든요 ㅎㅎ

     

    설정은 이렇게 했습니다 

    333.PNG

     

    댓글은 제한을 안하기 때문에 공백으로 두고 나머지만 1로 모두 하였습니다 

     

    그렇게하고 글쓰기를 하나 하고 다시 글작성을 할려니 바로 500 에러가 뜨는군요 

     

    sssss.PNG

  • ? Lv30
    최신 모듈이 아닌 모듈은 object 함수가 사용된게 맞습니다. 이럴경우 찾기로 찾아서 일괄 new object로 바꾸면 정상동합니다.

    이는 php7.2 에서 중요 변경사항으로 공지가 이미 오래전에 있었고 대부분 운영자들은 자신이 사용하는 모듈 등을 모두 새로운 함수로 교체 했을 겁니다. 저희도 이미 기존 모듈은 모두 교체해 두었습니다. 물론 저희는 아직 7.2를 사용하지 않지만 내일이라도 사정이 생기면 사용할 수도 있어 작업해 두었습니다.

    7.2에서 object함수가 사용된 모듈 사용시 대부분 500에러와 같은 심각한 에러를 일으킵니다.
  • ? Lv30

    애드온 코드를 열어서 object 함수가 있는지 보세요

  • Lv30 ?

    sejin7940_write_limit.addon.php 여기를 열어보니 new Object 이거 하나있네요 아마도 이것을 
    new BaseObject 이렇게 변경을 하니 되기는 합니다 이게 맞는지 모르겠습니다 

     

    assss.PNG

     

    이렇게 나옵니다 이게 맞는가요 ...?

    왜 다시 로그인으로나오는지 모르겠습니다

  • ? Lv30
    네. 맞습니다. 제가 모바일로 작성하다보니 잘못 적어드렸네요. new BaseObject 가 맞습니다.

    안된다는 자료 열어보시고 모두 바꾸시년 됩니다. 요즘 에디터 가 좋아서 폴더 지정하고 한번에 찾고 한번에 바꾸기 쉽습니다.
  • ? Lv30
    로그인이 나오는건 메시지창이 연결된 템플릿에서 출력하는 거라 어쩔 수 없습니다. 대부분 제한에 걸려 출력되는 문구가 정확한 상황에 맞춤해서 작용되지는 못하는게 현실입니다.
  • Lv30 ?
    로그인 상태에서 로그인 하라고 나오니 영 이상하네요 저것을 변경 하고 사용 하세요 아니면 그냥 사용하세요
  • Lv30 ?
    네 알았습니다
    감사 합니다
  • ? Lv30

    그건 이미 설명드린 이유인데 시스템메시지 쪽 템플릿이 다양하게 준비가 안되어 있어 그렇습니다. 맘에 안드시면 고쳐야 하는데 저도 거기까지는 도움 드릴 실력은 안되네요.

  • Lv30 ?
    네 저도 고처 볼려고 하다가 코어를 만지는것 같아서 그만 뒀습니다 그래서 저것을 간단하게 상단에 창을 띄우면 어떨까하고 생각 하다가 연결을 어떻게 할까 여기까지 생각 하니 못하겠더군요 그래서 포기 했습니다