Skip to content

Commit 117b6e8

Browse files
author
Tom Coward
committed
Added update post auto deletion
1 parent 863a183 commit 117b6e8

4 files changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace VersoBit\ResourceThreads\XFRM\Service\ResourceUpdate;
4+
5+
class Delete extends XFCP_Delete
6+
{
7+
public function delete($type, $reason = '')
8+
{
9+
$result = parent::delete($type, $reason = '');
10+
11+
$update = $this->update;
12+
13+
$this->deleteDiscussionThreadPost($update);
14+
15+
return $result;
16+
}
17+
18+
protected function deleteDiscussionThreadPost($update)
19+
{
20+
// TODO: find more solid way of finding the update's post in discussion thread
21+
$updateUrl = '%resources/'. strtolower($update->title) .'.'. $update->Resource->resource_id .'/update/'. $update->resource_update_id .'/%';
22+
$post = \XF::finder('XF:Post')->where([
23+
'thread_id' => $update->Resource->discussion_thread_id,
24+
'user_id' => $update->Resource->user_id,
25+
['message', 'LIKE', $updateUrl]
26+
])->fetchOne();
27+
28+
// Delete resource update's post if was unapproved
29+
if($post->message_state == 'moderated'){
30+
/** @var \XF\Service\Post\Deleter $postDeleter */
31+
$postDeleter = $this->service('XF:Post\Deleter', $post);
32+
$postDeleter->delete('soft', \XF::phrase('xfrm_resource_update').' deleted');
33+
}
34+
}
35+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"from_class": "XFRM\\Service\\ResourceUpdate\\Delete",
3+
"to_class": "VersoBit\\ResourceThreads\\XFRM\\Service\\ResourceUpdate\\Delete",
4+
"execute_order": 10,
5+
"active": true
6+
}

_output/class_extensions/_metadata.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,8 @@
77
},
88
"XFRM-Service-ResourceUpdate-Approve_VersoBit-ResourceThreads-XFRM-Service-ResourceUpdate-Approve.json": {
99
"hash": "e29932c9936103688bbc6ec3f8b40c07"
10+
},
11+
"XFRM-Service-ResourceUpdate-Delete_VersoBit-ResourceThreads-XFRM-Service-ResourceUpdate-Delete.json": {
12+
"hash": "0aaf2bbb43c667649945ed12a0f72082"
1013
}
1114
}

_output/extension_hint.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ class XFCP_Delete extends \XFRM\Service\ResourceItem\Delete {}
1212
namespace VersoBit\ResourceThreads\XFRM\Service\ResourceUpdate
1313
{
1414
class XFCP_Approve extends \XFRM\Service\ResourceUpdate\Approve {}
15+
class XFCP_Delete extends \XFRM\Service\ResourceUpdate\Delete {}
1516
}

0 commit comments

Comments
 (0)