@@ -63,19 +63,28 @@ public function parseShortVersion(IEvent $event) {
6363
6464 /**
6565 * @param IEvent $event
66+ * @param IEvent|null $previousEvent
6667 * @return IEvent
6768 * @throws \InvalidArgumentException
6869 * @since 11.0.0
6970 */
70- public function parseLongVersion (IEvent $ event ) {
71+ public function parseLongVersion (IEvent $ event, IEvent $ previousEvent = null ) {
7172 $ parsedParameters = $ this ->getParsedParameters ($ event );
7273
7374 if ($ event ->getSubject () === self ::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED ||
7475 $ event ->getSubject () === self ::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED ) {
75- $ subject = $ this ->l ->t ('{file} downloaded via public link ' );
76+ if (!isset ($ parsedParameters ['remote-address-hash ' ]['type ' ])) {
77+ $ subject = $ this ->l ->t ('{file} downloaded via public link ' );
78+ $ this ->setSubjects ($ event , $ subject , $ parsedParameters );
79+ } else {
80+ $ subject = $ this ->l ->t ('{file} downloaded via public link ' );
81+ $ this ->setSubjects ($ event , $ subject , $ parsedParameters );
82+ $ event = $ this ->eventMerger ->mergeEvents ('file ' , $ event , $ previousEvent );
83+ }
7684 } elseif ($ event ->getSubject () === self ::SUBJECT_SHARED_FILE_BY_EMAIL_DOWNLOADED ||
7785 $ event ->getSubject () === self ::SUBJECT_SHARED_FOLDER_BY_EMAIL_DOWNLOADED ) {
7886 $ subject = $ this ->l ->t ('{email} downloaded {file} ' );
87+ $ this ->setSubjects ($ event , $ subject , $ parsedParameters );
7988 } else {
8089 throw new \InvalidArgumentException ();
8190 }
@@ -85,7 +94,6 @@ public function parseLongVersion(IEvent $event) {
8594 } else {
8695 $ event ->setIcon ($ this ->url ->getAbsoluteURL ($ this ->url ->imagePath ('core ' , 'actions/download.svg ' )));
8796 }
88- $ this ->setSubjects ($ event , $ subject , $ parsedParameters );
8997
9098 return $ event ;
9199 }
@@ -102,6 +110,17 @@ protected function getParsedParameters(IEvent $event) {
102110 switch ($ subject ) {
103111 case self ::SUBJECT_PUBLIC_SHARED_FILE_DOWNLOADED :
104112 case self ::SUBJECT_PUBLIC_SHARED_FOLDER_DOWNLOADED :
113+ if (isset ($ parameters [1 ])) {
114+ return [
115+ 'file ' => $ this ->getFile ($ parameters [0 ], $ event ),
116+ 'remote-address-hash ' => [
117+ 'type ' => 'highlight ' ,
118+ 'id ' => $ parameters [1 ],
119+ 'name ' => $ parameters [1 ],
120+ 'link ' => '' ,
121+ ],
122+ ];
123+ }
105124 return [
106125 'file ' => $ this ->getFile ($ parameters [0 ], $ event ),
107126 ];
0 commit comments