Customization fails on v25.11 #5487

Closed
opened 2026-02-05 10:06:11 +03:00 by OVERLORD · 11 comments
Owner

Originally created by @memo-567 on GitHub (Nov 9, 2025).

Attempted Debugging

  • I have read the debugging page

Searched GitHub Issues

  • I have searched GitHub for the issue.

Describe the Scenario

After updating to the last version, BookStack fails with all custom changes in theme folder except a specific icon.
What has drastically changed?

BookStack works fine without custom changes.

Exact BookStack Version

v25.11

Log Content


Hosting Environment

./.

Originally created by @memo-567 on GitHub (Nov 9, 2025). ### Attempted Debugging - [x] I have read the debugging page ### Searched GitHub Issues - [x] I have searched GitHub for the issue. ### Describe the Scenario After updating to the last version, BookStack fails with all custom changes in theme folder except a specific icon. What has drastically changed? BookStack works fine without custom changes. ### Exact BookStack Version v25.11 ### Log Content ```text ``` ### Hosting Environment ./.
OVERLORD added the 🐕 Support label 2026-02-05 10:06:11 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Nov 9, 2025):

Hi @memo-567,
The core database structure for the main content types, along with various other bits of internals, have changed in this release.
What version are you coming from, and what kind of customizations do you have active?

@ssddanbrown commented on GitHub (Nov 9, 2025): Hi @memo-567, The core database structure for the main content types, along with various other bits of internals, have changed in this release. What version are you coming from, and what kind of customizations do you have active?
Author
Owner

@memo-567 commented on GitHub (Nov 9, 2025):

I updated right from previous version. I did these changes:

In shelves
/show.blade.php

        <div class="flex-container-row wrap v-center">
		<h1 class="flex fit-content break-text">{{ $shelf->name }} <font color="#d3d3d3">({{ $shelf->books()->count() }})</font></h1>
            <div class="flex"></div>
            <div class="flex fit-content text-m-right my-m ml-m">
                @include('common.sort', $listOptions->getSortControlData())
            </div>
        </div>

----
In entities
/grid-item.blade.php

    <div class="grid-card-content">
        <h2 class="text-limit-lines-2">{{ $entity->name }}@if($entity->getType() === 'bookshelf')
		<font color="#d3d3d3">({{ $shelf->books()->count() }})</font> @endif</h2>
        <p class="text-muted">{{ $entity->getExcerpt(130) }}</p>
    </div>

---
In books
/show.blade.php

    <main class="content-wrap card">
        <h1 class="break-text">{{$book->name}}</h1>
        <img src="{{ $book->getBookCover() }}"  width="400">
        <div refs="entity-search@contentView" class="book-content">
            <p class="text-muted">{!! nl2br(e($book->description)) !!}</p>
            @if(count($bookChildren) > 0)
                <div class="entity-list book-contents">
                    @foreach($bookChildren as $childElement)
                        @if($childElement->isA('chapter'))
                            @include('chapters.parts.list-item', ['chapter' => $childElement])
                        @else
                            @include('pages.parts.list-item', ['page' => $childElement])
                        @endif
                    @endforeach
                </div>   

Essentially:

Display image:
<img src="{{ $book->getBookCover() }}" width="400">

Number of items:
<font color="#d3d3d3">({{ $shelf->books()->count() }})</font> in <font color="#d3d3d3">({{ $shelf->books()->count() }})</font>

@memo-567 commented on GitHub (Nov 9, 2025): I updated right from previous version. I did these changes: ``` In shelves /show.blade.php <div class="flex-container-row wrap v-center"> <h1 class="flex fit-content break-text">{{ $shelf->name }} <font color="#d3d3d3">({{ $shelf->books()->count() }})</font></h1> <div class="flex"></div> <div class="flex fit-content text-m-right my-m ml-m"> @include('common.sort', $listOptions->getSortControlData()) </div> </div> ---- In entities /grid-item.blade.php <div class="grid-card-content"> <h2 class="text-limit-lines-2">{{ $entity->name }}@if($entity->getType() === 'bookshelf') <font color="#d3d3d3">({{ $shelf->books()->count() }})</font> @endif</h2> <p class="text-muted">{{ $entity->getExcerpt(130) }}</p> </div> --- In books /show.blade.php <main class="content-wrap card"> <h1 class="break-text">{{$book->name}}</h1> <img src="{{ $book->getBookCover() }}" width="400"> <div refs="entity-search@contentView" class="book-content"> <p class="text-muted">{!! nl2br(e($book->description)) !!}</p> @if(count($bookChildren) > 0) <div class="entity-list book-contents"> @foreach($bookChildren as $childElement) @if($childElement->isA('chapter')) @include('chapters.parts.list-item', ['chapter' => $childElement]) @else @include('pages.parts.list-item', ['page' => $childElement]) @endif @endforeach </div> ``` **Essentially:** Display image: `<img src="{{ $book->getBookCover() }}" width="400">` Number of items: `<font color="#d3d3d3">({{ $shelf->books()->count() }})</font> in <font color="#d3d3d3">({{ $shelf->books()->count() }})</font>`
Author
Owner

@ssddanbrown commented on GitHub (Nov 9, 2025):

