Q&A

댓글 48

  • 그 게시판 체크박스를 수정할 게시글만 체크하고 게시글 관리누르면 분류수정도 뜨던데요 게시글내용을 봐야한다면 이야기가 틀려지겠지만...
  • @네비
    ㅠㅠ 아쉽게도 내용을 봐야해서 역시 일일이 수정해야할거같네요 ㅠㅠ
  • 간단하게 설명하자면 카테고리 값 변경해주는 함수를 생성해주고 실행할 수 있도록 버튼을 생성해주면 되겠지만, 이에 따라 카테고리 변경 xml추가, 모듈에 액션 함수 추가, read페이지에 스크립트 설정추가 등을 해주셔야 합니다. 또는 DB에 바로 업데이트 처리하는방법이 있겠습니다.
    소스를 수정가능하신분이시라면 답글주시면 아는데로 알려드릴께요.
  • @착한인연
    헛 알려주실수있나요..
  • @라그릿
    쪽지로 소스코드 보내드렸습니다.
  • @착한인연
    감사합니다!!
  • @착한인연
    어..
    보내주신대로 적용을 하고 마지막 소스를 스킨소스에 적용하니 안되서
    스케치북 게시판 리스트 목록 html에 적용하니 보이는거까지는 해결했습니다.

    하지만 게시글 관리처럼 선택하는것을 선택하고 분류를 바꾸고 카테고리업을 눌러보았지만.. 잘못된 요청입니다.. 라고 출력하네요..

    흠..
  • @라그릿
    잘못된 요청으로 나오는 경우는
    분류가 선택되지 않았거나 module.xml에 추가되지 않았을 경우인데..
    혹 카테고리 선택하는곳 셀렉트박스의 id값을 다른것으로 바꾸셨나요.
    아님 그대로 사용하셨나요.?
    또 다른 이유를 생각해보면 기존 다른id와 충돌하는것밖에 없을것 같은데요.
    다시 한번 제가 보내드린 소스설명 살펴보시고 빠진것 없나 봐주세요.
  • @착한인연

    conf 에 있는 모듈.xml을 꺼내서

     

    액션쪽에 액션문구를 넣어두었습니다.

     

    1.png

     

    이런식으로는 만들었는데 체크를 하고 분류를 바꾸고 분류 변경(카테고리업에서 바꿈)을 누르면 잘못된 요청입니다 라고 출력되더군요.. ㅠㅠ

  • @라그릿
    리스트에 붙이시면 내용을 볼수 없지 않나요.
    위 댓글에 보면 내용을 본다고 적혀있어서...
    뷰에 있어야 하는데... 왜냐면 그래야 $document_srl을 받을 수 있습니다.
    $document_srl 문서번호가 없으면 당연히 잘못된 요청으로 나옵니다.
    제가 설명서에
    "내용을 보시고 할 경우라고 하셨으니 사용하시는 skins/스킨이름/read.html(스킨에 따라 이름을 다를수 있음)에서...."

    read.html에 붙이셔야 해요.
    리스트에서 수정하신다면 조금 변경해야겠네요..
  • @착한인연
    헉.. 그런거였군요..
  • @착한인연
    헠 내용을 본다는게 그말이였군요 ㅋㅋㅋㅋㅋ
  • @라그릿
    리스트에서 수정을 원하시는거였나요?
    사이트 찾아서 보니 사이트 잘 꾸며 놓으셨네요.
  • @착한인연
    히익.. 이걸 찾아오다니 위험한 사이트입니다, 오지마세요..
    리스트에서 수정이 더 편할거같기도한데 내용보고 하는것도 그닥 불만이 없습니다. ㅎㅎ!

    도와주셔서 감사합니다,

    는.. 리스트에서 작동하게하려면 어느부분만 살짝 바꾸면 되는부분이 아닌가요?
  • @착한인연
    덕분에 분류도 쉽게 변경할수있게되었고.. 텍스트는 뭔가 좀 누르는감이없어서 모양도 버튼으로 바꿧습니다 헤헤 감사합니다 ㅎㅎ
  • @착한인연
    아아! 자꾸 물어봐서 죄송합니다..

    <block cond="$logged_info->group_list[9089] || $logged_info->group_list[62299] && $mid=='request'" >

    이런식으로 로그인을 어드민이 아니라 그룹설정으로 해서 관리자 그룹과 최고관리자그룹만 보이게 했는데

    다른그룹은 타게시판을 가도 이상이 없지만

    최고관리자로 설정되있는 사람은 타게시판에서도 미드값을 설정해도 보이는게 정상적인거 맞나요?
  • @라그릿
    최고관리자 권한이 있다면 그룹이상이기때문에 보이는게 정상이지만,
    $mid의 조건을 준다면 최고관리자도 보이지 않습니다.
    조건절을 만족하지 않기때문에 나오지 않아야 합니다.
    아래와 같이 괄호를 넣어보세요.
    <block cond="($logged_info->group_list[9089] || $logged_info->group_list[62299]) && $mid=='request'" >

    리스트에서 카테고리 바로 변경하는건 잠깐 보고 알려드릴께요.
    넣을자리가 애매해서 레이어로 올려야겠네요..ㅎㅎ
  • @착한인연
    아아 감사합니다.
    괄호로 묶어줘야하는군요..

    사실 코드를 찾아서 수정하기만했지..
    오늘은 여러모로 많이 배워가는 기분입니다 ㅎㅎ 감사합니다
  • @착한인연
    그보다 사이트는 어떻게 찾으신거지..
    링크도 사진도 부정확했는데 말이죠..ㄷㄷ
  • @라그릿
    구글 검색하면 다 나와요.
    뭐라고 치면 나오는지 궁금하시죠. 이미지에 있는 글만 쳐도 나와요.ㅁㄷㅍㅍ
  • @착한인연
    이미지에 그거 안나오게하려고 다 가려둔건데..크흠..
    나온 글씨라곤 요청 보류 포기 완료..
  • @라그릿
    ㅎㅎㅎ
    일단 저는 운동 갈 시간이라서 나중에 와서 리스트에서 바로 변경하는것 알려드릴께요.
  • @라그릿

    리스트에 카테고리 부분 TD나 카테고리 텍스트를 누르시면 그 위치에 레이어가 올라옵니다.

    만들다 보니 옵션이 많아 졌네요.코드에서 옵션을 선택할 수 있습니다.

    선택형을 라디오버튼 타입/ 셀렉트박스 타입 2가지

    내용도 같이 보기 옵션 / 확장변수 보기 옵션도 추가되었습니다.

    기존에 수정한 뷰페이지에서 적용되던것도 같이 될수 있도록 선택자 ID를 달리하여 같이 사용가능합니다.

    저는 뷰페이지의 모양을 저렇게 만들것임..

    아무튼 리스트페이지에서 클릭하시면 아래 이미지와 같이 이미지에는 내용보기/확장변수도 같이 보기설정된것임.

    쪽지에는 이미지 첨부가 안되서 소스는 그냥 list_nomal.html 하단에 그냥 붙여넣기만 하시면 됩니다.

    그리고 관리그룹으로 블럭처리 설정되어 있있습니다.

    20160713_172704.png

    소스가 좀 지져분하지만... 그냥 여기 붙입니다.

    <block  cond="$grant->manager" >
    <div id="layer_cate_update" style="z-index: 9999999;display:none;position:absolute;background-color:#eee;padding:10px;" >
    <div class="contents_view"></div>
    <select  name="category_srl_S" id="category_srl_S" class="category_srl_S" style="width:130px;">
    <option value="">{$lang->category}</option>
    <option loop="$category_list => $val" disabled="disabled"|cond="!$val->grant" value="{$val->category_srl}">
    {str_repeat("  ",$val->depth)} {$val->title}
    </option>
    </select>
    <ul class='category_srl_R'>
    <li  loop="$category_list => $val" ><input type="radio" name="category_srl_R" id="category_srl_R-{$val->category_srl}"  value="{$val->category_srl}" class="radio"><label for="category_srl_R-{$val->category_srl}"> {$val->title}</label></li>
    </ul>
    <ul><li><button type="button"  class="pcu_modify bd_btn">수정</button> <button type="button"  class="pcu_close bd_btn">닫기</button></li></ul>
    </div>

    <script>
    var Select_Mode;
    //Select_Mode ="R"; //R입력시 라디오 버튼 선택모드 (지겨울까봐) // 사용시 주석해제
    var contents_view;
    //contents_view ="Y"; //내용도 바로 보기 사용시 설정 //  사용시주석해제
    var contents_view_size = 600;
    var contents_view_extra = 5; //확장변수도 볼경우 갯수설정

    jQuery(document).ready(function($){

    var lay_pop = $('#layer_cate_update');

    if (Select_Mode=='R')
    {
    $('.category_srl_S').hide();

    }else
    {
    $('.category_srl_R').hide();
    }

    $('.cate').click(function() {

    lay_pop.css('top', ($(this).position().top + 35) + 'px');
    lay_pop.css('left', ($(this).position().left) + 'px');
    $('.pcu_modify').val($(this).parent().find('input:checkbox:first').val());

    if (contents_view=='Y')
    {
    $('.contents_view').css('width',contents_view_size+'px');
    $('.contents_view').css('background-color','#fff');

    function c_view(BoardContent)
    {
    var temp_contents = "<h1>내용</h1>" + BoardContent.oDocument.content;

    if (contents_view_extra > 0)
    {
    temp_contents +="<div style='width:100%;border: 1px solid #DDD;'></div><h1>확장변수</h1>";

    for (var i = 0; i < contents_view_extra; ++i) {
    temp_contents += BoardContent.oDocument.extra_vars[i].value +"<br>";
    }
    }

    $(".contents_view").html(temp_contents);

    }
    $.exec_json("board.dispBoardContentView",{mid:"{$mid}",document_srl:$(this).parent().find('input:checkbox:first').val()}, c_view);
    }
    lay_pop.fadeIn();
    lay_pop.focus();

    });

    $('.pcu_close').click(function() {

    if (Select_Mode=='R') $('input:radio[name=category_srl_R]').attr('checked',false);
    $('.pcu_modify').val('');
    lay_pop.hide();
    });


    $('.pcu_modify').click(function() {


    var document_srl = $(this).val();
    var category_srl;

    if (Select_Mode=='R')
    {
    if (!$('input:radio[name=category_srl_R]:checked').val())
    {
    alert('카테고리가 선택되지 않았습니다.');
    return false;
    }

    category_srl = $('input:radio[name=category_srl_R]:checked').val();

    }else
    {
    if (!$('#category_srl_S').val())
    {
    alert('카테고리가 선택되지 않았습니다.');
    return false;
    }

    category_srl = $('#category_srl_S').val()
    }

    CategoryUpList(document_srl, category_srl);
    });
    });
    function CategoryUpList(document_srl, category_srl) {
        var params = {
            document_srl : document_srl,
            category_srl : category_srl   
        };
        exec_json('document.procDocumentCategoryUp', params, function() { location.reload();  }); // 실행
    }
    </script>
    </block>

     

     

     

     

     

  • @착한인연
    세상에 이렇게 이쁘게 해주시다니.. 감사합니다..ㄷㄷ

    관리그룹으로 블럭처리했다는건..
    게시판설정에서 따로 설정한 사람만 된다는거 맞죠?
  • @착한인연
    엇.. 사진을 자세히보니..

    본문 내용안에서 분류를 바꾸는거에

    타이틀 / 셀렉트 / 적용 순으로 놔두셨네요..

    적용버튼은 따로 버튼 css를 바꿔주신건가요!?
  • @라그릿
    본문에것은 제가 테스트로 만들다보니 저렇게 테이블로 바꾼것에. 저는 카테고리도 변경및 확장변수도 변경되겠끔 한것에요 위소스는 리스트에서 바꿀수 있도록한 코드입니다. 관리그룹에 포함되면 나타나도록 설정되었다는것입니다.리스트에서 작동잘되나요?
  • @착한인연
    글쿤요 테이블을 이용하신거군요!
    으으 근무중이라서 테스트는 못해보았지만.. 소스코드 하나씩 읽어보면서 이건 이거다라고 유추정도만 하고있습니다 ㅎㅎㅋㅋㅋ
  • @라그릿
    컬러로 입혀진건 확장변수 검색에 쓰이는것에요 파킹티켓발행시스템으로 QR코드및 NFC검사처리를 위해서
  • @착한인연
    아, 제가 물어본건

    CategoryModification 부분을..!

    저게 일반적인 테이블 태그의 모양이 아닌거같아서 ㅋㅋ
    그리고 Apply의 버튼모양도.. 제가아는 XE 공식버튼 모양과 매우달라서 CSS 수정을 하신건가 해서 !
  • @라그릿
    <button type="submit" onclick="CategoryUp(1108);return false;" class="bd_btn">Apply</button> 그냥 버튼입니다.
    댓글쓰기 밑에 있는 버튼과 같은
    <input type="submit" value="등록" class="bd_btn fr used">
    인풋으로 써도 되구요. 저번에 뷰페이지에서는 자바스크립트로 다 처리하였지만
    이번 리스트페이지에서는 Jquery로 처리함.
  • @라그릿

    스케치북 기본적으로 지원하는 css입니다.
    아래와 같습니다.

    <block cond="$grant->manager">
    <table class="et_vars exForm bd_tb" cond="$mi->use_category=='Y' && $category_list" >
    <tr>
    <th>{$lang->Category_modification}</a>
    </th>
    <td>
    <select  name="category_srl" id="category_srl" class="category">
                        <option value="">{$lang->category}</option>
                        <option loop="$category_list => $val" disabled="disabled"|cond="!$val->grant" value="{$val->category_srl}" selected="selected"|cond="$val->grant&&$val->selected||$val->category_srl==$oDocument->get('category_srl')">
                            {str_repeat("  ",$val->depth)} {$val->title} ({$val->document_count})
                        </option>
    </select>
    </td>
    <th ><button type="submit" onclick="CategoryUp({$document_srl});return false;" class="bd_btn">{$lang->Apply}</button>

    </th>
    </tr>
    </table>
    <script type="text/javascript">
    function CategoryUp(document_srl) {
        var params = {
            document_srl : document_srl,
            category_srl : document.getElementById("category_srl").options[document.getElementById("category_srl").selectedIndex].value
        };
        exec_json('document.procDocumentCategoryUp', params, function() { location.reload();     }); // 실행
    }
    </script>
    </block >

     

  • @착한인연
    아 스케치북 css 였군요.. !
  • @라그릿
    ㄱ..그것도 모르고 아까부터 혼자 테이블 css 만들고 있었는ㄷ...

    ㅈ..주륵..

    모양이 이뻐서 만들고있었는데에엨...
  • @착한인연
    그래도 정말 감사드립니다, 어제와 오늘일로 코드보는법도 더 배우게되고..
    이렇게 직접 짜기도.. 짜다가 알아버린거지만 짜볼 기회를 주셔서.. ㅋㅋ
  • @라그릿
    일 열심히 하시구요. 퇴근 후 테스트해보세요.
    오늘도 즐거운 하루 되세요.
  • @착한인연
    감사합니다 ㅎㅎ!
  • @착한인연
    으음.. 점심시간이라 잠시 적용했는데 안되는군요..
    카테고리를 눌러도 뜨지 않고..
    추가로 더 설정하신게 있나요?
  • @라그릿

    다시 보니 코드 하일라이트 콤퍼넌트에서 자동으로 태그가 지워졌네요.

    <br>태그가 지워지면서 문법 에러가 발생되었네요.

    다시 올려요.

     

    <block  cond="$grant->manager" >
    <div id="layer_cate_update" style="z-index: 9999999;display:none;position:absolute;background-color:#eee;padding:10px;" >
    <div class="contents_view"></div>
    <select  name="category_srl_S" id="category_srl_S" class="category_srl_S" style="width:130px;">
    <option value="">{$lang->category}</option>
    <option loop="$category_list => $val" disabled="disabled"|cond="!$val->grant" value="{$val->category_srl}">
    {str_repeat("  ",$val->depth)} {$val->title}
    </option>
    </select>
    <ul class='category_srl_R'>
    <li  loop="$category_list => $val" ><input type="radio" name="category_srl_R" id="category_srl_R-{$val->category_srl}"  value="{$val->category_srl}" class="radio"><label for="category_srl_R-{$val->category_srl}"> {$val->title}</label></li>
    </ul>
    <ul><li><button type="button"  class="pcu_modify bd_btn">수정</button> <button type="button"  class="pcu_close bd_btn">닫기</button></li></ul>
    </div>

    <script>
    var Select_Mode;
    //Select_Mode ="R"; //R입력시 라디오 버튼 선택모드 (지겨울까봐) // 사용시 주석해제
    var contents_view;
    //contents_view ="Y"; //내용도 바로 보기 사용시 설정 //  사용시주석해제
    var contents_view_size = 600;
    var contents_view_extra = 5; //확장변수도 볼경우 갯수설정

    jQuery(document).ready(function($){

    var lay_pop = $('#layer_cate_update');

    if (Select_Mode=='R')
    {
    $('.category_srl_S').hide();

    }else
    {
    $('.category_srl_R').hide();
    }

    $('.cate').click(function() {

    lay_pop.css('top', ($(this).position().top + 35) + 'px');
    lay_pop.css('left', ($(this).position().left) + 'px');
    $('.pcu_modify').val($(this).parent().find('input:checkbox:first').val());

    if (contents_view=='Y')
    {
    $('.contents_view').css('width',contents_view_size+'px');
    $('.contents_view').css('background-color','#fff');

    function c_view(BoardContent)
    {
    var temp_contents = "<h1>내용</h1>" + BoardContent.oDocument.content;

    if (contents_view_extra > 0)
    {
    temp_contents +="<div style='width:100%;border: 1px solid #DDD;'></div><h1>확장변수</h1>";

    for (var i = 0; i < contents_view_extra; ++i) {
    temp_contents += BoardContent.oDocument.extra_vars[i].value +"<br>";
    }
    }

    $(".contents_view").html(temp_contents);

    }
    $.exec_json("board.dispBoardContentView",{mid:"{$mid}",document_srl:$(this).parent().find('input:checkbox:first').val()}, c_view);
    }
    lay_pop.fadeIn();
    lay_pop.focus();

    });

    $('.pcu_close').click(function() {

    if (Select_Mode=='R') $('input:radio[name=category_srl_R]').attr('checked',false);
    $('.pcu_modify').val('');
    lay_pop.hide();
    });


    $('.pcu_modify').click(function() {


    var document_srl = $(this).val();
    var category_srl;

    if (Select_Mode=='R')
    {
    if (!$('input:radio[name=category_srl_R]:checked').val())
    {
    alert('카테고리가 선택되지 않았습니다.');
    return false;
    }

    category_srl = $('input:radio[name=category_srl_R]:checked').val();

    }else
    {
    if (!$('#category_srl_S').val())
    {
    alert('카테고리가 선택되지 않았습니다.');
    return false;
    }

    category_srl = $('#category_srl_S').val()
    }

    CategoryUp(document_srl, category_srl);
    });
    });
    function CategoryUpList(document_srl, category_srl) {
        var params = {
            document_srl : document_srl,
            category_srl : category_srl   
        };
        exec_json('document.procDocumentCategoryUp', params, function() { location.reload();  }); // 실행
    }
    </script>
    </block>

     

     

  • @착한인연
    ..무엇이 문제일까요 되질 않네요.. ㄷㄷ
  • @라그릿
    어떤증상이 나오시나요? 아무런 작동이 안되시나요?
    잘못된 요청이라는 말도 안나오나요?
  • @라그릿
    다시 보니 위에 코드에 마지막에

    CategoryUp(document_srl, category_srl);
    });
    });
    function CategoryUpList(document_srl, category_srl) {

    카테고리업으로 되어 있네 코드 새로 붙이면서 이전 이름이 들어갔네요.
    CategoryUp을 CategoryUpList로 바꾸세요.뷰코드와 충돌안할려고 따로 한건데.
  • @착한인연
    크흠, 아무리 해도 안되네요..

    도와주셔서 감사합니다, 이제 인연님도 쉬셔용 ㅎㅎ 본문에 들어가서 누르는것도 편하게 잘사용중입니다 ㅎㅎ!
  • @라그릿
    그렇군요..쩝...편안한 잠자리 되세요.
  • @착한인연
    흑흑, 작업도중 불편해 리스트를 적용하려했지만

    1년이 지나도 안되는군요, 제 나름 배운대로 수정했지만..
  • @착한인연
    지금 생각해보니

    div로 창은 구현되어있지만
    카테고리 자체가 클릭이 안되고 선택자체가 안되는거였네요....
    애초부터 문제점은 거기였었군요
  • @라그릿
    궁금하네요
    근데 저걸 구현하려면 board 모듈을 꼭 건드려야 하나 봅니다..!
  • 훈훈해서 추천
  • @오징
    크.. 크흠.. 감사합니다 ㅋㅋ