Page Lime Logo

PageLime CMS

home

Read About Stuff We Do. Pagelime Blog.

Content Management for Designers and Agencies.

Work in Progress Concept: Managing Navigation with PageLime

pagelime-concept-process-flowchart-fun-wireframe

So PageLime works great when you need to make changes to content, images, or links on your site. But what if you want to add a new link to your primary navigation? In this post we’re going to outline some thoughts about the approaches we’re thinking about for solving this problem.

There is currently no simple (native) interface in PageLime to manage navigation. Instead, you can put the navigation into an include file, put some cms-editable and cms-repeat classes on the navigation elements, and let your clients manage it this way. So, essentially you’re creating editable regions that are shared across multiple pages, and allowing your clients to duplicate and sort them (sort of like a top nav right?). This is what we’ve been recommending for the past couple of months (since repeatable regions became available).

However, we are thinking of ways to add native and transparent support for managing site navigation with PageLime, but still keep it simple and de-coupled. I’m going to outline two efforts we’re working on:

1. Navigation Editor

Pre-requisite knowledge: page includes (PHP, SSI, CFTemplate etc.)

So, let’s say that you’re the administrator for an account and you’re adding a site for a client that wants to continuously change their primary navigation based on new pages they create. Now, when you’re setting up a site, you get a tab called “navigation configuration”. This tab would look something like this:

Navigation Site Settings Wireframe

Navigation Site Settings Wireframe

In the mockup above you see two fields: Navigation File and Navigation Template. The first specifies which file (an include) on your server contains your top navigation. This is the file that’s usually included in every page so that you have a consistent header / navigation experience, and so you can update things in only one place. The Navigation Template is the code that will be published into this file. Notice the bolded text in the mockup - you can see that there are some tokens you can insert and replace, so that PageLime knows where to render your navigation items.

OK. With the setup out of the way, the way you would actually manage your navigation would be on a screen loaded off the site dashboard. The screen would look something like this:

PageLime Navigation Editor Wireframe

PageLime Navigation Editor Wireframe

Here, you can do a few things: you can drag and drop files from your sitemap into the navigation tree, and you can re-order/edit the links in the navigation tree by selecting them and changing their properties in the box on the top. Once you’re done with your navigation edits, you would hit “Publish” and your navigation would be rendered into the Template provided on the settings page, and published out to the file you specified in the Navigation File on the settings screen.

We feel that this is a bit complicated, so we’re still working on ways to simplify this workflow, and find other places where pages can be marked to be included in the nav (possibly from the page editor screen itself, and possible from the sitemap).

As is the case with most PageLime features, the navigation management feature could be turned on/off on a per site basis.

That’s about it for the first approach.

2. FTP XML Publishing

Pre-requisite Knowledge: XML, PHP (or other) scripting.

There is an experimental feature inside PageLime that allows you to publish your page content as XML instead of merged into your page content. This allows you to completely decouple your content from your pages by using a scripting language, such as PHP to pull up the content from the XML into your page.

Along with the page content, PageLime also publishes a page registry XML that you can write a script to render your navigation. Think of the whole set of XML files as a mini-database you can script against.

We’re still working out the details of the XML format and a PHP API that allows you to easily pull up page content and navigation data.

We realize that this whole concept goes a bit against the “simplicity” part of PageLime, but it should work completely transparently with the way you use PageLime right now. So, in addition to publishing your page content, PageLime could automatically also publish the XML file, so that you can create additional widgets and dynamic content.

That’s all for now. Hope that this has been informative in terms of the kind of features we’re thinking about, and how we’re trying to add features without impacting the super simple workflow for both designers and content editors.

Please leave comments below or add them to the forum, and we’ll make sure we incorporate your thoughts into the final design.

