Hi,
I’m just researching expression engine to see if its the right cms for me. What I need to be able to do is build a projects portfolio which is menu driven by categories (and possibly sub categories) and projects within each category or sub category. Each project will contain some text and a slide show of project images. I would like to use Cycle2 js/jquery slideshow for this. It is important that the menu system is highly configurable for the projects and that image uploads are done to specific projects rather than just uploaded to a mass storage area and then have to be found and attached to a specific project.
There will be other pages from menus some with videos, either mp4 from site or possibly from youtube etc.
So my question is, does this sound like EE will do all this relatively simply. I can code PHP, CSS, HTML as required but my main concern is the management of projects menu with Cycle2 js.
I have downloaded the free version to take a look but without getting into quite deaply I’m not sure if EE is the right tool.
I would also like it to handle sizing of images before they get uploaded or rather prevent upload to projects gallery if image is not sized correctly.
Also, would it be possible to easily move a project from one category to another by simply changing its owning category in the cms or would I need to code this functionality? Same for moving an image from one project to another?
Thanks for any feedback on this.
Hi-
Still new to the EE ecosystem, but here’s my take on your questions…
Image upload: resizing is painless; rejecting an upload based on incorrect sizing will require custom coding or a plugin (unless I missed something).
Moving categories: cake; categories are just checkboxes on content tabs.
Driving content from the menu system: EE does really well on delivering content based on URI structure, so this should pretty much fall into place.
Projects with related slideshows: can be done easily or not-so-easily. The easy method is to use the Grid fieldtype to add a 0 or more image slideshow to the project channel. Then just let the user upload the images for that project slideshow. More difficult: create a separate slideshows channel and use EE relationships to relate slideshows to projects.
Other content like videos or files: just make channels for this content.
Overall, unless you have some edge cases or some tricky requirements you didn’t mention, I think EE would be fine for this project.
EDIT: NO Idea why it posted my reply twice :/
Hi-
Still new to the EE ecosystem, but here’s my take on your questions…
Image upload: resizing is painless; rejecting an upload based on incorrect sizing will require custom coding or a plugin (unless I missed something).
Moving categories: cake; categories are just checkboxes on content tabs.
Driving content from the menu system: EE does really well on delivering content based on URI structure, so this should pretty much fall into place.
Projects with related slideshows: can be done easily or not-so-easily. The easy method is to use the Grid fieldtype to add a 0 or more image slideshow to the project channel. Then just let the user upload the images for that project slideshow. More difficult: create a separate slideshows channel and use EE relationships to relate slideshows to projects.
Other content like videos or files: just make channels for this content.
Overall, unless you have some edge cases or some tricky requirements you didn’t mention, I think EE would be fine for this project.
I just implemented multiple slideshows with slippry [1] on an EE-backed site.
I used the Grid custom field to set up 0 to many rows of slideshow images (and an optional caption for each) on the Projects channel.
I used a slideshows File Upload Preference for resizing the images to the desired size and separating out slideshow images from other types of content images.
Here is a simplified version of the channel entries tag which writes out the project content. This is for the project detail template.
{exp:channel:entries channel="projects" limit="1" disable="categories|member_data|pagination" require_entry="yes"}
<div class="project-detail">
{if project_images:total_rows > 0}
<div class="project-images">
<ul id="slideshow" class="slideshow-project">
{project_images}
{project_images:project_image}
<li><a href="#slide{project_images:count}">{url}</a></li>
{/project_images:project_image}
{/project_images}
</ul>
</div>
{/if}
<div class="project-title"><h3>{project_title}</h3></div>
<div class="project-description">{project_description}</div>
</div>
{/exp:channel:entries}
It results in the following output (only the slideshow section shown).
<div class="project-images">
<ul id="slideshow" class="slideshow-project">
<li>
<a href="#slide1">_ <img src="http://mysite.com/images/uploads/slideshows/image_01.jpg" alt="" />_ </a>
</li>
<li>
<a href="#slide2">_ <img src="http://mysite.com/images/uploads/slideshows/image_02.jpg" alt="" />_ </a>
</li>
</ul>
</div>
Then I just include and initialize the slippry.js code.And magic!!
This is very similar to what you would do to output the list required by Cycle.js.
Good luck!
[1] http://slippry.com/
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.