<p>Coming from the EE world, when I need a hierarchical site structure along with sections that have channel-type content, I use the Structure add-on for EE. Events, for example, go in a listing channel.</p>

<p><a href="https://i.sstatic.net/L0B7Q.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/L0B7Q.png" alt="Events"></a></p>

<p>In Craft, while there is far more flexibility among the three section types: structure, channel, and single, there is no facility to create something akin to <strong>Structure for EE</strong>'s listing channel.</p>

<p>Here's what I did instead. I created one master section of the structure type, and a whole bunch of different entry types. </p>

<p><a href="https://i.sstatic.net/Vsj2q.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/Vsj2q.png" alt="Master structure"></a></p>

<p>Each landing page, for example, Staff, calls a template that aggregates content from a channel (which is distinct from the master section). This keeps content neatly segregated - I don't want items that are listings (news, events, staff, etc.) clogging up the master section - it would end up with hundreds of entries over time.</p>

<p>Here's the staff channel:</p>

<p><a href="https://i.sstatic.net/VNrPN.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/VNrPN.png" alt="Staff channel"></a></p>

<p>So the staff landing page, part of the <strong>master</strong> section just calls all the entries in the staff channel, and each entry links to a detail page.</p>

<pre><code>{% for entry in craft.entries.section('staff') %}
  &lt;a href="/about/staff/{slug}"&gt;{{ entry.title }}&lt;/a&gt;
{% endfor %}
</code></pre>

<p>Overall, this method works very well. However, creating navigation is messy. Why? In order to load the staff detail page, I have to link to entries and their template which <strong>lie outside the master section</strong>, so I can't navigation or create breadcrumbs with Craft's {% nav %} tag or a for loop. Also, I have to hard code the full path to the staff detail template, which includes its parents.</p>

<p><a href="https://i.sstatic.net/wcVvc.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/wcVvc.png" alt="Staff section"></a></p>

<p>My questions:</p>

<ul>
<li>How are others solving this problem?</li>
<li>Is there a better way to make the staff detail entry url format more dynamic, in case the client decides to move the staff parent page elsewhere? Currently, if they move it out of about/staff, the staff detail urls are no longer correct.</li>
</ul>

CC BY-SA 3.0
2016-11-14T19:08:50.887Z
Maybe the Craft team can answer this? @brandonkelly
4midori
CC BY-SA 3.0
2016-11-15T11:01:54.437Z
<a href="/about/staff/{slug}">{{ entry.title }}</a>  ==>  <a href="{{ entry.url }}">{{ entry.title }}</a> (https://craftcms.com/docs/templating/entrymodel#url)
Krzysztof Boduch
<entries><structure>
Creating a manageable site structure
# Creating a manageable site structure

(Asked by: username_0 on 2016-11-03)

Coming from the EE world, when I need a hierarchical site structure along with sections that have channel-type content, I use the Structure add-on for EE. Events, for example, go in a listing channel.

In Craft, while there is far more flexibility among the three section types: structure, channel, and single, there is no facility to create something akin to Structure for EE's listing channel.
Here's what I did instead. I created one master section of the structure type, and a whole bunch of different entry types. 

Each landing page, for example, Staff, calls a template that aggregates content from a channel (which is distinct from the master section). This keeps content neatly segregated - I don't want items that are listings (news, events, staff, etc.) clogging up the master section - it would end up with hundreds of entries over time.
Here's the staff channel:

So the staff landing page, part of the master section just calls all the entries in the staff channel, and each entry links to a detail page.
{% for entry in craft.entries.section('staff') %}
  {{ entry.title }}
{% endfor %}

Overall, this method works very well. However, creating navigation is messy. Why? In order to load the staff detail page, I have to link to entries and their template which lie outside the master section, so I can't navigation or create breadcrumbs with Craft's {% nav %} tag or a for loop. Also, I have to hard code the full path to the staff detail template, which includes its parents.

My questions:

How are others solving this problem?
Is there a better way to make the staff detail entry url format more dynamic, in case the client decides to move the staff parent page elsewhere? Currently, if they move it out of about/staff, the staff detail urls are no longer correct.

**Tags:** entries, structure

> **Comments:**
> **username_0**: Maybe the Craft team can answer this? @brandonkelly  
> **username_1**: <a href="/about/staff/{slug}">{{ entry.title }}</a>  ==>  <a href="{{ entry.url }}">{{ entry.title }}</a> (https://craftcms.com/docs/templating/entrymodel#url)  

---

## 0 answers

