Q&A

xedition 게시판 사용중 입니다!

 

A라는 특정 게시판을 생성해서 이 게시판에는 무조건 1개의 게시글만 작성할 수 있도록 하고싶습니다.

 

예를들어 홍길동이라는 사람이 먼저 글을 적어놓은 상태라면 다른 사람들은 그사람이 글을 삭제하기 전까지는 게시글 등록이 불가합니다.

 

한마디로 선착순으로 누가빨리 적냐의 게시판을 하나 수정해서 쓰고싶습니다만..

 

방법좀 알려주시면 감사하겠습니다.

댓글 13

  • 2018.08.27 16:22 #1050244
    사이트에 XE전문가가 없다는(?) 전제하에는 게시글 total값이 1인 경우 쓰기 버튼을 없애는 방법이 있을거 같습니다.
  • 2018.08.27 16:23 #1050249
    혹시 조금 더 나아가서 특정 게시판의 게시글 total값이 1인 경우 등록버튼 클릭 시 alert팝업창이 뜨면서 불가하다는 내용이 출력될 수도있을까요?
  • 2018.08.27 16:25 #1050254
    <!--@if($total => 1)-->
    <a href="#" onClick="alert('이미 누군가가 등록해서, 더 이상 게시글을 쓸 수 없다네.')">
    <!--@else-->
    블라블라
    <!--@end-->


    $total 일 수도 있고, $document_total 일 수 있습니다.
    전체 값을 가져오는 변수로 사용하시면 됩니다.
  • 2018.08.27 16:26 #1050258
    헐............ 정말 감사드립니다 혹시 어느부분에 적용해야되는지도 조언을 받아볼 수 있을까요? 스킨 폴더에 write_form 인가요?
  • 2018.08.27 16:31 #1050266
    음.. 조금 바꿔서 list.html인데요.

    {@
    $oDB = &DB::getInstance();
    $query = $oDB->_query('select count(*) as total from xe_documents where module_srl = 게시판모듈번호');
    $result = $oDB->_fetch($query);
    }

    {$result->total}

    $result->total 값이 이제 해당 게시판 모듈 번호의 게시글 수를 가져오게 됩니다.
    list.html의 129번 라인

    <a href="{getUrl('act','dispBoardWrite','document_srl','')}" class="btn"><i class="xi-pen"></i> {$lang->cmd_write}</a>


    <!--@if($result->total => 1)-->
    <a href="#" onClick="alert('이미 누군가가 등록해서, 더 이상 게시글을 쓸 수 없다네.')">
    <!--@else-->
    <a href="{getUrl('act','dispBoardWrite','document_srl','')}" class="btn"><i class="xi-pen"></i> {$lang->cmd_write}</a>
    <!--@end-->


    로 바꿔보시기 바라며, 상단의 {@} 의 코드는 꼭 list.html 상단에 붙여주세요.
    그리고 게시판 모듈번호는 게시판의 고유 module_srl 입니다.
  • 2018.08.27 16:36 #1050278
    앗 담당자님 질문을 잘못 올려드렸습니다.

    그렇다면 리스트에서 게시물이 없을경우 쓰기버튼을 누르면 작성하는 부분으로 넘어가지않고 바로 고정된 내용과 고정된 제목이 작성되게할 수도있나요?
  • 2018.08.27 16:39 #1050284
    리스트에서 게시물이 없다는건 결국 첫 게시라는건데.

    아예 사용자가 건들일 필요없이 바로 작성되는건가요? 아니면 글쓰기 버튼을 누르되 등록버튼을 눌러야 하는건가요?

    만약 전자라면.. 별도의 php 파일을 만들어서 import시켜고 될거고, 그리고 조건문에 처리 이전 document 값이 있는가 없는가 확인 후 처리하게 해야할거구요.
    후자라면, 그냥 write_form을 수정하면 됩니다.


    *--------------- 쓰고 넘기니 잘못되어서 보니 삭제되었네요 ㅋㅋ------------*

    모듈에서 제한한다면 model 인가 controller를 건들어야 하는데, 저는 아직 그런 매우 고오오급(?) 적인 건.. 바로바로 답변 드릴 수 없어서 ㅜㅜ

    아니면, write_form.html 에서 폼 전체를 저렇게 total 값이 1 이상이면 한가운데에 "작성할 수 없다네" 로 띄워도 됩니다 ^^.

    어짜피, 그 게시판에서 1인거고,

    xediton을 쓰는 게시판이 많다면 조건문에

    <!--@if($mid == 게시판mid값)-->
    <!--@end-->

    로 감싸주면 되니까요

    댓글 갯수를 리미트 한다는건 한개의 게시물에서 댓글 갯수 몇개가 넘으면 댓글 작성을 못하게 한다는건데,

    그건 지금처럼 특정 document_srl 의 comment값이 ~개 이상이거나 같을때 write_comment.html 또는 특정 form을 가려버리고 안띄우면 됩니다.

    만약 프로그래밍상에서 막을거라면 저것도 controller로 가면..
  • 2018.08.27 16:41 #1050289
    근데 이러나 저러나 어짜피 이것들은 거의 임시방편인 셈이고.. 나중에 제대로 된 프로그래밍을 해야할거에요.

    규모가 얼마나 되는지 몰라서 대충.. 처리가 가능한 방향대로 설명을 해드리고 있는데, 새벽이 너무 깊어 제대로 된 사고가 안되네요 @_@
  • 2018.08.27 16:43 #1050297
    아이고 이렇게만 답변주셔도 얼마나 영광스러운지 모르겠습니다 ㅠㅠ
  • 2018.08.27 16:43 #1050293
    다름이아니고 휴식 게시판을 만들려고 하거든요..

    휴식을 누가 사용중이면 사용못하게하려고 writeform 부분에서 막고싶어서 그렇습니당 ㅠㅠ
  • 2018.08.27 16:45 #1050301
    그렇다면.. 정말 엄청큰 커뮤니티는 아니고 사내에서 휴식 게시판을 만들어서 사용중인지 아닌지 알고 싶은 용도라면..

    write_form 에서 상단의 팁을 사용해서 1이상이거나 같으면 아예 폼을 안띄우고 안내 이미지 또는 문구를 띄우면 되겠네요.

    댓글도 마찬가지로, 등록 버튼을 없애고, 댓글 textarea에 value="댓글 입력 불가!" 라거나..

    너무 무책임한 말같지만, 너무 피곤해서 가볼게요!

    혹시라도 내일 확인했을때에도 해결되지 않으셨으면 연락드리겠습니다 :)
  • 2018.08.27 16:46 #1050305
    도움이 되시길 바라면서 몇몇개 링크 남겨봅니다 :)

    - XE if조건문
    http://www.xeschool.com/xe/xenote_template_syntax_if
  • 2018.08.27 16:46 #1050309
    조언 감사드립니다 ㅠㅠ