| @@ 42-61 (lines=20) @@ | ||
| 39 | $this->eventDispatcher = $eventDispatcher; |
|
| 40 | } |
|
| 41 | ||
| 42 | public function trash(Location $location) |
|
| 43 | { |
|
| 44 | $eventData = [$location]; |
|
| 45 | ||
| 46 | $beforeEvent = new BeforeTrashEvent(...$eventData); |
|
| 47 | if ($this->eventDispatcher->dispatch(TrashEvents::BEFORE_TRASH, $beforeEvent)->isPropagationStopped()) { |
|
| 48 | return $beforeEvent->getResult(); |
|
| 49 | } |
|
| 50 | ||
| 51 | $trashItem = $beforeEvent->isResultSet() |
|
| 52 | ? $beforeEvent->getResult() |
|
| 53 | : parent::trash($location); |
|
| 54 | ||
| 55 | $this->eventDispatcher->dispatch( |
|
| 56 | TrashEvents::TRASH, |
|
| 57 | new TrashEvent($trashItem, ...$eventData) |
|
| 58 | ); |
|
| 59 | ||
| 60 | return $trashItem; |
|
| 61 | } |
|
| 62 | ||
| 63 | public function recover( |
|
| 64 | TrashItem $trashItem, |
|
| @@ 108-127 (lines=20) @@ | ||
| 105 | return $resultList; |
|
| 106 | } |
|
| 107 | ||
| 108 | public function deleteTrashItem(TrashItem $trashItem) |
|
| 109 | { |
|
| 110 | $eventData = [$trashItem]; |
|
| 111 | ||
| 112 | $beforeEvent = new BeforeDeleteTrashItemEvent(...$eventData); |
|
| 113 | if ($this->eventDispatcher->dispatch(TrashEvents::BEFORE_DELETE_TRASH_ITEM, $beforeEvent)->isPropagationStopped()) { |
|
| 114 | return $beforeEvent->getResult(); |
|
| 115 | } |
|
| 116 | ||
| 117 | $result = $beforeEvent->hasResult() |
|
| 118 | ? $beforeEvent->getResult() |
|
| 119 | : parent::deleteTrashItem($trashItem); |
|
| 120 | ||
| 121 | $this->eventDispatcher->dispatch( |
|
| 122 | TrashEvents::DELETE_TRASH_ITEM, |
|
| 123 | new DeleteTrashItemEvent($result, ...$eventData) |
|
| 124 | ); |
|
| 125 | ||
| 126 | return $result; |
|
| 127 | } |
|
| 128 | } |
|
| 129 | ||
| @@ 84-103 (lines=20) @@ | ||
| 81 | ); |
|
| 82 | } |
|
| 83 | ||
| 84 | public function translate($url) |
|
| 85 | { |
|
| 86 | $eventData = [$url]; |
|
| 87 | ||
| 88 | $beforeEvent = new BeforeTranslateEvent(...$eventData); |
|
| 89 | if ($this->eventDispatcher->dispatch(URLWildcardEvents::BEFORE_TRANSLATE, $beforeEvent)->isPropagationStopped()) { |
|
| 90 | return $beforeEvent->getResult(); |
|
| 91 | } |
|
| 92 | ||
| 93 | $result = $beforeEvent->hasResult() |
|
| 94 | ? $beforeEvent->getResult() |
|
| 95 | : parent::translate($url); |
|
| 96 | ||
| 97 | $this->eventDispatcher->dispatch( |
|
| 98 | URLWildcardEvents::TRANSLATE, |
|
| 99 | new TranslateEvent($result, ...$eventData) |
|
| 100 | ); |
|
| 101 | ||
| 102 | return $result; |
|
| 103 | } |
|
| 104 | } |
|
| 105 | ||