18 Responses to “Work in Progress Concept: Managing Navigation with PageLime”

  1. t says:

    With both of these techniques, it will still be hard to define the markup for the “selected” link (ie, the current page). I think that’s more important than hierarchical navigation, which you really can live without in the type of small websites that Pagelime handles best.

    I would like to see something like this:

    cms-navigation-name
    cms-navigation-name

    Pagelime looks for any element with the class cms-navigation and then looks for children with classes cms-navigation-item and cms-navigation-selected (I guess abbreviations may be desirable). It then replaces any instance of the strings cms-navigation-url and cms-navigation-name with the correct url and page title, and repeats them as needed. Anything else that is inside of the list items (or whatever other element the designer chooses to use) will be repeated as it is.

    This allows for very flexible markup while still keeping the super-simple Pagelime syntax. It leaves the problem of what to do with any extraneous markup inside of the cms-navigation element. I guess it could either be handled “intelligently” (for instance, keep anything that is before the first child and after the last, and repeat anything that is inbetween them) or simply removed and ignored altogether.

    I think this could be adapted to allow for hierarchical navigation as well.

  2. Rick says:

    “1. Navigation Editor” -Love it! So, can I have now?! This for me, is #1. Can’t wait.

    Thank you PageLime guys.

    ~rick

  3. Emil says:

    Ha ha! Thanks Rick. We’re fast with rolling out updates, but not that fast :). Once we have a prototype up and polished I can shoot you a note, and add you to the BETA group for this feature.

    We’re still working out how to make this process better.

  4. Emil says:

    Hey Bruce,

    I would prefer a CSS markup based way of doing this, but it seems like it might get a bit tricky. Let me meditate on it a bit and see if I can work out a method for this as well.

    As for the “selected item” issue, I’m afraid that with PageLime, with either of these methods, this would have to be accomplished via JS. I understand that your proposal is to render the navigation into each file, but this would be rather inefficient, and our proposal is to have one include file that navigation gets rendered into, and then that include file is shared across the pages on the site.

    The challenge with the “publish into each page” approach is scalability - some folks have sites with dozens, (and a few with hundreds) of pages. The publish effect would not be instant, and for user experience reasons we’re trying to stay away from asynchronous publishing.

    Let me think about this a bit more.

  5. t says:

    I guess scalability isn’t my forte (nor is anything server-side, which of course is part of the reason I’m interested in Pagelime). Managing a 100-page site with Pagelime seems insane, and definitely calls for more managable navigation.

    Maybe I should just stop pretending I know anything about these things, but would it be possible to store the rendered pages in a temp folder and then move them to the right place on the server when they’re all finished?

    From a user perspective this certainly seems more in line with the “design any way you want, then easily hook the cms up with the site” mantra that seems to be the idea behind Pagelime and its kin.

  6. Daniel Nice says:

    I like the nav idea in general and I think option 1 starts to get there for sure. I am looking forward to what you guys come up with. I don’t know if it helps or not but the way that Wordpress works with adding pages and automatically adding the nav for it seems to work well. Granted it is a different platform and much more standard sop i don’t know if it apply s but the functionality seems to work well.

    I love what you have done with you CMS and I look forward to the future improvements as well.

  7. Rick says:

    Hey Emil, add me to the Beta list!

    Thanks
    Rick

  8. Emil says:

    Thanks Daniel. The difference between WP and PageLime is that we’re not a database driven CMS, and that’s what makes us so simple. With WP there’s a fair amount of scripting, database setup, etc. Option #2 from the post would work perfect for what you’re describing, as we’d publish the XML to your site, and you could use a script snippet to power your navigation.

    I think we may end up going with both options as alternatives, as #1 gives you full control over the navigation and #2 is fully automated.

  9. Terry says:

    I’m a brand-new PageLime user, and I think this service is gonna work great for my current client; who at this point has only a modest need for CMS functionality, instead of everything needing to be on a full-blown CMS platform.

    But I came to your website this evening specifically looking to find out about the “navigation” functionality you’re discussing here. Until you guys finalize the solutions you’re proposing, I will be trying to learn as much as possible about your recommended method of using PHP includes. I’m very glad I ran across this post!

    Also, please include me on your beta list! Thanks…

    Terry

  10. Jason says:

    So great to know you guys are looking seriously at extending the platform in this direction - it’s the one thing I have to explain to my clients: the difference between WP and PL being that WP has a steeper learning curve & needs more maintenance, but allows greater structural growth, whereas PL is a snap to implement and learn, but they’ll need to call me to add pages.

    Add me to the beta list too, please!

    Jason

  11. RT says:

    I’d like to be in the “Beta” loop too! Thanks and looking to trying out pagelime.

  12. Rich says:

    would love to see a beta of this as well. Something that I think will propel you all to a new status with designers out there.

  13. Ryan says:

    New to Pagelime —> but i specifically came here because Adobe ICE is now on my last nerve with their discontinuation & dis-service to developers / designer everywhere. However, with that said, i was hoping you’d have a solution for the navigation issue already in place. Is there any progress with this concept? I use the PHP include method currently.

    Thanks - can’t wait to try pagelime with some of these new sites we’re building.

    Ryan.

  14. Emil says:

    Hi Ryan,

    Thanks for joining the team! We’ve had lots of ICE refugees lately, and we’re glad to help out. The navigation editor mentioned earlier in this post is already in development, and should be ready for BETA soon. I’ll add you to the list and let you know when we release it into the labs.

    Best,
    Emil

  15. Ryan says:

    Great news!

    Thanks,
    Ryan.

  16. Josh says:

    Wow, can you guys get any better. I absolutely love PageLime :)

  17. Hey could I quote some of the information from this post if I link back to you?

  18. Rob says:

    This is exactly what I have been looking for,

    I am really keen on Pagelime as a solution to my CMS needs, but require a little more dynamic functionality such as includes and nav. As a couple of people have pointed out, the ’selected’ state of the nav needs attention but if this has to be handled by Javascript to keep things simple that’s cool with me.

    I’m also interested in finding out more about your api as I am going to need to create shopping functionality for clients and need a simple user interface for this.

    You guys seem to be doing a great job, keep up the good work!

Leave a Reply

LeftField Inc. 2009. All rights reserved.
PageLime is managed by a dedicated team of former freelancers, developers, and interactive agency types. We've been in your shoes, and that's why we built PageLime. Contact Us with any questions.

Latest From the Forum

more

Latest Suggestions

more

Register for PageLime

Log-in using an existing account at one with these sites:

OR

Register a new account with PageLime: