간단하게 설명하자면 카테고리 값 변경해주는 함수를 생성해주고 실행할 수 있도록 버튼을 생성해주면 되겠지만, 이에 따라 카테고리 변경 xml추가, 모듈에 액션 함수 추가, read페이지에 스크립트 설정추가 등을 해주셔야 합니다. 또는 DB에 바로 업데이트 처리하는방법이 있겠습니다. 소스를 수정가능하신분이시라면 답글주시면 아는데로 알려드릴께요.
잘못된 요청으로 나오는 경우는 분류가 선택되지 않았거나 module.xml에 추가되지 않았을 경우인데.. 혹 카테고리 선택하는곳 셀렉트박스의 id값을 다른것으로 바꾸셨나요. 아님 그대로 사용하셨나요.? 또 다른 이유를 생각해보면 기존 다른id와 충돌하는것밖에 없을것 같은데요. 다시 한번 제가 보내드린 소스설명 살펴보시고 빠진것 없나 봐주세요.
리스트에 붙이시면 내용을 볼수 없지 않나요. 위 댓글에 보면 내용을 본다고 적혀있어서... 뷰에 있어야 하는데... 왜냐면 그래야 $document_srl을 받을 수 있습니다. $document_srl 문서번호가 없으면 당연히 잘못된 요청으로 나옵니다. 제가 설명서에 "내용을 보시고 할 경우라고 하셨으니 사용하시는 skins/스킨이름/read.html(스킨에 따라 이름을 다를수 있음)에서...."
최고관리자 권한이 있다면 그룹이상이기때문에 보이는게 정상이지만, $mid의 조건을 준다면 최고관리자도 보이지 않습니다. 조건절을 만족하지 않기때문에 나오지 않아야 합니다. 아래와 같이 괄호를 넣어보세요. <block cond="($logged_info->group_list[9089] || $logged_info->group_list[62299]) && $mid=='request'" >
리스트에서 카테고리 바로 변경하는건 잠깐 보고 알려드릴께요. 넣을자리가 애매해서 레이어로 올려야겠네요..ㅎㅎ
<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();
<button type="submit" onclick="CategoryUp(1108);return false;" class="bd_btn">Apply</button> 그냥 버튼입니다. 댓글쓰기 밑에 있는 버튼과 같은 <input type="submit" value="등록" class="bd_btn fr used"> 인풋으로 써도 되구요. 저번에 뷰페이지에서는 자바스크립트로 다 처리하였지만 이번 리스트페이지에서는 Jquery로 처리함.
<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();
댓글 48
소스를 수정가능하신분이시라면 답글주시면 아는데로 알려드릴께요.
보내주신대로 적용을 하고 마지막 소스를 스킨소스에 적용하니 안되서
스케치북 게시판 리스트 목록 html에 적용하니 보이는거까지는 해결했습니다.
하지만 게시글 관리처럼 선택하는것을 선택하고 분류를 바꾸고 카테고리업을 눌러보았지만.. 잘못된 요청입니다.. 라고 출력하네요..
흠..
분류가 선택되지 않았거나 module.xml에 추가되지 않았을 경우인데..
혹 카테고리 선택하는곳 셀렉트박스의 id값을 다른것으로 바꾸셨나요.
아님 그대로 사용하셨나요.?
또 다른 이유를 생각해보면 기존 다른id와 충돌하는것밖에 없을것 같은데요.
다시 한번 제가 보내드린 소스설명 살펴보시고 빠진것 없나 봐주세요.
conf 에 있는 모듈.xml을 꺼내서
액션쪽에 액션문구를 넣어두었습니다.
이런식으로는 만들었는데 체크를 하고 분류를 바꾸고 분류 변경(카테고리업에서 바꿈)을 누르면 잘못된 요청입니다 라고 출력되더군요.. ㅠㅠ
위 댓글에 보면 내용을 본다고 적혀있어서...
뷰에 있어야 하는데... 왜냐면 그래야 $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 하단에 그냥 붙여넣기만 하시면 됩니다.
그리고 관리그룹으로 블럭처리 설정되어 있있습니다.
소스가 좀 지져분하지만... 그냥 여기 붙입니다.
<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를 바꿔주신건가요!?
으으 근무중이라서 테스트는 못해보았지만.. 소스코드 하나씩 읽어보면서 이건 이거다라고 유추정도만 하고있습니다 ㅎㅎㅋㅋㅋ
CategoryModification 부분을..!
저게 일반적인 테이블 태그의 모양이 아닌거같아서 ㅋㅋ
그리고 Apply의 버튼모양도.. 제가아는 XE 공식버튼 모양과 매우달라서 CSS 수정을 하신건가 해서 !
댓글쓰기 밑에 있는 버튼과 같은
<input type="submit" value="등록" class="bd_btn fr used">
인풋으로 써도 되구요. 저번에 뷰페이지에서는 자바스크립트로 다 처리하였지만
이번 리스트페이지에서는 Jquery로 처리함.
스케치북 기본적으로 지원하는 css입니다.
아래와 같습니다.
<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 >
ㅈ..주륵..
모양이 이뻐서 만들고있었는데에엨...
이렇게 직접 짜기도.. 짜다가 알아버린거지만 짜볼 기회를 주셔서.. ㅋㅋ
오늘도 즐거운 하루 되세요.
카테고리를 눌러도 뜨지 않고..
추가로 더 설정하신게 있나요?
다시 보니 코드 하일라이트 콤퍼넌트에서 자동으로 태그가 지워졌네요.
<br>태그가 지워지면서 문법 에러가 발생되었네요.
다시 올려요.
<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 모듈을 꼭 건드려야 하나 봅니다..!