@@ -148,7 +148,7 @@ |
||
| 148 | 148 | continue; |
| 149 | 149 | } |
| 150 | 150 | |
| 151 | - $level = (int) $row['role'] === 1 ? Member::LEVEL_OWNER : Member::LEVEL_MEMBER; |
|
| 151 | + $level = (int)$row['role'] === 1 ? Member::LEVEL_OWNER : Member::LEVEL_MEMBER; |
|
| 152 | 152 | |
| 153 | 153 | if ($level === Member::LEVEL_OWNER) { |
| 154 | 154 | if (isset($this->circleHasAdmin[$this->circlesById[$row['group_id']]])) { |
@@ -93,7 +93,7 @@ |
||
| 93 | 93 | |
| 94 | 94 | $update = $this->connection->getQueryBuilder(); |
| 95 | 95 | $update->update('circles_circles') |
| 96 | - ->set('unique_id', $update->createNamedParameter('d' . $uniqueId)) |
|
| 96 | + ->set('unique_id', $update->createNamedParameter('d'.$uniqueId)) |
|
| 97 | 97 | ->where( |
| 98 | 98 | $update->expr() |
| 99 | 99 | ->eq('id', $update->createNamedParameter($itemId)) |
@@ -282,7 +282,7 @@ |
||
| 282 | 282 | * generateEvent() |
| 283 | 283 | * Create an Activity Event with the basic settings for the app. |
| 284 | 284 | * |
| 285 | - * @param $type |
|
| 285 | + * @param string $type |
|
| 286 | 286 | * |
| 287 | 287 | * @return \OCP\Activity\IEvent |
| 288 | 288 | */ |
@@ -185,7 +185,7 @@ |
||
| 185 | 185 | * |
| 186 | 186 | * @throws CircleAlreadyExistsException |
| 187 | 187 | */ |
| 188 | - public function createCircle(Circle &$circle, $userId) { |
|
| 188 | + public function createCircle(Circle & $circle, $userId) { |
|
| 189 | 189 | |
| 190 | 190 | if (!$this->isCircleUnique($circle, $userId)) { |
| 191 | 191 | throw new CircleAlreadyExistsException( |
@@ -190,7 +190,7 @@ |
||
| 190 | 190 | * |
| 191 | 191 | * @throws \Exception |
| 192 | 192 | */ |
| 193 | - private function editGroupLevel(Circle $circle, Member &$group, $level) { |
|
| 193 | + private function editGroupLevel(Circle $circle, Member & $group, $level) { |
|
| 194 | 194 | try { |
| 195 | 195 | $isMod = $circle->getHigherViewer(); |
| 196 | 196 | $isMod->hasToBeAdmin(); |
@@ -86,7 +86,7 @@ discard block |
||
| 86 | 86 | * @param string $circleUniqueId |
| 87 | 87 | * @param string $groupId |
| 88 | 88 | * |
| 89 | - * @return array |
|
| 89 | + * @return Member[] |
|
| 90 | 90 | * @throws \Exception |
| 91 | 91 | */ |
| 92 | 92 | public function linkGroup($circleUniqueId, $groupId) { |
@@ -112,8 +112,8 @@ discard block |
||
| 112 | 112 | /** |
| 113 | 113 | * Check if a fresh member can be generated (by linkGroup) |
| 114 | 114 | * |
| 115 | - * @param $circleId |
|
| 116 | - * @param $groupId |
|
| 115 | + * @param string $circleId |
|
| 116 | + * @param string $groupId |
|
| 117 | 117 | * |
| 118 | 118 | * @return null|Member |
| 119 | 119 | * @throws MemberAlreadyExistsException |
@@ -148,7 +148,7 @@ discard block |
||
| 148 | 148 | * @param string $groupId |
| 149 | 149 | * @param int $level |
| 150 | 150 | * |
| 151 | - * @return array |
|
| 151 | + * @return Member[] |
|
| 152 | 152 | * @throws \Exception |
| 153 | 153 | */ |
| 154 | 154 | public function levelGroup($circleUniqueId, $groupId, $level) { |
@@ -186,7 +186,7 @@ discard block |
||
| 186 | 186 | /** |
| 187 | 187 | * @param Circle $circle |
| 188 | 188 | * @param Member $group |
| 189 | - * @param $level |
|
| 189 | + * @param integer $level |
|
| 190 | 190 | * |
| 191 | 191 | * @throws \Exception |
| 192 | 192 | */ |
@@ -213,7 +213,7 @@ discard block |
||
| 213 | 213 | * @param string $circleUniqueId |
| 214 | 214 | * @param string $groupId |
| 215 | 215 | * |
| 216 | - * @return array |
|
| 216 | + * @return Member[] |
|
| 217 | 217 | * @throws \Exception |
| 218 | 218 | */ |
| 219 | 219 | public function unlinkGroup($circleUniqueId, $groupId) { |
@@ -432,6 +432,13 @@ |
||
| 432 | 432 | } |
| 433 | 433 | |
| 434 | 434 | |
| 435 | + /** |
|
| 436 | + * @param string $userId |
|
| 437 | + * @param integer $shareType |
|
| 438 | + * @param Node|null $node |
|
| 439 | + * @param integer $limit |
|
| 440 | + * @param integer $offset |
|
| 441 | + */ |
|
| 435 | 442 | private function getSharedWithCircleMembers($userId, $shareType, $node, $limit, $offset) { |
| 436 | 443 | |
| 437 | 444 | $qb = $this->getCompleteSelectSql(); |
@@ -569,7 +569,7 @@ discard block |
||
| 569 | 569 | * @param IShare $share |
| 570 | 570 | * @param $data |
| 571 | 571 | */ |
| 572 | - private function assignShareObjectPropertiesFromParent(IShare &$share, $data) { |
|
| 572 | + private function assignShareObjectPropertiesFromParent(IShare & $share, $data) { |
|
| 573 | 573 | if (isset($data['f_permissions'])) { |
| 574 | 574 | $entryData = $data; |
| 575 | 575 | $entryData['permissions'] = $entryData['f_permissions']; |
@@ -588,7 +588,7 @@ discard block |
||
| 588 | 588 | * @param IShare $share |
| 589 | 589 | * @param $data |
| 590 | 590 | */ |
| 591 | - private function assignShareObjectSharesProperties(IShare &$share, $data) { |
|
| 591 | + private function assignShareObjectSharesProperties(IShare & $share, $data) { |
|
| 592 | 592 | $shareTime = new \DateTime(); |
| 593 | 593 | $shareTime->setTimestamp((int)$data['stime']); |
| 594 | 594 | |
@@ -107,7 +107,7 @@ |
||
| 107 | 107 | * limit the request to the children of a share |
| 108 | 108 | * |
| 109 | 109 | * @param IQueryBuilder $qb |
| 110 | - * @param $userId |
|
| 110 | + * @param string $userId |
|
| 111 | 111 | * @param int $parentId |
| 112 | 112 | */ |
| 113 | 113 | protected function limitToShareChildren(IQueryBuilder &$qb, $userId, $parentId = -1) { |
@@ -252,7 +252,7 @@ |
||
| 252 | 252 | 'c', CoreRequestBuilder::TABLE_MEMBERS, 'mo', $expr->andX( |
| 253 | 253 | $expr->eq( |
| 254 | 254 | 'mo.circle_id', |
| 255 | - $qb->createFunction('SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')') |
|
| 255 | + $qb->createFunction('SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')') |
|
| 256 | 256 | ), $expr->eq('mo.user_type', $qb->createNamedParameter(Member::TYPE_USER)), |
| 257 | 257 | $expr->eq('mo.level', $qb->createNamedParameter(Member::LEVEL_OWNER)) |
| 258 | 258 | ) |
@@ -68,11 +68,11 @@ discard block |
||
| 68 | 68 | * @param IQueryBuilder $qb |
| 69 | 69 | * @param int $circleId |
| 70 | 70 | */ |
| 71 | - protected function limitToCircle(IQueryBuilder &$qb, $circleId) { |
|
| 71 | + protected function limitToCircle(IQueryBuilder & $qb, $circleId) { |
|
| 72 | 72 | $expr = $qb->expr(); |
| 73 | 73 | $pf = ($qb->getType() === QueryBuilder::SELECT) ? 's.' : ''; |
| 74 | 74 | |
| 75 | - $qb->andWhere($expr->eq($pf . 'share_with', $qb->createNamedParameter($circleId))); |
|
| 75 | + $qb->andWhere($expr->eq($pf.'share_with', $qb->createNamedParameter($circleId))); |
|
| 76 | 76 | } |
| 77 | 77 | |
| 78 | 78 | |
@@ -82,11 +82,11 @@ discard block |
||
| 82 | 82 | * @param IQueryBuilder $qb |
| 83 | 83 | * @param $shareId |
| 84 | 84 | */ |
| 85 | - protected function limitToShare(IQueryBuilder &$qb, $shareId) { |
|
| 85 | + protected function limitToShare(IQueryBuilder & $qb, $shareId) { |
|
| 86 | 86 | $expr = $qb->expr(); |
| 87 | 87 | $pf = ($qb->getType() === QueryBuilder::SELECT) ? 's.' : ''; |
| 88 | 88 | |
| 89 | - $qb->andWhere($expr->eq($pf . 'id', $qb->createNamedParameter($shareId))); |
|
| 89 | + $qb->andWhere($expr->eq($pf.'id', $qb->createNamedParameter($shareId))); |
|
| 90 | 90 | } |
| 91 | 91 | |
| 92 | 92 | |
@@ -95,7 +95,7 @@ discard block |
||
| 95 | 95 | * |
| 96 | 96 | * @param IQueryBuilder $qb |
| 97 | 97 | */ |
| 98 | - protected function limitToShareParent(IQueryBuilder &$qb) { |
|
| 98 | + protected function limitToShareParent(IQueryBuilder & $qb) { |
|
| 99 | 99 | $expr = $qb->expr(); |
| 100 | 100 | |
| 101 | 101 | $qb->andWhere($expr->isNull('parent')); |
@@ -109,7 +109,7 @@ discard block |
||
| 109 | 109 | * @param $userId |
| 110 | 110 | * @param int $parentId |
| 111 | 111 | */ |
| 112 | - protected function limitToShareChildren(IQueryBuilder &$qb, $userId, $parentId = -1) { |
|
| 112 | + protected function limitToShareChildren(IQueryBuilder & $qb, $userId, $parentId = -1) { |
|
| 113 | 113 | $expr = $qb->expr(); |
| 114 | 114 | $qb->andWhere($expr->eq('share_with', $qb->createNamedParameter($userId))); |
| 115 | 115 | |
@@ -128,15 +128,15 @@ discard block |
||
| 128 | 128 | * @param IQueryBuilder $qb |
| 129 | 129 | * @param $circleId |
| 130 | 130 | */ |
| 131 | - protected function limitToShareAndChildren(IQueryBuilder &$qb, $circleId) { |
|
| 131 | + protected function limitToShareAndChildren(IQueryBuilder & $qb, $circleId) { |
|
| 132 | 132 | $expr = $qb->expr(); |
| 133 | 133 | $pf = ($qb->getType() === QueryBuilder::SELECT) ? 's.' : ''; |
| 134 | 134 | |
| 135 | 135 | /** @noinspection PhpMethodParametersCountMismatchInspection */ |
| 136 | 136 | $qb->andWhere( |
| 137 | 137 | $expr->orX( |
| 138 | - $expr->eq($pf . 'parent', $qb->createNamedParameter($circleId)), |
|
| 139 | - $expr->eq($pf . 'id', $qb->createNamedParameter($circleId)) |
|
| 138 | + $expr->eq($pf.'parent', $qb->createNamedParameter($circleId)), |
|
| 139 | + $expr->eq($pf.'id', $qb->createNamedParameter($circleId)) |
|
| 140 | 140 | ) |
| 141 | 141 | ); |
| 142 | 142 | } |
@@ -150,7 +150,7 @@ discard block |
||
| 150 | 150 | * |
| 151 | 151 | * @internal param $fileId |
| 152 | 152 | */ |
| 153 | - protected function limitToFiles(IQueryBuilder &$qb, $files) { |
|
| 153 | + protected function limitToFiles(IQueryBuilder & $qb, $files) { |
|
| 154 | 154 | |
| 155 | 155 | if (!is_array($files)) { |
| 156 | 156 | $files = array($files); |
@@ -160,7 +160,7 @@ discard block |
||
| 160 | 160 | $pf = ($qb->getType() === QueryBuilder::SELECT) ? 's.' : ''; |
| 161 | 161 | $qb->andWhere( |
| 162 | 162 | $expr->in( |
| 163 | - $pf . 'file_source', |
|
| 163 | + $pf.'file_source', |
|
| 164 | 164 | $qb->createNamedParameter($files, IQueryBuilder::PARAM_INT_ARRAY) |
| 165 | 165 | ) |
| 166 | 166 | ); |
@@ -172,7 +172,7 @@ discard block |
||
| 172 | 172 | * @param int $limit |
| 173 | 173 | * @param int $offset |
| 174 | 174 | */ |
| 175 | - protected function limitToPage(IQueryBuilder &$qb, $limit = -1, $offset = 0) { |
|
| 175 | + protected function limitToPage(IQueryBuilder & $qb, $limit = -1, $offset = 0) { |
|
| 176 | 176 | if ($limit !== -1) { |
| 177 | 177 | $qb->setMaxResults($limit); |
| 178 | 178 | } |
@@ -188,18 +188,18 @@ discard block |
||
| 188 | 188 | * @param string $userId |
| 189 | 189 | * @param bool $reShares |
| 190 | 190 | */ |
| 191 | - protected function limitToShareOwner(IQueryBuilder &$qb, $userId, $reShares = false) { |
|
| 191 | + protected function limitToShareOwner(IQueryBuilder & $qb, $userId, $reShares = false) { |
|
| 192 | 192 | $expr = $qb->expr(); |
| 193 | 193 | $pf = ($qb->getType() === QueryBuilder::SELECT) ? 's.' : ''; |
| 194 | 194 | |
| 195 | 195 | if ($reShares === false) { |
| 196 | - $qb->andWhere($expr->eq($pf . 'uid_initiator', $qb->createNamedParameter($userId))); |
|
| 196 | + $qb->andWhere($expr->eq($pf.'uid_initiator', $qb->createNamedParameter($userId))); |
|
| 197 | 197 | } else { |
| 198 | 198 | /** @noinspection PhpMethodParametersCountMismatchInspection */ |
| 199 | 199 | $qb->andWhere( |
| 200 | 200 | $expr->orX( |
| 201 | - $expr->eq($pf . 'uid_owner', $qb->createNamedParameter($userId)), |
|
| 202 | - $expr->eq($pf . 'uid_initiator', $qb->createNamedParameter($userId)) |
|
| 201 | + $expr->eq($pf.'uid_owner', $qb->createNamedParameter($userId)), |
|
| 202 | + $expr->eq($pf.'uid_initiator', $qb->createNamedParameter($userId)) |
|
| 203 | 203 | ) |
| 204 | 204 | ); |
| 205 | 205 | } |
@@ -214,14 +214,14 @@ discard block |
||
| 214 | 214 | * @param IQueryBuilder $qb |
| 215 | 215 | * @param int $shareId |
| 216 | 216 | */ |
| 217 | - protected function linkCircleField(IQueryBuilder &$qb, $shareId = -1) { |
|
| 217 | + protected function linkCircleField(IQueryBuilder & $qb, $shareId = -1) { |
|
| 218 | 218 | $expr = $qb->expr(); |
| 219 | 219 | |
| 220 | 220 | $qb->from(CoreRequestBuilder::TABLE_CIRCLES, 'c'); |
| 221 | 221 | |
| 222 | 222 | $tmpOrX = $expr->eq( |
| 223 | 223 | 's.share_with', |
| 224 | - $qb->createFunction('SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')') |
|
| 224 | + $qb->createFunction('SUBSTR(`c`.`unique_id`, 1, '.Circle::SHORT_UNIQUE_ID_LENGTH.')') |
|
| 225 | 225 | ); |
| 226 | 226 | |
| 227 | 227 | if ($shareId === -1) { |
@@ -243,7 +243,7 @@ discard block |
||
| 243 | 243 | /** |
| 244 | 244 | * @param IQueryBuilder $qb |
| 245 | 245 | */ |
| 246 | - protected function linkToCircleOwner(IQueryBuilder &$qb) { |
|
| 246 | + protected function linkToCircleOwner(IQueryBuilder & $qb) { |
|
| 247 | 247 | $expr = $qb->expr(); |
| 248 | 248 | |
| 249 | 249 | $qb->selectAlias('mo.user_id', 'circle_owner'); |
@@ -252,7 +252,7 @@ discard block |
||
| 252 | 252 | 'c', CoreRequestBuilder::TABLE_MEMBERS, 'mo', $expr->andX( |
| 253 | 253 | $expr->eq( |
| 254 | 254 | 'mo.circle_id', |
| 255 | - $qb->createFunction('SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')') |
|
| 255 | + $qb->createFunction('SUBSTR(`c`.`unique_id`, 1, '.Circle::SHORT_UNIQUE_ID_LENGTH.')') |
|
| 256 | 256 | ), $expr->eq('mo.user_type', $qb->createNamedParameter(Member::TYPE_USER)), |
| 257 | 257 | $expr->eq('mo.level', $qb->createNamedParameter(Member::LEVEL_OWNER)) |
| 258 | 258 | ) |
@@ -267,7 +267,7 @@ discard block |
||
| 267 | 267 | * @param string $userId |
| 268 | 268 | * @param bool $groupMemberAllowed |
| 269 | 269 | */ |
| 270 | - protected function linkToMember(IQueryBuilder &$qb, $userId, $groupMemberAllowed) { |
|
| 270 | + protected function linkToMember(IQueryBuilder & $qb, $userId, $groupMemberAllowed) { |
|
| 271 | 271 | $expr = $qb->expr(); |
| 272 | 272 | |
| 273 | 273 | $qb->from(CoreRequestBuilder::TABLE_MEMBERS, 'm'); |
@@ -291,7 +291,7 @@ discard block |
||
| 291 | 291 | * |
| 292 | 292 | * @return \OCP\DB\QueryBuilder\ICompositeExpression |
| 293 | 293 | */ |
| 294 | - private function exprLinkToMemberAsCircleMember(IQueryBuilder &$qb, $userId) { |
|
| 294 | + private function exprLinkToMemberAsCircleMember(IQueryBuilder & $qb, $userId) { |
|
| 295 | 295 | |
| 296 | 296 | $expr = $qb->expr(); |
| 297 | 297 | $andX = $expr->andX(); |
@@ -302,7 +302,7 @@ discard block |
||
| 302 | 302 | $expr->eq( |
| 303 | 303 | 'm.circle_id', |
| 304 | 304 | $qb->createFunction( |
| 305 | - 'SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')' |
|
| 305 | + 'SUBSTR(`c`.`unique_id`, 1, '.Circle::SHORT_UNIQUE_ID_LENGTH.')' |
|
| 306 | 306 | ) |
| 307 | 307 | ) |
| 308 | 308 | ); |
@@ -320,7 +320,7 @@ discard block |
||
| 320 | 320 | * |
| 321 | 321 | * @return \OCP\DB\QueryBuilder\ICompositeExpression |
| 322 | 322 | */ |
| 323 | - private function exprLinkToMemberAsGroupMember(IQueryBuilder &$qb, $userId) { |
|
| 323 | + private function exprLinkToMemberAsGroupMember(IQueryBuilder & $qb, $userId) { |
|
| 324 | 324 | $expr = $qb->expr(); |
| 325 | 325 | |
| 326 | 326 | /** @noinspection PhpMethodParametersCountMismatchInspection */ |
@@ -329,7 +329,7 @@ discard block |
||
| 329 | 329 | $expr->andX( |
| 330 | 330 | $expr->eq( |
| 331 | 331 | 'g.circle_id', |
| 332 | - $qb->createFunction('SUBSTR(`c`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')') |
|
| 332 | + $qb->createFunction('SUBSTR(`c`.`unique_id`, 1, '.Circle::SHORT_UNIQUE_ID_LENGTH.')') |
|
| 333 | 333 | ), |
| 334 | 334 | $expr->gte('g.level', $qb->createNamedParameter(Member::LEVEL_MEMBER)) |
| 335 | 335 | ) |
@@ -349,7 +349,7 @@ discard block |
||
| 349 | 349 | * |
| 350 | 350 | * @param IQueryBuilder $qb |
| 351 | 351 | */ |
| 352 | - protected function leftJoinShareInitiator(IQueryBuilder &$qb) { |
|
| 352 | + protected function leftJoinShareInitiator(IQueryBuilder & $qb) { |
|
| 353 | 353 | $expr = $qb->expr(); |
| 354 | 354 | |
| 355 | 355 | $qb->selectAlias('src_m.level', 'initiator_circle_level'); |
@@ -385,7 +385,7 @@ discard block |
||
| 385 | 385 | * |
| 386 | 386 | * @param IQueryBuilder $qb |
| 387 | 387 | */ |
| 388 | - protected function joinCircleMembers(IQueryBuilder &$qb) { |
|
| 388 | + protected function joinCircleMembers(IQueryBuilder & $qb) { |
|
| 389 | 389 | $expr = $qb->expr(); |
| 390 | 390 | |
| 391 | 391 | /** @noinspection PhpMethodParametersCountMismatchInspection */ |
@@ -406,7 +406,7 @@ discard block |
||
| 406 | 406 | * @param IQueryBuilder $qb |
| 407 | 407 | * @param string $userId |
| 408 | 408 | */ |
| 409 | - protected function linkToFileCache(IQueryBuilder &$qb, $userId) { |
|
| 409 | + protected function linkToFileCache(IQueryBuilder & $qb, $userId) { |
|
| 410 | 410 | $expr = $qb->expr(); |
| 411 | 411 | |
| 412 | 412 | /** @noinspection PhpMethodParametersCountMismatchInspection */ |
@@ -522,7 +522,7 @@ discard block |
||
| 522 | 522 | /** |
| 523 | 523 | * @param IQueryBuilder $qb |
| 524 | 524 | */ |
| 525 | - private function joinShare(IQueryBuilder &$qb) { |
|
| 525 | + private function joinShare(IQueryBuilder & $qb) { |
|
| 526 | 526 | $expr = $qb->expr(); |
| 527 | 527 | |
| 528 | 528 | /** @noinspection PhpMethodParametersCountMismatchInspection */ |
@@ -192,7 +192,7 @@ discard block |
||
| 192 | 192 | * returns the index of a specific UserID in a Members List |
| 193 | 193 | * |
| 194 | 194 | * @param array $members |
| 195 | - * @param $userId |
|
| 195 | + * @param string $userId |
|
| 196 | 196 | * |
| 197 | 197 | * @return int |
| 198 | 198 | */ |
@@ -415,6 +415,9 @@ discard block |
||
| 415 | 415 | } |
| 416 | 416 | |
| 417 | 417 | |
| 418 | + /** |
|
| 419 | + * @param string $groupId |
|
| 420 | + */ |
|
| 418 | 421 | public function unlinkAllFromGroup($groupId) { |
| 419 | 422 | $qb = $this->getGroupsDeleteSql($groupId); |
| 420 | 423 | $qb->execute(); |
@@ -175,7 +175,7 @@ discard block |
||
| 175 | 175 | |
| 176 | 176 | |
| 177 | 177 | /** |
| 178 | - * @param $circleName |
|
| 178 | + * @param string $circleName |
|
| 179 | 179 | * @param IShare $share |
| 180 | 180 | * @param string $email |
| 181 | 181 | */ |
@@ -229,7 +229,7 @@ discard block |
||
| 229 | 229 | * @param $subject |
| 230 | 230 | * @param $text |
| 231 | 231 | * @param $fileName |
| 232 | - * @param $link |
|
| 232 | + * @param string $link |
|
| 233 | 233 | * |
| 234 | 234 | * @return \OCP\Mail\IEMailTemplate |
| 235 | 235 | */ |
@@ -244,7 +244,7 @@ |
||
| 244 | 244 | $emailTemplate->addHeader(); |
| 245 | 245 | $emailTemplate->addHeading($subject, false); |
| 246 | 246 | $emailTemplate->addBodyText( |
| 247 | - $text . "\n " . $this->l10n->t('Click the button below to open it.'), $text |
|
| 247 | + $text."\n ".$this->l10n->t('Click the button below to open it.'), $text |
|
| 248 | 248 | ); |
| 249 | 249 | $emailTemplate->addBodyButton($this->l10n->t('Open »%s«', [$fileName]), $link); |
| 250 | 250 | |