cms
cms copied to clipboard
variable mount is null on every page
Bug Description
Mount variable is missing from collections entries. It is attached as in the docs. Last time worked correctly,
How to Reproduce
- Create new collection, and define the mount
sites:
- default
- hungarian
template: default
layout: layout
mount: 28124839-6062-43bd-8e4e-ca7a11af3b7a
revisions: false
route: '{{mount}}/{{slug}}'
sort_dir: asc
date_behavior:
past: public
future: private
- Create an entry and go to url (
{{mount}}/{{slug}})
Extra Detail
Few weeks ago worked correctly
Environment
Statamic 3.1.11 Pro Laravel 8.40.0 PHP 7.3.12 doublethreedigital/duplicator 1.3.1
Install method (choose one):
- Fresh install from
statamic/statamic
Hmmm, seems to work fine here with this syntax: /{mount}/{slug}.
Can you reach the mount variable? {{ mount | dump }} is null for me. Debugbar shows on mount null too
The mount is set on a collection level and I don't think you can reach it in your template. But your issue is about the actual route giving a 404 right?
So when you visit yoursite.test/mount-slug/entry-slug you got a 404 is what I got from your initial issue.
I noticed you used a different syntax. Have you tried my suggestion?
mount will be the handle of the collection on the entry that has been mounted to it.
Seems to work fine.
In your example, within entry 28124839-6062-43bd-8e4e-ca7a11af3b7a, {{ mount }} will be the handle of whatever collection's yaml file you pasted.
I'm not sure what the real issue is tbh. Can you explain in detail what you are trying to achieve and what you think is the issue?
The mount is set on a collection level and I don't think you can reach it in your template. But your issue is about the actual route giving a 404 right?
So when you visit
yoursite.test/mount-slug/entry-slugyou got a 404 is what I got from your initial issue.I noticed you used a different syntax. Have you tried my suggestion?
The route works fine. I want to reach it in my template, there is a variable, mount:null if I check variables on debugbar
I want to simply use in my template for example: {{ mount:title }} .
another way to explain:
current entry belongs into categories collection
the mount variable is null

What's the id for the current entry in that same debugbar list?
The id is

---
title: 'Marmolitové omietky'
structures:
- product_category
updated_by: 20691469-4788-4708-8dee-2c59bc9e1b41
updated_at: 1617195948
id: 8d01eeef-1113-4596-8716-e96a6d94b0ed
---
I thought commit b3b4a179 is for enable mounted entry in template. Maybe I think it wrong...
I'm not sure what the real issue is tbh. Can you explain in detail what you are trying to achieve and what you think is the issue?
- Create a new collection, dont forget to setup mount.
- Create a new entry 'Mountains' in collection
- Go to template, where you can reach/use 'Mountains' entry
- You will see in debugbar available variables for entry, but variable mount is null
I think it's supposed to work like that. It's only available on the entry where you mounted the collection on. I've been in multiple use cases where I need to get a collection's mount entry URL so you can do stuff like "Go back to all news" / "Go back to all mountains".
There's no native tag for this. There is a FR out: https://github.com/statamic/ideas/issues/301 and a solution in the comments (link to forum).
Hope this helps!
Closing this, feel free to reopen if I'm wrong.
I'm in a multi-site and the mount var is null on career entry pages (which are mounted to a careers page).
IMO it should be the entry to which that collection is mounted.
This has been reverted in #9145 as it causes some issues. We'll revisit it in another version.
I'm running into this same issue. If the mount is null, how can I access the page data the collection is mounted on? I too want to be able to do mount:title or something similar.
I'm looking for the same. Seems no good way to get say the mount title. Doing this as work-around:
{{ if {mount_url:{collection}} }}
{{ get_content from="{{mount_url:{collection}} | replace("/" + site:handle + "/", "/")}" }}
{{ title }}
{{ /get_content }}
{{ /if }}
The string replacement stuff seems necessary also, since mount_url returns full path for multisite, and get_content needs it without.
The workaround from this issue is not available anymore.
I want to do the same thing, any updates on this?
@carstenjaksch Have you seen @925dk's workaround above? Does it work for you?
@duncanmcclean Yeah, I tried and mentioned it in this discussion: https://github.com/statamic/cms/discussions/11237
It works for now, I was just curious if the official solution would return.
The previous fix broke a bunch of things so it had to be reverted. We might fix it another way in the future, but I don't have an ETA on that.