I think the direction you take in this project will depend on what you want to achieve from it.
WordPress has a lot of faults, and I wouldn't recommend it.
- Security. WordPress installs are regularly made targets for attack.
- Plugins. Everything you want that is beyond a blog or simple page will probably need a plugin. The community is overflowing with plugins of varying quality.
- Themes. The layout/design and any custom functionality are generally tightly linked. Again, the community is overflowing with themes of varying quality. If you like the functionality provided by one theme but the design of another, it could prove very challenging bringing them together in a way that works nicely.
- Updates. You really need to keep on top of WordPress core updates to keep it secure. But you also need to be careful, because third party plugins and themes may rely on certain functionality in WordPress version X. When you upgrade to version Y all hell breaks loose. Upgrading plugins themselves can also cause issues, if its developer decided to add/change/remove functionality between versions.
One WordPress install we inherited at work broke catastrophically when WP was updated. One plugin wasn't compatible with the new WP version, and the latest plugin version was a complete rewrite, losing many features in the process, and leading to a large chunk of the theme files needing to be re-written. Another example where third parties has caused problems is another inherited WP site that had a "social links" plugin. All we wanted to do was to add a new icon and link to Google+, but the plugin didn't have an option for it, and no new version was available.
From my experience, WP can be a total nightmare to work with, and just isn't worth the hassle. Unless you're really not bothered about any of those issues and just want to get a site up and running, not really care about what's going on or learn about how things should work properly.
Drupal is much better in that it is more of a content platform than blogging, and comes with some nice features out of the box. Having said that, customising themes and custom markup/plugins can be a bit of a pain. I've also found it a bit slow and cumbersome to manage, and has its own little quirks that I personally don't like. Thankfully I haven't had to deal with that many Drupal sites, so can't say as much about it as WordPress!
Haven't had to use Joomla much either recently, but the last time I did it was just crazy. The admin area made little sense and again, plugins were of varying/questionable quality. And it just didn't seem to do things in a logical way.
When approaching a site, you have to look at the content. Where does it come from? Who is going to manage it? How is it going to be managed? What does your content look like or consist of?
Once you've thought about those in detail, you may decide that you don't need a CMS and that it can all be built with custom code. Or maybe you do need a CMS - but by knowing more about the content you can choose one that best suits your needs. A lot of CMSs make assumptions about your content though. For example, that your content is blog posts, and all blog posts have a title, date, and body. Or your posts are all articles that have a start date, end date, and a category and a body. But what if it doesn't? What if your blog posts or articles need images in 3 different sizes, be associated with a writer, and certain ones need to be "Featured" in a certain area of the site? Then you need to find a way to do that - and with a lot of CMSs, it can get a bit hacky or involve convoluted custom code.
One of the best CMSs I've come across lately is ProcessWire. Object-oriented code, clean modular approach, good API, and all of the content is custom. There are also freely-available rating and comment modules
There are so many variables to take into account when building a website, and ultimately - you will get out of it what you put in :)
Such detailed responses thank-you for your time on those! I'm thinking of setting up hosting and trying things out to see how I get on! I really don't think I'm clever enough to code properly so I might give Drupal a go. I'm also trying to outline what I want to achieve without giving the idea away so I have changed the idea to something else below.
Front page is just a search with a login at the top. (EG :P Holiday Reviews - Hotels, Resorts and Holiday Packages - TripAdvisor)
A search reveals the 'Product that other users have rated/reviewed' - Which you click and leads you to...
Product Page. Product Page contains main 'product information' and below this users content makes up page content. EG: Iberotel Makadi Saraya Resort (Makadi Bay, Egypt) - Resort Reviews - TripAdvisor
There are register and login pages / user management pages. Possible forum add-ins.
Anyone can search for a 'product' which is fitted into categories. EG: Samsung TV Model number xxx, Home Entertainment, Electronics
A user MUST register to review a product. I can set up some products myself to start the database off.
There must be a way to avoid products duplicating. EG: Samsung TV Model Number xxx is the same as samsung model number xxx.
Would all this be possible by using prefab coding / themes / plugins? or realistically would something quite complex need to be coded from scratch? I'm sure many previous posts have answered many questions but now i've given away more information on what the site is it might make some more sense!!
As a Ruby developer with a ton of experience with Ruby on Rails, I'd recommend it if you're looking to really make a go of this and learn some new stuff from scratch. Lots of very successful websites were built with Rails, such as Twitter, Shopify, etc ..
The advantage of learning an MVC web framework from scratch is that it'll give you way more flexibility than things like Wordpress, Drupal etc. Having said all that, if you're more comfortable with other technologies I'd recommend using those initially to get off the ground, and look at others in the future. All good sites go through several rewrites over time :).
@mikecampbell Mind if I PM you
I would just like to state, a lot of the Wordpress attacks that have happened RECENTLY haven't been SQL Injections etc but a fact that people use brute forcible techniques or people simply have dumb passwords like "Password!123".
Originally Posted by webman
webman is correct, Using other peoples code for plugins is a security risk. Updates can break plugins (Although I've not had this happen to date). Themes only really break when not designed well, but again you're relying on someone else or your own skill to write the designs.
Have used Joomla for quite a few websites and it has definitely matured into an easier to use CMS than it was previously. It might be worth a look when Joomla 3.5 is released (currently timetabled for Spring) as this is apparently going to add a lot more functionality for people viewing web sites from mobile devices and another simplification of the admin back end. Have managed to use quite a few free plugins with the core system for adding funcionality such as google maps, SEO, web forms, photo slideshows which have been pretty good. It can occasionally take a bit of searching through some plugins that don't have quite as good support before finding them though ...