Is concrete5 what I need?

Permalink
Hi everybody. I'm a PHP developer, the kind that (almost) always write everything from scratch, and I just discovered concrete5. I spent a few days playing with it.... so far I realized that it's quite a powerful application, but I'm still not sure if it would be the right choice for my next project. It seems to me that using blocks and themes one can do basically everything she needs. But still a couple of questions arose, such as, what happen if I need to build a block capable of of expanding itself across multiple pages? Can I do that? For example I need to build a page with a series of thumbnails (dynamically generated) where each open up a single differentiated slideshow. I'm pretty sure that would be possible somehow... but I'd like to know whether the way I'm taking is a good one for my goals or not.

Hope someone experienced could give me a hint.
Thanks a lot,
T.

tizianococcio
 
adajad replied on at Permalink Reply
adajad
Of course it is possible, especially if you have some php knowledge. The type of slideshows you are referring to can pretty easily be done by modifying one of several free gallery add-ons.

I have done something similar (although prompting the editing user to choose a linking thumbnail for the gallery) here: http://www.anderssonfoodandakvavit.com/gallery... using the free "Sortable Fancybox Gallery" by JordanLev ( http://www.concrete5.org/marketplace/addons/sortable-fancybox-galle... )

I'm sure you could figure out how to randomly grab one image from the chosen fileset to use as a thumbnail if needed.

When it comes to sitewide blocks Concrete5 uses something called "Global Areas" which you define in your template files. Everything you put in a global area will be shown on every page where said global area has been defined. You could also use "Stacks" for the same functionality, but then you actively need to add the stack where you want it to be displayed.

Here are some links for you to check out:
http://www.concrete5.org/documentation/how-tos/designers/making-a-t...
http://www.concrete5.org/documentation/how-tos/developers/concrete5... (watch the video and then jump down to the clipboard and stacks functionality)
http://www.concrete5.org/documentation/how-tos/developers/change-th...
http://www.concrete5.org/documentation/how-tos/...
http://www.concrete5.org/documentation/developers/...
Sadu replied on at Permalink Reply
Sadu
If your custom functionality needs to span multiple pages, then C5 can do this using a "single page". That sounds weird, but if you are implementing a gallery where each image has it's own page, then the Concrete5 single page would encompass the index page, and all the detail pages.

Generally with galleries though, most of the heavy lifting is done using javascript. Unless there are hundreds or thousands of images to browse through you can probably do what you need on one page using lightbox popups and javascript effects. In a custom C5 block, or using one of the existing blocks out there.

I have made a few of these myself - you find a JS library you like, then plug it into a C5 block so the user gets an admin interface. This usually works out a lot easier than with other CMSs.
tizianococcio replied on at Permalink Reply
tizianococcio
Thanks to all of you, @adajad and @Sadu! That was really helpful!! I'll check out those links. Would it also be possible to make the user edit the content from a sort of back-end interface? I'm just trying to understand the capabilities of the CMS here, what I need to achieve is something looking like this:http://www.uva.co.uk/category/work... and if that involves writing a new a add-on I'd be OK with that, but I just would like to avoid starting the job and finding myself at some stage having to give up and go for the old way...
Thanks again for the insights,
T.
adajad replied on at Permalink Reply
adajad
At a first glance I would create a pagelist with thumbnails (creating a custom template of or overriding the core Blog Index Thumbnail) for the first page you are linking to.

Consider a pagelist as a collection of internal links. The links (thumbnails) would take you to the page with the slideshow.

For the sake of user experience I would stick to the in-context-editing that makes c5 such a breeze to work with instead of making a dashboard page for the handling.

