mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
Fix #370 allow sorting declared documents by latest report date
This commit is contained in:
parent
cd80bcb3a7
commit
7956a878d5
5 changed files with 85 additions and 20 deletions
|
|
@ -147,31 +147,66 @@ class documentAdminView extends document
|
|||
*/
|
||||
function dispDocumentAdminDeclared()
|
||||
{
|
||||
// option for a list
|
||||
$args =new stdClass();
|
||||
$args->page = Context::get('page'); // /< Page
|
||||
$args->list_count = 30; // /< the number of posts to display on a single page
|
||||
$args->page_count = 10; // /< the number of pages that appear in the page navigation
|
||||
|
||||
$args->sort_index = 'document_declared.declared_count'; // /< sorting values
|
||||
$args->order_type = 'desc'; // /< sorting values by order
|
||||
|
||||
// get Status name list
|
||||
$oDocumentModel = getModel('document');
|
||||
$statusNameList = $oDocumentModel->getStatusNameList();
|
||||
|
||||
// get a list
|
||||
$declared_output = executeQuery('document.getDeclaredList', $args);
|
||||
if($declared_output->data && count($declared_output->data))
|
||||
// option for a list
|
||||
$args = new stdClass();
|
||||
$args->page = Context::get('page'); // /< Page
|
||||
$args->list_count = 30; // /< the number of posts to display on a single page
|
||||
$args->page_count = 10; // /< the number of pages that appear in the page navigation
|
||||
$args->order_type = strtolower(Context::get('order_type')) === 'asc' ? 'asc' : 'desc';
|
||||
|
||||
// get latest declared list
|
||||
if (Context::get('sort_index') === 'declared_latest')
|
||||
{
|
||||
$document_list = array();
|
||||
|
||||
foreach($declared_output->data as $key => $document)
|
||||
$declared_output = executeQueryArray('document.getDeclaredLatest', $args);
|
||||
if ($declared_output->data && count($declared_output->data))
|
||||
{
|
||||
$document_list[$key] = new documentItem();
|
||||
$document_list[$key]->setAttribute($document);
|
||||
$args->document_srls = array_map(function($item) { return $item->document_srl; }, $declared_output->data);
|
||||
$documents = executeQueryArray('document.getDocuments', $args);
|
||||
$document_list = array();
|
||||
foreach ($declared_output->data as $key => $declared_info)
|
||||
{
|
||||
foreach ($documents->data as $document)
|
||||
{
|
||||
if ($document->document_srl == $declared_info->document_srl)
|
||||
{
|
||||
$document->declared_count = $declared_info->declared_count;
|
||||
$document->latest_declared = $declared_info->latest_declared;
|
||||
$document_list[$key] = new documentItem();
|
||||
$document_list[$key]->setAttribute($document);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
$declared_output->data = $document_list;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$declared_output = executeQueryArray('document.getDeclaredList', $args);
|
||||
if ($declared_output->data && count($declared_output->data))
|
||||
{
|
||||
$args->document_srls = array_map(function($item) { return $item->document_srl; }, $declared_output->data);
|
||||
$declared_latest = executeQueryArray('document.getDeclaredLatest', $args);
|
||||
$document_list = array();
|
||||
foreach ($declared_output->data as $key => $document)
|
||||
{
|
||||
foreach ($declared_latest->data as $key => $declared_info)
|
||||
{
|
||||
if ($document->document_srl == $declared_info->document_srl)
|
||||
{
|
||||
$document->declared_count = $declared_info->declared_count;
|
||||
$document->latest_declared = $declared_info->latest_declared;
|
||||
$document_list[$key] = new documentItem();
|
||||
$document_list[$key]->setAttribute($document);
|
||||
}
|
||||
}
|
||||
}
|
||||
$declared_output->data = $document_list;
|
||||
}
|
||||
$declared_output->data = $document_list;
|
||||
}
|
||||
|
||||
// Set values of document_model::getDocumentList() objects for a template
|
||||
|
|
|
|||
|
|
@ -90,6 +90,9 @@ $lang->default_message_verbs['copy'] = 'copies';
|
|||
$lang->default_message_verbs['delete'] = 'deletes';
|
||||
$lang->default_message_verbs['trash'] = 'deletes';
|
||||
$lang->improper_document_declare = 'Report an improper document';
|
||||
$lang->original_date = 'Original date';
|
||||
$lang->declared_count = 'Report count';
|
||||
$lang->latest_declared_date = 'Last reported date';
|
||||
$lang->declaring_user = 'Reporter';
|
||||
$lang->improper_document_declare_reason = 'Reason';
|
||||
$lang->improper_document_reasons['advertisement'] = 'Advertisements that do not fit the topics or themes.';
|
||||
|
|
|
|||
|
|
@ -88,6 +88,9 @@ $lang->default_message_verbs['copy'] = '복사';
|
|||
$lang->default_message_verbs['delete'] = '삭제';
|
||||
$lang->default_message_verbs['trash'] = '삭제';
|
||||
$lang->improper_document_declare = '불량 게시글 신고';
|
||||
$lang->original_date = '작성 날짜';
|
||||
$lang->declared_count = '신고 수';
|
||||
$lang->latest_declared_date = '최근 신고 날짜';
|
||||
$lang->declaring_user = '신고자';
|
||||
$lang->improper_document_declare_reason = '신고 이유';
|
||||
$lang->improper_document_reasons['advertisement'] = '주제나 흐름에 맞지 않는 광고 글입니다.';
|
||||
|
|
|
|||
22
modules/document/queries/getDeclaredLatest.xml
Normal file
22
modules/document/queries/getDeclaredLatest.xml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<query id="getDeclaredLatest" action="select">
|
||||
<tables>
|
||||
<table name="document_declared_log" alias="document_declared_log" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="document_srl" />
|
||||
<column name="count(*)" alias="declared_count" />
|
||||
<column name="max(regdate)" alias="latest_declared" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="document_srl" var="document_srls" />
|
||||
</conditions>
|
||||
<groups>
|
||||
<group column="document_srl" />
|
||||
</groups>
|
||||
<navigation>
|
||||
<index var="sort_index" default="latest_declared" order="order_type" />
|
||||
<list_count var="list_count" default="20" />
|
||||
<page_count var="page_count" default="10" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
@ -35,10 +35,11 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<tr>
|
||||
<th scope="col" class="title">{$lang->title}</th>
|
||||
<th scope="col" class="nowr">{$lang->writer}</th>
|
||||
<th scope="col" class="nowr">{$lang->cmd_declare}</th>
|
||||
<th scope="col" class="nowr"><a href="{getUrl('sort_index', 'declared_count')}">{$lang->declared_count} <block cond="$sort_index != 'declared_latest'">▼</block></a></th>
|
||||
<th scope="col" class="nowr">{$lang->readed_count}</th>
|
||||
<th scope="col" class="nowr">{$lang->cmd_vote}(+/-)</th>
|
||||
<th scope="col" class="nowr">{$lang->date}</th>
|
||||
<th scope="col" class="nowr">{$lang->original_date}</th>
|
||||
<th scope="col" class="nowr"><a href="{getUrl('sort_index', 'declared_latest')}">{$lang->latest_declared_date} <block cond="$sort_index == 'declared_latest'">▼</block></a></th>
|
||||
<th scope="col"><input type="checkbox" name="cart" title="Check All" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -50,6 +51,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<td class="nowr">{$oDocument->get('readed_count')}</td>
|
||||
<td class="nowr">{$oDocument->get('voted_count')}/{$oDocument->get('blamed_count')}</td>
|
||||
<td class="nowr">{$oDocument->getRegdate("Y-m-d H:i")}</td>
|
||||
<td class="nowr">{zdate($oDocument->get('latest_declared'), 'Y-m-d H:i')}</td>
|
||||
<td><input type="checkbox" name="cart" value="{$oDocument->document_srl}" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue