게시글 삭제 애드온을 설치만하고 사실 사용은 하고 있지 않은데요.
임시로 제공하는 게시판에 임시로 작성된 게시글을 기간이 지나면 자동으로 삭제하는 것을 찾다가 공홈에서 발견하고 설치까지만 해 놓은 애드온입니다.
제가 직접 관리해서 삭제할 정도의 여력이 되어서 사실 애드온을 사용하고 있진 않습니다.
(사실 멀정한 다른게시판 게시글도 다 지워지면 어쩌나 하는 염려증... ㅋ)
그런데 추후 사용하게 될 때를 고려해서 살펴보다가 공지글은 지워지면 안될 것 같아 질문을 드립니다.
현재 게시글 불러오는 쿼리입니다.
<query id="autoDelGetList" action="select">
<tables>
<table name="documents" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" />
</conditions>
</query>
아래 처럼 한줄 추가하면 공지글이 제외가 될까요???
<query id="autoDelGetList" action="select">
<tables>
<table name="documents" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="module_srl" var="module_srl" filter="number" />
<condition operation="equal" column="is_notice" var="N" pipe="and" />
</conditions>
</query>
그리고 궁금한 점 .2
이 자료에서 댓글 수는 왜 불러오는지 봐도 잘 모르겠네요.
<?php
if(!defined("__XE__")) exit();
if($called_position!='before_module_proc') return;
if($this->module != 'board' && $this->module != 'beluxe') return;
$act = Context::get('act');
if(($this->module == 'board' || $this->module == 'beluxe') && $act) return;
$inputNum = preg_match('/[^0-9]/', $addon_info->inputNum)?'':$addon_info->inputNum;
$h_or_d = $addon_info->h_or_d;
$regOrLast = $addon_info->regOrLast;
if(!$inputNum) return;
$args->module_srl = $this->module_srl;
$output = executeQuery('addons.autoDel.autoDelGetList', $args);
$oDocumentController = &getController('document');
if($h_or_d == 'listCount')
{
if(count($output->data)>$inputNum)
{
$delCount = count($output->data) - $inputNum;
foreach($output->data as $key=>$val)
{
if($regOrLast=="regdate"&&$val->regdate<=date("YmdHis", strtotime("-".$inputNum.$unit))) $temp[] = $val->regdate."/".$val->document_srl;
else if($regOrLast=="lastUpdate"&&$val->last_update<=date("YmdHis", strtotime("-".$inputNum.$unit))) $temp[] = $val->last_update."/".$val->document_srl;
}
sort($temp);
foreach($temp as $key=>$val)
{
$breakCount++;
$val = explode("/", $val);
$args->document_srl = $val[1];
$chk_cnt = NULL;
$chk_cnt = executeQuery('addons.autoDel.getCommentCount', $args);
foreach($chk_cnt as $k=>$cnt){}
$chk_c = count($cnt);
if($chk_c==NULL) $oDocumentController->deleteDocument($val[1], true);
if($breakCount==$delCount) break;
}
}
}
else
{
if($h_or_d=='hour') $unit = 'hour';
else $unit = 'day';
foreach($output->data as $key=>$val)
{
if($regOrLast=="regdate"&&$val->regdate<=date("YmdHis", strtotime("-".$inputNum.$unit))) $temp[] = $val->regdate."/".$val->document_srl;
else if($regOrLast=="lastUpdate"&&$val->last_update<=date("YmdHis", strtotime("-".$inputNum.$unit))) $temp[] = $val->last_update."/".$val->document_srl;
}
sort($temp);
foreach($temp as $key=>$val)
{
$val = explode("/", $val);
$chk_cnt = NULL;
$chk_cnt = executeQuery('addons.autoDel.getCommentCount', $args);
foreach($chk_cnt as $k=>$cnt){}
$chk_c = count($cnt);
if($chk_c==NULL) $oDocumentController->deleteDocument($val[1], true);
}
}
?>
<condition operation="equal" column="is_notice" var="N" pipe="and" /> var가 아니라
default 입니다.
일반적으로 xml 쿼리에서 var로 쓰이는건 해당 $args 같은것으로 넘어오는 쿼리에 이름을 사용합니다
ex)
$args = new stdclass();
$args->module_srl = '123';
$output = executeQuery('~~~~.~~~',$args);
<condition operation="equal" column="module_srl" var="module_srl" />