I suggest you set up a demo ( http://www.concrete5.org/about/trial/... ) and try out some of the functionality. Go into composer and add a few 'Blog' articles. Then check out the pagelist and apply different Custom Templates.

Edit: If you already have your own install then try it out there instead and you can fiddle with the custom templates at the same time (just read my link on overrides first).
Sadu replied on at Permalink Reply
Sadu
Totally agree. There are a few addons which send you off to a traditional admin screen for editing. Most of the time I find it confuses the user.

so if you can achieve what you need using blocks and pages, plus page_list blocks then that's generally a better way to go.
Cahueya replied on at Permalink Reply
Just follow the hint @adajad gave you and you should be able to set up a similar page in less that one hour, not including the styling etc., just functionality.

Landing page of what you showed is just a simple slideshow linking to different pages which, as adajad wrote, can be arranged with a modified "page list" block displaying thumbnails.

When I started learning C5 in the beginning, I just tried "copying" functions and sites I like to see how I can do it and how much time it takes with C5. Soon you will have some feeling of what it easily possible with your abilities and what may take long or help of someone else.

I am no way into PHP and until now, I've been able to realize everything i needed, also thanks to this great Community!

All the best!
tizianococcio replied on at Permalink Reply
tizianococcio
Thanks to all of you again! I'm seriously impressed because I don't easily find such an active community where so many people is ready to help somebody out. That said, I've spent the last few days fiddling around with everything all of you suggested, especially @adajad and found it quite useful. I think I'm slowly figuring out how concrete5 works. It's quite hard to me since I've worked for so many years using PHP, MySQL, JS, HTML and CSS in a very traditional way. So I think I need to get used to the mindset behind concrete5, even though I'm somehow familiar with MVC....

Anyway I'm posting again because there's something I don't get yet... I'll keep referring to the example website I used in the previous post (http://www.uva.co.uk/category/work), what if I want each thumbnail and therefore each picture in the linked slideshow to be contained in a database, so that the final editor of the website can have something like a form where she inserts/deletes/updates all those images, without actually in-line editing the page? I might still be thinking it 'the old way' because I just can't find how I should approach developing something like that in concrete5, whereas I would know my way pretty well in doing that with 'standard' php+mysql...

Hopefully some of you can give me again her precious advice.

Cheers!
T.
adajad replied on at Permalink Reply
adajad
I'm on the phone no, so there might be some funny spelling in here...
Anyways... In Concrete 5 you work with the built in file manager to handle files. When you add images to a gallery you (in the majority of the add-ons) specify which fileset to use in the gallery. To update the gallery all you need to do is to add or remove files from the fileset in the file manager (a file can be in as many filesets as you wish and you can think of filesets as tagging).

You reach the file manager from the dashboard and can therefor update all your galleries from one place. It's only when adding a new gallery that you need to create a page and add a gallery from the in-context editing.

I haven't had a look at the link today, but as far as I can remember I think it would take somewhere between 2 and 4 hours to have this up and runng once you get the hang of it. After that it will take the editor approximately 5 min to add a new page with a new gallery including the file upload (depending on internet speed of course).

Let me know if you want me to give you a ough roadmap to get you going. I'm not saying I'll do it for you all together (cause you are probably a better developer than me) but I will happily give you pointers that will ensure you to have a skeleton site in notime.
JohntheFish replied on at Permalink Reply
JohntheFish
An addon (by me) that makes updating a file set (and hence a gallery) as simple as possible:

https://www.concrete5.org/marketplace/addons/front-end-file-uploader...
tizianococcio replied on at Permalink Reply
tizianococcio
Well that's not really what I was asking for, but if you think you'd have time to give me a hand by giving me a rough skeleton to get me going it would be awesome! Make sure to ask me if you ever need an advice (now or in the future) about any programming issue.

Cheers,
T.
Cahueya replied on at Permalink Reply
Let's assume you call the thumb-images "1.jpg", "2.jpg" etc. and let's assume they all belong to the set "imagenav".

In filemanager, you can easily "replace" an image, this would just change the image that is called "1.jpg", or you could add another image to the set (5.jpg), for another item in your page list.
Cahueya replied on at Permalink Reply
Hey Tiziano,

I've just made this:
http://tiziano.cahueya.com/

Which is basically the functionality of what you showed us. Total creation time: 39 minutes, including concrete5 installation & setup.

I did not do anything about the styling, so this is the standard c5 theme & css, which can be altered with basic css knowledge.

The add-ons that are used here are:
http://www.concrete5.org/marketplace/addons/awkward-slider/...
for the image slider thing

and

http://www.concrete5.org/marketplace/addons/thumbview-template/...
for the page-list-with-images-thing

they are both free. (thank to the developers!)

By editing the custom template, you can also remove the "change view" button on the page list. The only thing I dont know about right now is how to include videos in the image slider, but that should be possible somehow.

I hope I havent missed anything you need :)

Want to fiddle around? I can send you login details if needed :)

