31
BUILDING EE SITES WITH STRUCTURE Presented by Kristen Grote www.kristengrote.com Portland ExpressionEngine Meetup March 27, 2013

Building EE Sites with Structure

Embed Size (px)

DESCRIPTION

Learn how to integrate the Structure module into an ExpressionEngine site. Kristen will go over basic concepts, best practices, and helpful tips & tricks. What you'll learn: - Why use Structure? - Difference between a Structure-managed page and a native, template-based page. - Using "listings" for large channel groups like blogs and news. - Using "assets" for non-page content, like sidebar touts & notifications. - Useful tags & techniques for your templates. - Dealing with category & archive listings.

Citation preview

Page 1: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

Presented by Kristen Grotewww.kristengrote.com

Portland ExpressionEngine MeetupMarch 27, 2013

Page 2: Building EE Sites with Structure

WHAT IS STRUCTURE & WHY IS IT GREAT?

Structure is EE's native Pages module on steroids.

BUILDING EE SITES WITH STRUCTURE

Page 3: Building EE Sites with Structure

Client-Friendly Interface

BUILDING EE SITES WITH STRUCTURE

WHAT IS STRUCTURE & WHY IS IT GREAT?

EE's Edit Screen Structure

Page 4: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

WHAT IS STRUCTURE & WHY IS IT GREAT?

Native EE: http://www.mysite.com/blog/post/my-post-title

Structure: http://www.mysite.com/blog/my-post-title

Unnecessary Segment

Semantic, Organized URLs

Page 5: Building EE Sites with Structure

Unrestricted Subpage Levels & URL Segments

1 2 3 4 5 6

WHAT IS STRUCTURE & WHY IS IT GREAT?

BUILDING EE SITES WITH STRUCTURE

Page 6: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

WHAT IS STRUCTURE & WHY IS IT GREAT?

Dynamic, Sortable, & Client-Manageable Navigation

Page 7: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

WHAT IS STRUCTURE & WHY IS IT GREAT?

Duplicate URL Titles

Native EE:

domain.com/contact/thank-you

domain.com/register/thank-you1

Structure:

domain.com/contact/thank-you

domain.com/register/thank-youGross!

Page 8: Building EE Sites with Structure

● Download & install the Structure files like you normally would and install the module in EE

● The Pages module should not be installed

● Create all of your channels and templates before configuring Structure

BUILDING EE SITES WITH STRUCTURE

INSTALLATION & SETUP

Page 9: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

INSTALLATION & SETUP

● Configure each channel in the Structure settings

Every Structure channel should be assigned a default template, but you're not restricted to only that template (more on that later)

Page 10: Building EE Sites with Structure

Page: A one-off entry that is part of the main sitemap (ex. Home, About, Contact, Blog Overview)

Listing: A large group of entries in the same channel that are best suited for categorization, sorting, & archiving (ex. blog entries, news items, products)

Asset: Channel entries that aren’t displayed as unique pages, but rather extra chunks of re-usable data (ex. sidebar touts, testimonials)

BUILDING EE SITES WITH STRUCTURE

INSTALLATION & SETUP

Page 11: Building EE Sites with Structure

Publish Your First Entry

INSTALLATION & SETUP

BUILDING EE SITES WITH STRUCTURE

A Structure tab now appears on the Publish page

Page 12: Building EE Sites with Structure

When You Publish an Entry with Structure, it Exists at 2 URLs:

BUILDING EE SITES WITH STRUCTURE

PUBLISHING ENTRIES

Native EE: http://www.mysite.com/blog/post/my-post-title

Structure: http://www.mysite.com/blog/my-post-title

TemplateTemplate Group

Parent Page

Entry Title

Child Page/Listing Entry Title

Page 13: Building EE Sites with Structure

Hide Structure-assigned templates or template groups to prevent duplicate URLs.

BUILDING EE SITES WITH STRUCTURE

PUBLISHING ENTRIES

Hide the entire group... ...or just the template

Page 14: Building EE Sites with Structure

Assigning Templates Per-Page

BUILDING EE SITES WITH STRUCTURE

PUBLISHING ENTRIES

"Default" Channel Content

Contact Template

Page 15: Building EE Sites with Structure

● Can be multiple levels deep ● Can use any Structure-managed "Page"-type channel● Can be re-ordered & moved up or down levels● The URL structure will match the subpage structure

