You are not logged in.
Pages: 1
Hi,
I got a question about routed templates and sub items.
Currently I have a module that consist of different items. Under these items, there are sub items.
These sub items are linked via a one to many field.
So there are 2 overview pages. One with the main items, and one with the corresponding sub items.
The main item can be either one level deep, or 2 levels (if it has sub items).
Right now I don't know how to link these 2 modules to have a nice url (and breadcrumb).
For example, I have "athmospheric pictures" and beneath that are "night photograpgy" and "black and white phptpgraphy".
If you go to the "athmospheric pictures" page, the url is "portfolio/landing/athmospheric pictures" to have a different template as a normal item.
A normal item's link would be "portfolio/item/black and white phptpgraphy". But this doesn't have the "athmospheric pictures" inside the url.
Is it possible to make a routed template that has "portfolio/athmospheric-picures/black and white phptpgraphy" as a url?
What would be the right way to do this?
The story about the links could be a bit vague without seeing it.
This is where you can see what I mean https://zpam.nl/portfolio
Many thanks in avance
Offline
Yes, you can do that. What I would do is do a check in your routed template's default.php to see how many additional commands are present. Something like this:
if (count($bigtree["commands"]) == 2) {
include "sub-item.php";
} else if (count($bigtree["commands"]) == 1) {
include "item.php";
} else {
// The landing page is here.
}
Then in sub-item.php you'll want to do a look-up on the top-level item based on the first route in $bigtree["commands"] and look up the sub item based on the second route and make sure that the sub-item is a child of the top-level item (and if it is not, throw a 404).
In item.php you'd just do what you're likely doing now which is just look-up the item by $bigtree["commands"][0].
Offline
Yes, you can do that. What I would do is do a check in your routed template's default.php to see how many additional commands are present. Something like this:
if (count($bigtree["commands"]) == 2) { include "sub-item.php"; } else if (count($bigtree["commands"]) == 1) { include "item.php"; } else { // The landing page is here. }
Then in sub-item.php you'll want to do a look-up on the top-level item based on the first route in $bigtree["commands"] and look up the sub item based on the second route and make sure that the sub-item is a child of the top-level item (and if it is not, throw a 404).
In item.php you'd just do what you're likely doing now which is just look-up the item by $bigtree["commands"][0].
Ofcourse! Including instead of using a new template each time!
Thanks a lot. It's working and my code is a lot cleaner and less complicated now
Offline
Pages: 1