X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/7ebe7d4e58f4555d6a9a253f976e22af9add7dec..refs/pull/5293/head:/app/Entities/Models/Book.php diff --git a/app/Entities/Models/Book.php b/app/Entities/Models/Book.php index faae276a5..c1644dcf5 100644 --- a/app/Entities/Models/Book.php +++ b/app/Entities/Models/Book.php @@ -15,7 +15,7 @@ use Illuminate\Support\Collection; * * @property string $description * @property int $image_id - * @property ?int $default_template + * @property ?int $default_template_id * @property Image|null $cover * @property \Illuminate\Database\Eloquent\Collection $chapters * @property \Illuminate\Database\Eloquent\Collection $pages @@ -26,11 +26,12 @@ use Illuminate\Support\Collection; class Book extends Entity implements HasCoverImage { use HasFactory; + use HasHtmlDescription; - public $searchFactor = 1.2; + public float $searchFactor = 1.2; - protected $fillable = ['name', 'description']; - protected $hidden = ['pivot', 'image_id', 'deleted_at']; + protected $fillable = ['name']; + protected $hidden = ['pivot', 'image_id', 'deleted_at', 'description_html']; /** * Get the url for this book. @@ -78,7 +79,7 @@ class Book extends Entity implements HasCoverImage */ public function defaultTemplate(): BelongsTo { - return $this->belongsTo(Page::class, 'default_template'); + return $this->belongsTo(Page::class, 'default_template_id'); } /** @@ -116,20 +117,11 @@ class Book extends Entity implements HasCoverImage /** * Get the direct child items within this book. */ - public function getDirectChildren(): Collection + public function getDirectVisibleChildren(): Collection { $pages = $this->directPages()->scopes('visible')->get(); $chapters = $this->chapters()->scopes('visible')->get(); return $pages->concat($chapters)->sortBy('priority')->sortByDesc('draft'); } - - /** - * Get a visible book by its slug. - * @throws \Illuminate\Database\Eloquent\ModelNotFoundException - */ - public static function getBySlug(string $slug): self - { - return static::visible()->where('slug', '=', $slug)->firstOrFail(); - } }