Extra Form
PHP PHP 7.4
CMS Rhymix 2.x

스크린샷 2021-05-06 11.57.42.png

 

특정 게시판 제목 입력폼에 "제목" 대신 원하는 메세지를 넣고 싶습니다.

스킨 개별 html 파일을 수정할시 전체 게시판에 적용 될것 같아서 

내용을 검색해 보니 아래 비슷한 내용을 찾았는데 이 방법이 유효한지

조금 더 효과적인 방법이 있는지 궁금 합니다. 

 

 

binst

2020.09.12 10:55:54

 

#comment_1454067

게시판 스킨의 글작성 파일속 input text 를 수정하여도 되지만... 

수정 편의성 및 예상치 못한 문제를 피하기 위에 제이쿼리를 이용하여 페이지 렌더링과 동시에 적용됩니다.

 

아래의 소스에서 mid부분을 적용할 게시판으로 변경하고 (다수 게시판 적용시 || 을 이용하여 이어서 소스작성)

해당 소스를 레이아웃 하단 아무곳 혹은 게시판스킨의 write_form.html 의 하단등 아무곳에나 넣으세요

 

// mid이름 board 혹은 board2에서만 작동

<block cond="$mid=='board' || $mid=='board2'">

   <script type="text/javascript">

      $(document).ready(function() {

         //제목란에 아래의 문구가 자동으로 입력

         $("input[name=title]").val("자동으로 입력되는 제목");

         //내용란에 아래의 문구가 자동으로 입력

         $("input[name=content]").val("자동으로 입력되는 내용");

         //제목 입력칸 숨기기

         $("input[name=title]").hide();

         //내용 (에디터영역) 숨기기

         $(".write_editor").hide();

      });

   </script>

