Is Drupal the right CMS for our website?

eirikkn - June 29, 2009 - 09:22

We need a CMS system for our new webpage, but I don`t know which one to choose. We have been looking at Joomla, Drupal and Expresion Engine. We will have a company to make it for us so it doesn`t mather that it might be a bit complicated to set up. Righ now our favourite is Drupal 6

About the page:
It`s a webpage for models where you have to be a paying member to get access to all areas. The page will have 10.000 of high quality pictures, 100`s of high quality videos and have a blog feature, there will also be several flashes on the page.

Descritpion:
- Our team will be able to access the whole cms, but the models will only be able to access the blog.
- Security is really important
- The page must run quick and easy without a lot of bugs
- The page must be able to handle high traffic which can have more then a 100.000 hits a day and 1000`s of members.
- The CMS should have a good system in organizing the models, pictures, videos, blogs. I`t should also have a good search system
- We should be able to easily expand the cms with new features
- We should be able to easily update to the latest and stable CMS version
- The CMS should be flexible and easy to customize(if you are a programmer) to our needs
- The CMS must be transparent and be built so that it`s easy to have a good workflow.
- The CMS should have a good poll system
- The CMS should be easily upgraded to the next version
- We should be able to reuse all of our data and our design without starting from scratch if we want to change system or supplier
- Disaster recovery

What do you think?

Drupal is definately a good

marcvangend - June 29, 2009 - 11:19

Drupal is definately a good choice for your situation, it can meet all of your requirements. I know a little bit about Joomla and nothing about EE, so I can't really make a fair comparison. I do know that Joomla is considered to be less flexible than Drupal, but Drupal has a steeper learning curve because of this. Drupal is easy to customize once you have climbed that learning curve and there are many resources (books, documentation, forum) to help a programmer climb it. High traffic does not have to be a problem, but you will have to make sure that your hardware is up to the task (you don't want to serve 100.000 pages a day from a shared server).

Hi, Just thought I'd give you

samhassell - July 1, 2009 - 08:16

Hi,

Just thought I'd give you some advice with regards to your bullet points:

- Our team will be able to access the whole cms, but the models will only be able to access the blog.

This is trivial using drupals roles & permissions components.

- Security is really important

You should have someone subscribed to the Drupal Security Advisories mailing list or RSS feeds - more details at http://drupal.org/security-team.

Any less-prolific modules you use could probably benefit from a once over from one of your developers, the modules developer will probably be happy to have any problems pointed out.

- The page must run quick and easy without a lot of bugs

If you stick to stable releases of well supported modules you shouldn't have too many problems, but you should always be prepared pay someone to fix any problems that do come up if you can't fix them internally. That said, the drupal community can be very helpful.

- The page must be able to handle high traffic which can have more then a 100.000 hits a day and 1000`s of members.

Drupal has some performance enhancements built in (CSS compression, page & block level caching). You can also install a PHP optimizer like APC. If you are using views, make sure to push them down to a module once they are stabilised.

- The CMS should have a good system in organizing the models, pictures, videos, blogs. I`t should also have a good search system

The CCK module is your friend for organising the various data types you have. This will make it simple to insert new data / accounts as needed. The default Drupal search is okay, but you may want to look at Apache Solr if the default search isn't good enough for you: http://drupal.org/project/apachesolr.

- We should be able to easily expand the cms with new features

Drupal provides just this with its module & hooks system. I've never had a site that could not expand further.

- We should be able to easily update to the latest and stable CMS version

Drupal upgrades can be performed with minimal fuss, just always backup beforehand, and test the upgrade on a test server, not the live server. Beware that you should probably wait 6 - 12 months after a Drupal major release to upgrade it. This is to ensure that the contrib modules you are using have been upgraded.

- The CMS should be flexible and easy to customize(if you are a programmer) to our needs

The drupal learning curve is hard, but once you get it down it is very powerful and flexible. If you are using an inhouse developer, buyu him some books. 'Using Drupal' & 'Pro Drupal Development Volume 2' are great places to start.

- The CMS must be transparent and be built so that it`s easy to have a good workflow.

This can be done, depending on your requirement it sounds like a fair bit of theming work would be required to override the default drupal display.

- The CMS should have a good poll system

see here: http://drupal.org/project/advpoll

- The CMS should be easily upgraded to the next version

I think you mentioned this back up the page a bit?

- We should be able to reuse all of our data and our design without starting from scratch if we want to change system or supplier

Drupal relies on PHP and MySQL, which almost all hosts support. You might want to check the host supports PHP 5.2 or higher (5.3 just came out). There are a few high profile modules (such as calendar) that require features only found in 5.2+.
Other than that there shouldn't be too many problems.

- Disaster recovery

The backup and migrate module springs to mind for helping automate backups, though I feel Disaster Recovery should almost be software independant anyway.

Hope that helps,

Sam.

Sam, thanks for sharing your

marcvangend - July 1, 2009 - 08:52

Sam, thanks for sharing your insights.
I have one question: can you tell me what you mean by "pushing a view down to a module once it is stabilised"?

Hi, This is done using the

samhassell - July 1, 2009 - 23:46

Hi,

This is done using the views bulk export module. Basically you take all the view structural information and save it out to a php file (basically a module). This saves some database queries assembling the view information. Theres a good rundown on Steve Merrills blog: http://treehouseagency.com/blog/steven-merrill/2008/11/05/speed-and-vers....

And I quote:

1. It improves performance. Views implemented via hook_views_default_views() do not require a database query to instantiate. You will realize an even greater performance gain if you also use an opcode caching system such as APC or XCache.
2. Providing views in code will allow you to override the default view to make changes, and you can then choose to keep the changes in the database, update the module file to reflect the changes, or revert back to the version in your module file.
3. Because the view (and theoretically, changes to that view) are stored in files, you can put them in version control and see how the views used in your site change over time and revert to an earlier version without having to go to a database backup.

Regards,

Sam.

Thanks, that's an interesting

marcvangend - July 2, 2009 - 06:16

Thanks, that's an interesting method. I haven't done many high traffic sites yet, but I'm sure I will need this one day :-)

 
 

Drupal is a registered trademark of Dries Buytaert.