23 lines
		
	
	
		
			523 B
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			23 lines
		
	
	
		
			523 B
		
	
	
	
		
			PHP
		
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace BookStack\References\ModelResolvers; | ||
|  | 
 | ||
|  | use BookStack\Uploads\Attachment; | ||
|  | 
 | ||
|  | class AttachmentModelResolver implements CrossLinkModelResolver | ||
|  | { | ||
|  |     public function resolve(string $link): ?Attachment | ||
|  |     { | ||
|  |         $pattern = '/^' . preg_quote(url('/attachments'), '/') . '\/(\d+)/'; | ||
|  |         $matches = []; | ||
|  |         $match = preg_match($pattern, $link, $matches); | ||
|  |         if (!$match) { | ||
|  |             return null; | ||
|  |         } | ||
|  | 
 | ||
|  |         $id = intval($matches[1]); | ||
|  | 
 | ||
|  |         return Attachment::query()->find($id); | ||
|  |     } | ||
|  | } |