BUILDING EE SITES WITH STRUCTURE

SUB-PAGES

Page 16: Building EE Sites with Structure

A large group of entries in the same channel that are well-suited to categorization, sorting, & archiving.

Examples: Blogs, Latest News, Products

BUILDING EE SITES WITH STRUCTURE

LISTINGS

Page 17: Building EE Sites with Structure

1. Assign a channel as a listing in Structure settings.

Assign as a Listing channel

The template the individual channel

entries will use.

BUILDING EE SITES WITH STRUCTURE

LISTINGS

Page 18: Building EE Sites with Structure

2. Assign the listing channel to a parent entry

BUILDING EE SITES WITH STRUCTURE

LISTINGS

The parent entry can be in any "Page"-type channel.

Page 19: Building EE Sites with Structure

Tip: Use an empty "placeholder" channel for listing parents with no unique content.

BUILDING EE SITES WITH STRUCTURE

LISTINGS

● Assign the template per-entry

● SEO data can still be applied

Page 20: Building EE Sites with Structure

Use NSM Publish Hints to help the client understand the purpose of the page.

BUILDING EE SITES WITH STRUCTURE

LISTINGS

Page 21: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

CATEGORIES, ARCHIVES, TAGS, & AUTHORS

Zoo Triggers: http://devot-ee.com/add-ons/zoo-triggers

Install & add {triggers:entries} to your listing channel entries tag:

Page 22: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

CATEGORIES, ARCHIVES, TAGS, & AUTHORS

Use {triggers:entries_title} in place of {exp:channel:category_heading}

Output full category & archive navigation with{exp:zoo_triggers:categories} & {exp:zoo_triggers:archive}

Page 23: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

CATEGORIES, ARCHIVES, TAGS, & AUTHORS

Use triggers: segment variables in conditionals instead of native EE segment variables

http://domain.com/blog/category/maru

{segment_1} {triggers:segment_2} {triggers:segment_3}

Page 24: Building EE Sites with Structure

Flexible Sidebars Using Playa: http://www.train-ee.com/courseware/free-tutorials/comments/flexible-sidebars-using-playa/

BUILDING EE SITES WITH STRUCTURE

ASSETS

Page 25: Building EE Sites with Structure

Code Your Templates Exactly the Same as You Would Without Structure

Without Structure:

BUILDING EE SITES WITH STRUCTURE

TEMPLATING

With Structure:

Page 26: Building EE Sites with Structure

Display all sub-pages within a section:

{exp:structure:nav start_from='/{segment_1}'}

Dynamic Navigaton with {exp:structure:nav}

BUILDING EE SITES WITH STRUCTURE

TEMPLATING

Pages can be omitted from dynamic navigation by using the "hide from nav?" dropdown in the Structure tab.

Display all top-level pages:

{exp:structure:nav start_from='/' max_depth='1'}

Page 27: Building EE Sites with Structure

Breadcrumbs? We got yer breadcrumbs right here:

{exp:structure:breadcrumb}

BUILDING EE SITES WITH STRUCTURE

TEMPLATING

Page 28: Building EE Sites with Structure

StructureFrame Fieldtype

BUILDING EE SITES WITH STRUCTURE

TIPS & TRICKS

Standalone Fieldtype Supported in Most 3rd Party WYSIWYGs

Page 29: Building EE Sites with Structure

Prevent a duplicate/broken homepage by updating the Structure URL to "/"

BUILDING EE SITES WITH STRUCTURE

TIPS & TRICKS

Page 30: Building EE Sites with Structure

Use {structure:page:title} to output the current page's title without a channel entries loop.

BUILDING EE SITES WITH STRUCTURE

TIPS & TRICKS

Page 31: Building EE Sites with Structure

BUILDING EE SITES WITH STRUCTURE

THANK YOU!Links & Resources:

Structure on Devot:ee: http://devot-ee.com/add-ons/structure

Structure Docs: http://buildwithstructure.com/documentation

Structure Tags: http://buildwithstructure.com/tags

Zoo Triggers: http://devot-ee.com/add-ons/zoo-triggers

NSM Publish Hints: http://ee-garage.com/nsm-publish-hints

Flexible Sidebars Using Playa: http://www.train-ee.com/courseware/free-tutorials/comments/flexible-sidebars-using-playa/