mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-02 01:52:10 +09:00
Delete attached files when messages are deleted
This commit is contained in:
parent
46f19a9f17
commit
253c66b67e
3 changed files with 66 additions and 2 deletions
|
|
@ -184,7 +184,7 @@ class communicationController extends communication
|
|||
// messages to save in the receiver's message box
|
||||
$receiver_args = new stdClass();
|
||||
$receiver_args->message_srl = $related_srl;
|
||||
$receiver_args->related_srl = 0;
|
||||
$receiver_args->related_srl = $message_srl;
|
||||
$receiver_args->list_order = $related_srl * -1;
|
||||
$receiver_args->sender_srl = $sender_srl;
|
||||
if(!$receiver_args->sender_srl)
|
||||
|
|
@ -349,6 +349,16 @@ class communicationController extends communication
|
|||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
// Delete attachment, only if related message has also been deleted
|
||||
$related = $message->related_srl ? $oCommunicationModel->getSelectedMessage($message->related_srl) : true;
|
||||
if (!$related)
|
||||
{
|
||||
$oFileController = getController('file');
|
||||
$oFileController->deleteFiles($message->message_srl);
|
||||
$oFileController->deleteFiles($message->related_srl);
|
||||
}
|
||||
|
||||
$this->updateFlagFile($member_srl);
|
||||
$this->setMessage('success_deleted');
|
||||
}
|
||||
|
|
@ -408,7 +418,7 @@ class communicationController extends communication
|
|||
throw new Rhymix\Framework\Exception('msg_cart_is_null');
|
||||
}
|
||||
|
||||
// Delete
|
||||
// Organize variables
|
||||
$args = new stdClass();
|
||||
$args->message_srls = implode(',', $target);
|
||||
|
||||
|
|
@ -430,11 +440,39 @@ class communicationController extends communication
|
|||
$args->receiver_srl = $member_srl;
|
||||
}
|
||||
|
||||
// Find related messages
|
||||
$related = array();
|
||||
$output = executeQueryArray('communication.getRelatedMessages', $args);
|
||||
foreach ($output->data as $item)
|
||||
{
|
||||
$related[$item->related_srl] = $item->message_srl;
|
||||
}
|
||||
if (count($related))
|
||||
{
|
||||
$output = executeQueryArray('communication.getMessages', (object)array(
|
||||
'message_srl_list' => array_keys($related)
|
||||
), array('message_srl'));
|
||||
foreach ($output->data as $item)
|
||||
{
|
||||
unset($related[$item->message_srl]);
|
||||
}
|
||||
}
|
||||
|
||||
// Delete
|
||||
$output = executeQuery('communication.deleteMessages', $args);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
// Delete attachment, only if related message has also been deleted
|
||||
$oFileController = getController('file');
|
||||
foreach ($related as $message_srl => $related_srl)
|
||||
{
|
||||
$oFileController->deleteFiles($message_srl);
|
||||
$oFileController->deleteFiles($related_srl);
|
||||
}
|
||||
|
||||
$this->updateFlagFile($member_srl);
|
||||
$this->setMessage('success_deleted');
|
||||
|
||||
|
|
|
|||
11
modules/communication/queries/getMessages.xml
Normal file
11
modules/communication/queries/getMessages.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="getMessages" action="select">
|
||||
<tables>
|
||||
<table name="member_message" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="message_srl" var="message_srl_list" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
15
modules/communication/queries/getRelatedMessages.xml
Normal file
15
modules/communication/queries/getRelatedMessages.xml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<query id="getRelatedMessages" action="select">
|
||||
<tables>
|
||||
<table name="member_message" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="message_srl" />
|
||||
<column name="related_srl" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="message_srl" var="message_srls" notnull="notnull" />
|
||||
<condition operation="equal" column="message_type" var="message_type" notnull="notnull" pipe="and" />
|
||||
<condition operation="equal" column="sender_srl" var="sender_srl" pipe="and" />
|
||||
<condition operation="equal" column="receiver_srl" var="receiver_srl" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
Loading…
Add table
Add a link
Reference in a new issue