mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-11 03:13:15 +03:00
Can't add image in custom footer? #3451
Closed
opened 2026-02-05 06:45:21 +03:00 by OVERLORD
·
14 comments
No Branch/Tag Specified
development
l10n_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
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
🔨 Feature Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#3451
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 @liuhuanshuo on GitHub (Jan 15, 2023).
Describe the feature you'd like
I found that the footer can be customized in the settings of the web version, but only text and links can be added, and media such as pictures cannot be added
For example I can only set footer like this

But actually I want to set it like this

Even if I put the hyperlink of the picture in the settings, it will not be displayed normally, it seems that it can only be displayed as text

Describe the benefits this would bring to existing BookStack users
Simple text display cannot meet the development needs very well
Can the goal of this request already be achieved via other means?
What I know is that if I use php source code to build a page, there should be a way to modify the source code to achieve it, but I use docker compose for deployment, and I can't find the source code in the container!
Have you searched for an existing open/closed issue?
How long have you been using BookStack?
0 to 6 months
Additional context
No response
@ssddanbrown commented on GitHub (Jan 15, 2023):
Hi @liuhuanshuo,
Yeah, we only support simple text links via the in-platform options.
There's a limit to the customization controls we'd provide in-platform.
Advanced customization can be achieved via the visual theme system. If it helps, I have a video covering usage of this system here.
If you are using the linuxserver docker image, I'm fairly sure they expose the required
themesfolder to the mounted/configvolume folder.This would be the view that you'd target for override to replace the system footer with custom code.
@liuhuanshuo commented on GitHub (Jan 16, 2023):
hi,
Thank you very much for your guidance, I think I should understand how to add a custom footer to my page。
I did find a folder called theme in my docker container volume,of course this folder is empty
But there is still something I don't understand, I watched your instructional video on youtube,I found that you can find the source code of the whole page, that is a lot of php files or some static files, so you know which file should be replaced, but I can't find it in my container volume
Below is the full directory of bookstack in my docker container

So, if I want to customize the footer, I just need to create a new folder under the theme folder, add this folder to
.env, and then create a newfooter.blade.phpfile under this folder, The content can be like thisThat's it, right? In addition, if I want to modify other content, where should I find the directory of the source code, I can't find it in the dokcer.
Thanks again for developing such a great work!
@ssddanbrown commented on GitHub (Jan 16, 2023):
Yeah, you won't find it in your mounted volume folder. These files are within the container, and not exposed to the volume since they're not supposed to be touched or retained. You could find them by going into the container (Accessing running container via
bash) then going to the/appdirectory I think for the linuxserver image.Alternatively, you can just find the source of the views here in GitHub instead.
Yeah, almost. The new view file needs to be in a
commonfolder, so would need to be stored asthemes/<theme_name>/common/footer.blade.php. This is to match it's path within the originalresources/viewsfolder (As can be seen towards the top when viewing the file on GitHub).@liuhuanshuo commented on GitHub (Jan 21, 2023):
@ssddanbrown
hi,With your guidance, I created
footer.blade.phpand successfully modified the footer to the style I want!However, when I try to add some js-controlled click styles in footer.blade.php, these js codes collectively fail!
For example, the following simple js code, in order to realize clicking on a picture to appear a picture
I am sure there is no problem with the code, even if I put this code in the settings, it will not take effect
Finally, I read a lot of information, I found that you seem to be set, by default, the user's js code is prohibited from taking effect
then. I followed your prompt, I set
ALLOW_CONTENT_SCRIPTS=true, and then my js code took effectBut I still don't understand why you want to guide users to use it like this, why do you turn off js by default, and what is the risk of me doing this?
(Sorry, I am a newcomer in this area, I am worried that if I do this, the website will become very insecure, but I do need some custom js, such as Google analysis)
@ssddanbrown commented on GitHub (Jan 21, 2023):
Not sure what this question is referencing.
To prevent the running of possibly maliciously injected JavaScript. Just another level of safety against potentially bad code.
The risk of
ALLOW_CONTENT_SCRIPTS=trueis quite high, since it disables significant XSS security protections.Instead, when adding custom scripts in your content, you can start them like so:
This should allow them to be ran without
ALLOW_CONTENT_SCRIPTS=true.@liuhuanshuo commented on GitHub (Jan 21, 2023):
I commented
ALLOW_CONTENT_SCRIPTS=trueThen use the following js code, it will not take effect, do you need additional settings?
@ssddanbrown commented on GitHub (Jan 21, 2023):
No. Should just work. Are you getting a warning/error in the browser console? Does a
console.log('hello!') ;work and log a message if placed outside the functions?@liuhuanshuo commented on GitHub (Jan 21, 2023):
Now the strange thing is that this js will output hello, but the function inside does not work
It works if I cancel
ALLOW_CONTENT_SCRIPTS=trueThe console shows like this
@ssddanbrown commented on GitHub (Jan 21, 2023):
Ah, it's the inline event listener causing problems.
You'd need to use even handlers instead of inline event attributes.
So instead of
<div id="custom-thing" onclick="showPopup">or something, you'd register the event in your script:@liuhuanshuo commented on GitHub (Jan 21, 2023):
Thanks, I'll give it a try, I'm not very knowledgeable about js here
@sven7654321 commented on GitHub (Jan 21, 2023):
@ssddanbrown
I'm sorry I might have to turn to you again
I checked some information and changed part of the code in my footer.blade.php as follows, but the JS code still doesn't work!
In fact, my js is very simple. Click on my picture to pop up a small window, and click on other positions to close it.
But I don't know why it doesn't work, below is the html code
and below is the js code
@liuhuanshuo commented on GitHub (Jan 21, 2023):
What I'm not sure about is if I need to do other settings like CSP related parameters
@ssddanbrown commented on GitHub (Jan 21, 2023):
You were listening for clicks on the hidden popup element.
Here's a tweaked variant:
Note: The
<script>section must be placed after the other HTML.@liuhuanshuo commented on GitHub (Jan 21, 2023):
That's ok, thanks a lot, I'll take a closer look at your code