Hope this helps you :)
tizianococcio replied on at Permalink Reply
tizianococcio
Hey Cahueya, that is just great! :)
Thanks a lot for taking time to do that!

Yeah, if you don't mind sending me login credentials it would be great having a look behind.

Cheers mate! :)
adajad replied on at Permalink Reply
adajad
Thumbs up for Cahueya, who in under an hour had this up and running with most of the functionality in there! You have your skeleton site right there, and all I will add is some pointers to get you going.
(This is just one way to look at this, and there are obviously different approaches)

Install MySQL, PHP, Apache and Concrete5 (with sample content) as outlined here:
http://www.concrete5.org/documentation/installation/installing_conc...
Installation of MySQL, PHP and Apache should be done according to their respective installation instructions. There are preconfigured LAMP and WAMP stacks to simplify this, byt I suggest you take your time to understand it all (but since you are no novice this shouldn't be a problem, stating this only for future reference). If you are not hosting it yourself, your host most likely has this all installed and configured for you.

Now you need to think of the look and feel of the site. That is pretty straight forward design and flow control in the site and could be done in basic html and css. Think about the layout of the different pages and try to find common areas in all of your pages. Once that is done you can break out your code (like header.php and footer.php which most likely will be the same on all pages) and be sitting with one or two (perhaps even more) main pages that will be your Page Types. Add the appropriate PHP-tags and save your work and you will have a complete Concrete5 theme. How you do this can be found in this how-to (which I have linked to before):
http://www.concrete5.org/documentation/how-tos/designers/making-a-t...

Upload your newly created theme (and don't forget to name your Areas and Global Areas in a manner so you can switch page types easily), install it and have a look at your site with sample content but with your theme. Sweet, right?! Looks awesome!!

If you haven't already I really encourage you to read about how easy it is to override functionality in Concrete5 and how to apply your own styling on blocks and add-ons using Custom templates:
http://www.concrete5.org/documentation/how-tos/developers/change-th...
http://www.concrete5.org/documentation/how-tos/designers/change-how...

Now you should browse the Marketplace for some nice add-ons to get you going. Cahueya has already pointed out 'Thumbview Template' (http://www.concrete5.org/marketplace/addons/thumbview-template/... ) which is a Custom Template for the Page List block, and I suggest you look at different image galleries as well ( like the excellent 'Sortable Fancybox Gallery'; http://www.concrete5.org/marketplace/addons/sortable-fancybox-galle... ). To really understand 'Thumbview Template' you need to grasp the concept of a Page List, which isn't that hard. A Page List is a list of pages with links to those pages, much like a type of navigation (but shouldn't be confused with the Auto-Nav block which is THE navigation block to use for new and old users). By creating Custom Templates to the Page List block you can pretty much set up anything - a gallery like asked for earlier in this thread, a news flow system, blog overview, TOC with excerpts and so on...

Once you have found good candidates you can create your own templates for them and have them behave as you want.

When everything is nice and dandy your next goal is to set up the appropriate permissions for your client, as you most likely don't want them to be able to update add-ons and the core (since it might break your templates). There are two types of permissions systems in Concrete5 - basic and advanced. The advanced permission system gives you greater control over everything, but for a small site with few people adding stuff (and without public profiles and member pages), the basic system will be enough. I suggest you browser the how-to section to find out more, and also to search the forums (which is always a good place to start finding answers for any question).

I suggest you also familiarize yourself with the 'File Manager' and 'Composer'. The 'File Manager' is the built in tool for handling uploaded files (of any kind). There is no folder system in concrete5, so don't look for folders and how to name them on the server, but use 'Filesets' in the 'File Manager' instead. 'Filesets' can be considered as a tagging system for files with a many-to-many relationship. A file can be part of many 'Filesets' and a 'Fileset' can hold many files. The composer is a nice part of Concrete5 where you can add content (in exactly the way you want) by using predifined options like where a page should be added and what it should contain. Have a look here for more information on the 'File Manager' (http://www.concrete5.org/documentation/using-concrete5/dashboard/fi... ) and 'Composer' (http://www.concrete5.org/documentation/using-concrete5/dashboard/co... ).

Now there are a lot of things to learn and I can't teach you everything (as I'm still learning and always will be) but I think the above will get you going on the right track and help you find out just how easy it is to work with Concrete5. A part from the above I think you should read up on 'Stacks', 'Clipboard' and 'Global Areas' when you feel confident. The How-To section, Developers guide, Editors guide and (of course) the Forums holds tons of information. Check under Documentation (top right on concrete5.org) for the links.

If anyone has something to add to the above, then please do!

Good luck, and happy concreterizing! (<-is that even a word??)
JohntheFish replied on at Permalink Reply
JohntheFish
You should submit that as a howto, generalized where necessary or turn the specifics into examples.
adajad replied on at Permalink Reply
adajad
I might actually do that, if I can find a few hours.
tizianococcio replied on at Permalink Reply
tizianococcio
That is just so comprehensive as an answer adajad! Thanks! First thing I did was actually setting up concrete5 on my local webserver :)
As far as all the links you suggested to read, I'm already through almost all of that. I did notice that everything is well documented on the site and elsewhere. Also the forum here was of great help for all the detailed explanations you all gave me.

Tiziano.
Cahueya replied on at Permalink Reply
Great contribution adajad, thank you :-)

