| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace BookStack\Actions; | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | use BookStack\Model; | 
					
						
							| 
									
										
										
										
											2021-10-31 04:29:59 +08:00
										 |  |  | use Illuminate\Database\Eloquent\Factories\HasFactory; | 
					
						
							| 
									
										
										
										
											2021-05-24 23:12:09 +08:00
										 |  |  | use Illuminate\Database\Eloquent\Relations\MorphTo; | 
					
						
							| 
									
										
										
										
											2016-05-07 03:33:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-13 01:06:01 +08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @property int    $id | 
					
						
							|  |  |  |  * @property string $name | 
					
						
							|  |  |  |  * @property string $value | 
					
						
							|  |  |  |  * @property int    $order | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2016-05-14 04:20:21 +08:00
										 |  |  | class Tag extends Model | 
					
						
							| 
									
										
										
										
											2016-05-07 03:33:08 +08:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2021-10-31 04:29:59 +08:00
										 |  |  |     use HasFactory; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-13 06:12:05 +08:00
										 |  |  |     protected $fillable = ['name', 'value', 'order']; | 
					
						
							| 
									
										
										
										
											2020-11-28 23:21:54 +08:00
										 |  |  |     protected $hidden = ['id', 'entity_id', 'entity_type', 'created_at', 'updated_at']; | 
					
						
							| 
									
										
										
										
											2016-05-07 03:33:08 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |      * Get the entity that this tag belongs to. | 
					
						
							| 
									
										
										
										
											2016-05-07 03:33:08 +08:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2021-05-24 23:12:09 +08:00
										 |  |  |     public function entity(): MorphTo | 
					
						
							| 
									
										
										
										
											2016-05-07 03:33:08 +08:00
										 |  |  |     { | 
					
						
							|  |  |  |         return $this->morphTo('entity'); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-05-24 23:12:09 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Get a full URL to start a tag name search for this tag name. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function nameUrl(): string | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |         return url('/search?term=%5B' . urlencode($this->name) . '%5D'); | 
					
						
							| 
									
										
										
										
											2021-05-24 23:12:09 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Get a full URL to start a tag name and value search for this tag's values. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function valueUrl(): string | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2021-06-26 23:23:15 +08:00
										 |  |  |         return url('/search?term=%5B' . urlencode($this->name) . '%3D' . urlencode($this->value) . '%5D'); | 
					
						
							| 
									
										
										
										
											2021-05-24 23:12:09 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2018-01-29 00:58:52 +08:00
										 |  |  | } |