mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-07-16 05:33:49 +03:00
Docker Image - loading an additional PHP file #5148
Closed
opened 2026-02-05 09:44:25 +03:00 by OVERLORD
·
6 comments
No Branch/Tag Specified
development
l10n_development
release
snyk-action
ci_and_static
mfa_key
phpstan_june26
MilnerMart/development
GamerClassN7/impersonations-for-admin
Zhey-on/feature/csp-image-css-controls-6033
tortillas5/development
llm_only
vectors
McTom234/oidc-key-algorithms
captcha_example
v26.05.2
v26.05.1
v26.05
v26.03.5
v26.03.4
v26.03.3
v26.03.2
v26.03.1
v26.03
v25.12.9
v25.12.8
v25.12.7
v25.12.6
v25.12.5
v25.12.4
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
No Label
🐕 Support
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#5148
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @kristiandg on GitHub (Jan 25, 2025).
Attempted Debugging
Searched GitHub Issues
Describe the Scenario
Good afternoon. I'm trying to add a bit of functionality that needs to be a combination of expansion code and a back-end "custom controller" (in theory, stored at /app/Http/Controllers). Is there any way to add my module, or store it elsewhere and tell BookStack to include it on load? Thanks.
Exact BookStack Version
v24.12.1
Log Content
n/a
Hosting Environment
Azure App Service (Docker Image) with Azure Storage mounted for off-board media content storage...
@ssddanbrown commented on GitHub (Jan 25, 2025):
Hi @kristiandg,
The logical theme system allows back-end extension of app code:
https://github.com/BookStackApp/BookStack/blob/development/dev/docs/logical-theme-system.md
There are some events to register custom routes as shown here:
https://www.bookstackapp.com/blog/bookstack-release-v23-12/#logical-theme-system-events-to-register-routes
@ssddanbrown commented on GitHub (Jan 25, 2025):
The recent discussion in #5430 also has some potentially relevant examples.
@kristiandg commented on GitHub (Jan 25, 2025):
Well, after spending the past 5 hours on this, I'm officially throwing in the towel. I think I was on the right track with what I'm trying to do, I'm just not a coder really so already I've got one hand tied behind my back. lol
Is there a place where I can post a little bounty to have someone write what I'm wanting?
@ssddanbrown commented on GitHub (Jan 25, 2025):
What are you trying to do? Did you get the theme system running/active?
@kristiandg commented on GitHub (Jan 25, 2025):
I'm pretty sure the Theme System is now in play because I accidentally forgot the PHP header at one point in my functions file, and that was now appearing as raw text at the top of the page (confirming it was reading that theme and processing it), and at random points during testing I'd do something to the file that would make the page formatting get really funky.
Ok, please don't make fun - as I said I'm not a coder. I was using ChatGPT to describe what I was trying to do, and I was relatively impressed (again, NOT a coder, so maybe easily impressed) at the various files it spun for me, but after a few hours, I ended up hitting a wall of going in circles with it during the diagnostics of trying to figure out the failure...
What I'm trying to do is this (and it's in 2 parts):
Dynamic Image:
Create a Placeholder ( it created:
![[dynamic-logo/logo]]) for an image within a book (like, a company logo), and based on the host-part of the URL you used to access the BookStack server, that would dictate what logo to display in the book (basically, branding the book).In order for it to get the details necessary to determine which image to use, the code first looks at the host-part , then queries a piece of middleware I have deployed for another project. The middleware requires an auth key, which for safety reasons, I've added to my .env as "UE_MIDDLEWARE_API_KEY" (and not put directly in the code).
The query it assembles is basically submitting that hostpart to the middleware, in a body like this:
portalRootSubstring: "{{HOSTPARTGOESHERE}}" //domain name reqType: "getVanityCertsByPortalRoot"The response looks like this:
"theGlobalObject": { "current_domain": "Developer", "sub_domain": "Developer", "sub_user": "1001", "sub_reseller": "Developer", "sub_scope": "Super User", "sub_site": null, "scope_mode": "admin", "omp_level": "navigation_reseller", "sub_email": "{{REDACTED}}", "sub_name": "SuperUser Developer Test", "sub_time_zone": "US/Eastern", "sub_uri": "{{REDACTED}}", "server_name": "{{REDACTED}}"},and what we care about is:
"sub_reseller": "Developer"(we now know Developer)Once we have that sub_reseller value, we then retrieve the image from this assembled URL, inserting the sub_reseller's value as part of the image retrieval query:
`https://{{REDACTED}}/ns-api/?object=image&action=read&filename=portal_main_top_left.png&territory={{sub_resellerValue}}
What I deployed, did recognize the markdown placeholder, but it ended up just displaying the raw text.
Dynamic Video Watermark
I'm not even sure if the Video Watermark is possible. I mean, I know it's possible in general, but not sure BookStack is capable of that one, but I sure was going to try. lol
@ssddanbrown commented on GitHub (Sep 3, 2025):
Since this support request is quite old, and for a specific external scenario, I'm going to close this off.