보통 게시판 리스트에서 체크박스로 선택해서 카트(cart)에 글을 담은 후 주로 게시판 하단 영역에 있는 '게시글 관리'를 클릭해서 팝업창을 띄운 뒤에 카트에 담았던 글들을 삭제하는 경우가 있으실 텐데요.

 

'게시글 관리' 버튼을 클릭해서 굳이 팝업창을 띄우지 않고 게시판 리스트에서 카트에 담은 여러 개의 글을 바로 삭제할 수 있도록 할 수 있습니다.

 

특히 모바일에서 글을 관리할 때는 굳이 팝업창을 띄워서 절차를 두 번 걸치는 것보다 바로 게시판 리스트에서 삭제하는 게 간편할 것 같습니다.

 

아직 XE 고수가 아니라서 이게 정확한 건지 잘 모르겠지만... 끄적끄적 거리다가 우연치 않게 되어 사용하는 중이라서 중요한 게시판에서는 사용하지 않으시길 권장합니다.

 

<!--@if($logged_info->is_admin=='Y')-->
<script>
function doCallModuleActionDelete() {
var params = new Array();
exec_xml('document', 'procDocumentAdminDeleteChecked', params, completeCallModuleAction);
}
</script>
<!--@end-->

 

1. 위의 코드를 적용하고자 하는 게시판 하단 영역에 추가하세요.

 

 

 

 

function procDocumentAdminDeleteChecked()
{
// error appears if no doc is selected
$cart = Context::get('cart');
if(!$cart){
if(!$_SESSION['document_management']){
return $this->stop('msg_cart_is_null');
}
else{
foreach($_SESSION['document_management'] as $key=>$value){
$document_srl_list[] = $key;
}
}
}
else {
$document_srl_list= explode('|@|', $cart);
}
$document_count = count($document_srl_list);
if(!$document_count) return $this->stop('msg_cart_is_null');
// Delete a doc
$oDocumentController = getController('document');
for($i=0;$i<$document_count;$i++)
{
$document_srl = trim($document_srl_list[$i]);
if(!$document_srl) continue;

$oDocumentController->deleteDocument($document_srl, true);
}

unset($_SESSION['document_management']);

$this->setMessage(sprintf(Context::getLang('msg_checked_document_is_deleted'), $document_count) );
}

 

2. '/modules/document/document.admin.controller.php' 파일에서 'procDocumentAdminDeleteChecked()' 함수를 찾아 위와 같이 바꿔주세요. (위 부분이랑 아래부분만 바꾼 것이라서 부분적으로 수정하셔도 됩니다.)

 

 

 

 

 

 

 <a cond="$logged_info->is_admin=='Y'" onclick="doCallModuleActionDelete()">선택 글 삭제</a>

 

3. 위 기능을 실행하는 버튼을 원하는 곳에 넣어주세요. (저는 게시판 하단 영역에 넣었습니다.)

 

 

 

 

위의 기능을 잘만 응용하면 굳이 '게시판 관리' 버튼을 클릭해서 팝업창을 띄우지 않고도 선택한 글들을 휴지통으로 보내거나 다른 게시판으로 이동시키는 기능도 가능할 것 같습니다.

 

 

혹시 잘 실행되지 않으시면 댓글에 남겨주세요

감사합니다

  • ?
    멋집니다
    감사 합니다 ^^;;
  • ? ?
    좋은 말씀 남겨주셔서 감사합니다 :)
  • profile
    xe 업데이트시 작업하신것이 사라질 수 있습니다.
  • profile ?
    네 그래서 세션 변수 자체를 스킨 문서에서 파라미터로 넘겨서 해주는 방법도 고민해봤는데 XE는 레이아웃이나 스킨 안에서 세션 변수를 못 쓰더라구요... ㅠㅠ