Single Page with Dynamic Content?

Permalink
Howdy all,

Very new to C5, but very pleased with it so far.

I'm working on an idea and was hoping someone could let me know if I'm thinking it through correctly for C5 implementation.

Basically, I want the user to select a Musician Name from a list on a page and have that link to a single page which will then populate dynamically based on the url parameters.

(Sorry, I'd show a link by I've only got it up on a localhost right now).

Something like this:

On the Band List Page, user clicks on "Rolling Stones"

This links tohttp://localhost/profile_page/?arg=rolling_stones...

On Profile Page, three blocks populate dynamically based on the arg passed:

Band Photo Block loads the picture associated with "Rolling Stones" in the database, Band Bio Block loads appropriate text and Band Video Block loads the appropriate video.

This seems to me to be easier than having one page per band (which would quickly get into the hundreds of pages).

Seems logical to me (and I think needs to be done with PHP, which I can probably figure out) but just wanted to know if this concept makes sense for a C5 setup, or if there is another way to achieve it using C5.

Any thoughts?

 
jordanlev replied on at Permalink Reply
jordanlev
This how-to goes through a similar implementation and contains a lot of useful code examples:
http://www.concrete5.org/documentation/how-tos/developers/build-a-s...

That being said, depending on how your users are going to be managing the data, it might be better to stick with the "one page per artist" model. This is kind of the way Concrete5 was intended to work, and a lot of supporting infrastructure revolves around this assumption. By making each artist page a separate page, you gain the following benefits out-of-the-box for free without having to do any additional coding:
* Site search
* Categorization (by moving each artist underneath a top-level "category" page)
* Index page (by using the Page List block, although you'll probably need to create a custom template for it)
* Default content that can be overridden on a per-page basis (via Page Defaults)
* Content versioning
* Ease-of-use -- you're maintaining one consistent way of managing content by having it be a page that users can add blocks to

But, I understand that depending on the kinds of data we're talking about and the number of them, it might be too burdensome to ask users to create new pages for every new artist. What I think you should do is look into the relatively new "Composer" feature, which basically provides a streamlined dashboard interface for adding pages like this -- it's the best of both worlds in this kind of situation. Unfortunately it's not very well documented yet so you'll need to experiment with it to get it working.

Best of luck.

-Jordan
FrozenFabulist replied on at Permalink Reply
Thanks a lot Jordan!
JohntheFish replied on at Permalink Reply
JohntheFish
Taking Jordan's comments in mind, I think eCommerce could easily be tweaked to do what you want. Remove the display of the selling part. Use the dashboard to add products (artists), add product attributes for further info about them, display them in categorised lists, generate a page each as they are added, use the eCommerce roll-over for a few pics of each, keep the content consistent from the dashboard.

Then, having generated all the individual product (artist) pages during data entry on the dashboard, you can then have the flexibility to add additional blocks to any individual product page for more text, picture galleries, or even sub-pages beneath any product page.
jordanlev replied on at Permalink Reply
jordanlev
John's recommendation of eCommerce could be a good fit for this, but one word of caution: it's very difficult to customize the styling of. It's certainly possible, and I've done itseveral times -- mostly with the "plain" custom template they provide -- but depending on your design requirements it might be more trouble than it's worth (or maybe not -- just something to consider).

-Jordan