Generally there weren't many view changes since the last release, so I'd have thought these kinds of customizations should be fine.

Did you update from a v25.07 release?
Are you able to share your theme folder as a single ZIP/tar.gz?

@ssddanbrown commented on GitHub (Nov 9, 2025): Generally there weren't many view changes since the last release, so I'd have thought these kinds of customizations should be fine. Did you update from a v25.07 release? Are you able to share your theme folder as a single ZIP/tar.gz?
Author
Owner

@memo-567 commented on GitHub (Nov 9, 2025):

I'm always updating, so if the previous version was v25.07 - than yes. Theme folder is appended.

download-2025.11.9_13.53.30.tar.gz

@memo-567 commented on GitHub (Nov 9, 2025): I'm always updating, so if the previous version was v25.07 - than yes. Theme folder is appended. [download-2025.11.9_13.53.30.tar.gz](https://github.com/user-attachments/files/23439746/download-2025.11.9_13.53.30.tar.gz)
Author
Owner

@ktdd commented on GitHub (Nov 11, 2025):

Apparently getBookCover() has been removed from app/Entities/Models/Book.php. Copied it from earlier version and my errors are gone.

@ktdd commented on GitHub (Nov 11, 2025): Apparently getBookCover() has been removed from app/Entities/Models/Book.php. Copied it from earlier version and my errors are gone.
Author
Owner

@memo-567 commented on GitHub (Nov 11, 2025):

@ssddanbrown

Same behavior after updating to v25.11.1. ¯\_(ツ)_/¯

@memo-567 commented on GitHub (Nov 11, 2025): @ssddanbrown Same behavior after updating to v25.11.1. ¯\\\_(ツ)_/¯
Author
Owner

@DiscordDigital commented on GitHub (Nov 11, 2025):

Running into the very same issue

@DiscordDigital commented on GitHub (Nov 11, 2025): Running into the very same issue
Author
Owner

@ssddanbrown commented on GitHub (Nov 11, 2025):

@memo-567 Yeah, the v25.11.1 changes were unrelated to this.

As @ktdd has mentioned, this will be due to book cover changes.
You'll likely need to make the following substitutions.

  • $book->getBookCover() to $book->coverInfo()->getUrl()
  • @if($book->cover) to @if($book->coverInfo()->exists())

There might be more depending on the extent and locations of customizations.
If you temporarily enable the debug view you should get more detailed output in regards to what specifically might be throwing errors.

@memo-567 From a quick skim of your theme code, I'm seeing other outdated elements also (like book description handling) so you may want to re-apply your customizations upon current release view file versions.

@ssddanbrown commented on GitHub (Nov 11, 2025): @memo-567 Yeah, the v25.11.1 changes were unrelated to this. As @ktdd has mentioned, this will be due to book cover changes. You'll likely need to make the following substitutions. - `$book->getBookCover()` to `$book->coverInfo()->getUrl()` - `@if($book->cover)` to `@if($book->coverInfo()->exists())` There might be more depending on the extent and locations of customizations. If you [temporarily enable the debug view](https://www.bookstackapp.com/docs/admin/debugging/#debug-view) you should get more detailed output in regards to what specifically might be throwing errors. @memo-567 From a quick skim of your theme code, I'm seeing other outdated elements also (like book description handling) so you may want to re-apply your customizations upon current release view file versions.
Author
Owner

@memo-567 commented on GitHub (Nov 12, 2025):

Thanks for the tip, but I'm not going to start all over again with the changes.
It was a nice idea to be able to customize BookStack, but having to reimplement them in new versions is not a good approach.

@memo-567 commented on GitHub (Nov 12, 2025): Thanks for the tip, but I'm not going to start all over again with the changes. It was a nice idea to be able to customize BookStack, but having to reimplement them in new versions is not a good approach.
Author
Owner

@ktdd commented on GitHub (Nov 12, 2025):

Thanks for the tip, but I'm not going to start all over again with the changes. It was a nice idea to be able to customize BookStack, but having to reimplement them in new versions is not a good approach.

You don't need to start all over. Just do the substitutions mentioned by ssdanbrown, recursively with sed or something similar. Works fine.

@ktdd commented on GitHub (Nov 12, 2025): > Thanks for the tip, but I'm not going to start all over again with the changes. It was a nice idea to be able to customize BookStack, but having to reimplement them in new versions is not a good approach. You don't need to start all over. Just do the substitutions mentioned by ssdanbrown, recursively with sed or something similar. Works fine.
Author
Owner

@memo-567 commented on GitHub (Nov 12, 2025):

You don't need to start all over. Just do the substitutions mentioned by ssdanbrown, recursively with sed or something similar. Works fine.

Sadly not:

From a quick skim of your theme code, I'm seeing other outdated elements also (like book description handling) so you may want to re-apply your customizations upon current release view file versions.

@memo-567 commented on GitHub (Nov 12, 2025): > You don't need to start all over. Just do the substitutions mentioned by ssdanbrown, recursively with sed or something similar. Works fine. Sadly not: >From a quick skim of your theme code, I'm seeing other outdated elements also (like book description handling) so you may want to re-apply your customizations upon current release view file versions.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#5487