| 
									
										
										
										
											2023-08-04 19:27:29 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 21:39:39 +08:00
										 |  |  | namespace BookStack\Activity\Notifications\MessageParts; | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | use Illuminate\Contracts\Support\Htmlable; | 
					
						
							| 
									
										
										
										
											2023-09-02 22:11:42 +08:00
										 |  |  | use Stringable; | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * A line of text with linked text included, intended for use | 
					
						
							|  |  |  |  * in MailMessages. The line should have a ':link' placeholder for | 
					
						
							|  |  |  |  * where the link should be inserted within the line. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2023-09-02 22:11:42 +08:00
										 |  |  | class LinkedMailMessageLine implements Htmlable, Stringable | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:29 +08:00
										 |  |  | { | 
					
						
							|  |  |  |     public function __construct( | 
					
						
							|  |  |  |         protected string $url, | 
					
						
							|  |  |  |         protected string $line, | 
					
						
							|  |  |  |         protected string $linkText, | 
					
						
							|  |  |  |     ) { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function toHtml(): string | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $link = '<a href="' . e($this->url) . '">' . e($this->linkText) . '</a>'; | 
					
						
							|  |  |  |         return str_replace(':link', $link, e($this->line)); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-09-02 22:11:42 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     public function __toString(): string | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $link = "{$this->linkText} ({$this->url})"; | 
					
						
							|  |  |  |         return str_replace(':link', $link, $this->line); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-08-04 19:27:29 +08:00
										 |  |  | } |