</block>

  • profile

    유요한것 같습니다.

    방법이 있으시면 항상 시도 해보시고 문제가 있다면 본인의 코드와 무엇때문에 다른지 확인해보시면 좋습니다.

    굳이 저렇게 안하더라도 제목이라고 출력되는 항목에

    <[email protected]($mid=='board' || $mid=='board2')-->원하는내용<[email protected]>제목<[email protected]>

    이렇게 사용가능합니다.

     

    심화한다면 in_array($mid, array('board', 'board2')) 를 사용할 수 있겠네요. (나중에 추가할땐 array안에 추가하고 싶은 게시판만 추가하시면 됩니다.)

  • profile profile
    사실 보드 스킨 구조부터 좀 헤메는 중입니다. read.html , write.form.html 파일들 열어보면서 "제목"으로 인풋 코드 위치를 찾는데 아직 못찾았습니다. 파일 찾아서 알려 주신 내용을 참조 하면 해결이 될것 같네요. 감사 합니다!
  • profile profile
    스킨이 유료인것 같은데 대게는 write_form.html 파일에 글쓰기동작에 필요한 내용들이 들어가게 됩니다.

    거기에서 제목에 해당되는 부분이 어디인지부터 찾아보셔야 할 것 같은데요.

    class="ppip" 를 가지고 있고 placeholder 속성이 "제목"이라고 입력되어 있는 부분을 찾으시면 될 것 같습니다.
  • profile profile
    <input class="ppip" cond="$oDocument->getTitleText()" type="text" name="title" id="subject" value="{$oDocument->getTitleText()}" />
    <input class="ppip" cond="!$oDocument->getTitleText()" type="text" name="title" id="subject" placeholder="{$lang->title}" required />

    이 부분인것 같아서 살펴보고 있습니다.
  • profile profile
    </div><[email protected]><div class="ppwrite_title use_ctg">
    <input class="ppip" cond="$oDocument->getTitleText()" type="text" name="title" id="subject" value="{$oDocument->getTitleText()}" />
    <input class="ppip" cond="!$oDocument->getTitleText()" type="text" name="title" id="subject" placeholder="{$lang->title}" required />
    <[email protected]($mid=='board_VeUk26')-->브랜드명을 꼭 적어주세요<[email protected]>제목<[email protected]>
    </div>

    이런 형식으로 하는게 아닌가보네요. 제목 부분이 잘 이해가 되지 않습니다.
  • profile profile
    placeholder="{$lang->title}" 이부분에 제목이라고 표기되는 부분이 {$lang->title}입니다.

    윗댓글 다 읽어보시면 해당 코드안에 힌트가 다 있다는걸 알 수 있습니다.
  • profile profile
    <input class="ppip" cond="$oDocument->getTitleText()" type="text" name="title" id="subject" value="{$oDocument->getTitleText()}" />
    <input class="ppip" cond="!$oDocument->getTitleText()" type="text" name="title" id="subject" placeholder="{$lang->title}" required />
    </div>
    <[email protected]($mid=='board_VeUk26')-->브랜드명을 꼭 적어주세요<[email protected]> "{$lang->title}" <[email protected]>

    이렇게 해봤는데 실패네요. if문을 어떻게 쓰는지 잘모르겠습니다.
  • profile profile
    지난번 알려 주신 내용으로 코드 수정해서 잘사용하고 있습니다. 그런데 예시를 들어주신 코드가 메세지 하나를 다른 게시판에 적용할때는 mid추가로 쉽게 해결이 되는데 제가 새롭게 하고 싶은 내용은 각각의 게시판에 따로 적용하고 if구문을 잘 사용하지 못하다보니 적용이 잘 안되네요. 그러니까 a 게시판에는 1번 문구가 출력되게 하고 b 게시판에는 2 번 문구가 출력 되도록 각각 지정하려면 어떻게 해야 할까요? int 문을 사용하라는것 같은데 맞나요?
  • profile profile

    <[email protected]($mid=='board_VeUk26' || $mid=='추가게시판mid' )-->로 수정하세요.

  • profile profile
    <input class="ppip" cond="!$oDocument->getTitleText()" type="text" name="title" id="subject" placeholder="<[email protected]($mid=='board_VeUk26' || $mid=='board_sooL68' )-->출력 메세지1번, 출력 메세지2<[email protected]>{$lang->title}<[email protected]>" required />

    써놓고 보니 이런데 mid 1 번 게시판에 a 메세지 출력 mid2번 메세지에는 b 메세지가 각 따로 출력 되게 하려면 뭔가 출력 쪽에도 구분해주는 방법이 들어가야 하지 않나요?
  • profile
    <input class="ppip" cond="!$oDocument->getTitleText()" type="text" name="title" id="subject" placeholder="<[email protected]($mid=='board_VeUk26')-->브랜드명을 꼭 적어주세요<[email protected]>{$lang->title}<[email protected]>" required />

    input 태그의 placeholder 이 부분 안에 if문을 넣으셔야 될 것 같습니다.
  • profile profile

    스크린샷 2021-05-06 14.04.37.png.jpg

     

    이렇게 적용해 봤는데 아직 변경은 안된것 같습니다. 

  • profile profile
    감사 합니다. 해당 구문으로 해결 되었습니다. 같은 내용의 코드가 두개가 존재 했는데 윗 부분만 수정하고 아랫 부분을 수정하지 않아서 한참 헤메다가 또 다른 분의 도움을 받아서 원하는대로 잘 수정 되었습니다. 도움 주신 분들 감사 합니다.
  • profile profile
    하나코님 조언으로 지난 번 이 문제를 해결 했습니다. 그런데 이 게시글과 댓글에서는 하나의 출력 문구를 여러 게시판에서 출력하는 옵션은 있는데 반대로 각각의 게시판에서 각각의 문구를 출력하는 방법은 어떻게 할지 잘모르겠네요. <input class="ppip" cond="!$oDocument->getTitleText()" type="text" name="title" id="subject" placeholder="<[email protected]($mid=='board_VeUk26')-->브랜드명을 꼭 적어주세요<[email protected] if($mid=='board_Veboard_sooL68')-->게시글 작성시 1,000피클 포인트가 차감 됩니다<[email protected]>{$lang->title}<[email protected]>" required /> 지금 코딩을 실행할 상황이 안되어서 일단 메모장에 이렇게 만들어 봤는데 아무래도 안될것 같아서 도움을 요청 드려 봅니다.
  • profile profile

    여러 게시판에서 문구를 다르게 하려면 아예 간단하게 jQuery로 하는 것도 괜찮을 것 같습니다.

    각각의 게시판 설정에 들어가셔서, '하단 내용'에 아래와 같이 입력해보세요.

    예를 들어, '브랜드명을 꼭 적어주세요'라고 나오게 하고 싶으면 해당 게시판 설정의 하단 내용에 아래와 같이 입력하고 저장하면 됩니다.
    <script>
    $('#subject').attr('placeholder', '브랜드명을 꼭 적어주세요');
    </script>

    마찬가지로 내용만 바꿔주고 다른 게시판에도 적용할 수 있습니다.
    <script>
    $('#subject').attr('placeholder', '게시글 작성시 1,000피클 포인트가 차감 됩니다');
    </script>

    이렇게 하면 게시판 스킨을 수정할 필요 없이, 게시판 별로 설정에서 간단하게 placeholder의 내용을 바꿀 수 있습니다.
    물론 이 방법으로 적용을 하셨다면 게시판 스킨에서 바꾼 부분은 다시 원래대로 해주셔도 되겠습니다.

  • profile profile
    아 게시판 하단에서 스크립트가 되는군요. 다양한 스크립트를 게시판 별로 설정도 간단하게 되겠네요. 정말 좋은 팁 감사 합니다.
  • profile profile

    스크린샷 2021-05-10 09.12.05.png

    여기에 이렇게 넣으라고 알려 주신 것 같은데 적용이 안되네요.

  • profile profile
    {$module_info->footer_text} 가 글쓰기 페이지에도 적용이 되어 있는지 확인해보세요.
    없다면 해당 코드를 게시판 스킨 글쓰기 페이지 하단에도 넣어야지 작동할겁니다.
  • profile profile

    스크린샷 2021-05-10 12.40.21.png

     

    그런데 제가 쓰는 보드스킨의 문제인지 게시판 설정 상단 / 하단에 넣는 메세지는 아예 출력이 안되네요.

    스케치북과 디폴트 스킨에는 이런식으로 콘텐츠 하단에 뜨는걸 보니 위치 입력을 잘못 한것 같습니다.

     

     

    스크린샷 2021-05-10 12.43.57.png

     

    알려 주신 방법을 참조해서 추가 검색을 통해 해결해 보겠습니다. 조언 감사 드립니다. 

  • profile profile

    게시판 스킨의 글쓰기 페이지 최하단에 {$module_info->footer_text} 넣어보셨나요?
    게시판 설정 하단 내용은 스킨에 {$module_info->footer_text} 가 있어야 나오게 되어있습니다.

    설정의 하단 내용에 {$module_info->footer_text} 를 넣는 게 아니라, 게시판 스킨의 write_form.html 같은 파일의 하단에 직접 넣으시고 저장하셔야 됩니다.

    디폴트 스킨은 write_form.html 최하단에 <include target="_footer.html" />로 {$module_info->footer_text}가 나오게 되어 있네요.

     

    그래도 이 방법이 정 안 되면 게시판 스킨 write_form.html에 이런 식으로 넣어서 하는 방법도 있겠네요.

     

    <script cond="$mid=='board_VeUk26'">

    $('#subject').attr('placeholder', '브랜드명을 꼭 적어주세요');

    </script>

     

    <script cond="$mid=='board_Veboard_sooL68'">

    $('#subject').attr('placeholder', '게시글 작성시 1,000피클 포인트가 차감 됩니다');

    </script>

  • profile profile
    정말 감사 합니다.
  • profile profile

    스크린샷 2021-05-12 14.14.22.png

     

    제가 스킨 입력 위치를 잘 못찾은것이였네요.

     

    <script>
    $('#subject').attr('placeholder', '내용');
    </script>
     

    이 한줄 스크립트로 게시판에서 간단하게 해결 했고 앞으로도 너무 관리가 편할 것 같습니다. 다시 한번 감사 드립니다. 

  • profile profile
    잘 해결되셨다니 다행입니다 :)