I just set up composer for tiziano and I stumbled upon a bug which I've never seen before (v5.5.2.1).

I added the "add file/image" attribute to composer, so Tiziano could easily set up a new page beneath /work , including all the necessary stuff (slider, expandable content, autonav).

But when it opens up FileManager to actually choose a file, it seems as if JavaScript does not work properly, as the "choose"-lightbox does not come up.

Has anybody experienced this bug before?
Cahueya replied on at Permalink Reply
I just added one more function as I was checking:

http://www.concrete5.org/marketplace/addons/expand-collapse/...

To have expandable content as in the description of each image.

Thank again here to the developer for this great, free add-on!


And one again - the view of this block can be changed easily with a custom template and some css knowledge :-) Total time now: 53 minutes.
Cahueya replied on at Permalink Reply
And if I am not totally wrong, It might take another 1-2hrs to apply the styling to the whole thing. Maybe faster if done by someone smarter than me :)
helmut replied on at Permalink Reply
helmut
You may want to have a look at my site at:http://www.tokaiki.net/

I started a projekt about the Marine Life in the Mediterranean Sea with my own underwater images.

The site uses two custom pages: species_taxon and species_detail. While in dashboard I create the taxon-hierarchy and assign one thumbnail to every species_detail page. This thumbnail is later on used along with the title tags of the species_taxon pages to auto generate the navigation throughout the site and the nav for related species on all species_detail pages.

For the main landing page and on every species_detail page (i.e the species I have images of) I integrated the carousel from the twitter bootstrap project for in place editing. The concept is not limited to the maximum of four images per species to present at once as I did.

--
Helmut Carl Simak