How to have List items without each existing as a published "page."

Topics: Customizing Orchard
Apr 18, 2013 at 1:14 AM
Edited Apr 18, 2013 at 1:15 AM
The short:
I would like to list custom content types without each list item existing as a published "page."
I have a list with Summary container, holding list items which are really just content pod templates in the UI and not intended to be their own page.

The page UI:
   |  image left : copy right (content pod)
   |   --------------------
   |  copy left : image right (content pod)
   |   --------------------
   |  image left : copy right (content pod)

I'm not married to my current implementation. I set it up this way a year ago when first diving into orchard and am open to other/better implementation methods as well.


The Looong:
-- EXAMPLE - Job Postings --
To make it SUPER simple for HR to edit and add more job posts to the Careers container page, I made the job posts a custom content type. This way the editor screen only has an image field and the text field HTML flavor.

Container Page:
~/job-board/

List Items:
~/job-board/db-admin
~/job-board/marketing-analyst
~/job-board/you-get-the-picture


Considerations:
  • (most important) Able to add more items (content pods) to the page.
  • Must be built so business units can edit or add content without assistance.
  • Keep the editor template clean and simple.
  • Easy to change the order based on weight value.
  • I maintain full control over the styling of the UI.
Problem: Search engines are indexing those pages. We get hit with duplicate content, along with the search result takes the user to the list item and not the container as is desired.

I can continue to update the robots file to disallow and I can remove them from the sitemap, but the company and the site is growing at an alarming rate and this type of constant maintenance will slowly rot my spirit, er, I mean is unsustainable.

I'm stuck now with taxonomies, projections, placement.info, alternates, query, IContentManager... all rolling around in my head and cannot seem to get started down my desired path.

Thanks
Apr 18, 2013 at 1:39 AM
It may just me being really tired and not seeing eye-to-eye with you but, projections seem like the way forward.
  1. Create a content type called Job
  2. Add your fields/parts to Job - including autoroute
  3. Create a query that returns Jobs and orders them by some weight integer (not exactly sure how you want this done, may have to write your own ordering function)
  4. Projection displays them with url ~/job-board
  5. Use autoroute to format urls so they are like Jobs/job-name
  6. Get robots to ignore Jobs/*
Or am I completely missing the mark here?
Apr 18, 2013 at 3:41 PM
Hi Hazza,
Your suggestion is the same as what I have in place now, but exchanging List w/Summary for Projections. It still leaves me with the Job content type rendering on the front end of the site as a stand alone page. I'm going to test it first, but pretty sure. Thank you for your feedback.

It wasn't long after I posted this the answer came to me. I think I need to leverage widgets.
  • exchange layers for pages - to keep the different sections of the site separate for only their owner to edit, HR : Careers Page, Business : Leadership Page, etc.
  • create a Job widget - this will allow them to add new ones as needed, keep the editor screen simple, and it will not render each job post as a stand-alone page on the front end.
I knew it was staring me in the face, but had too much going on in my head to think clearly.
If I'm wrong or anyone wants to throw out some ideas or suggestions I'm still listening ;)