Wordpress - pushing the limits?

[B]Im looking for the perfect platform for a website that im dreaming in my head. A friend suggested wordpress but curious what all your thoughts might be.Im wanting to start a local community sports website. The needs list below:

  1. Need to be able to have multiple authors of content, with limited capability or permissions.
  2. Need a forum integrated into wordpress
  3. The entire site needs to be able to integrate with facebook - to stop people from having to resign up for new accounts etc.
  4. Mobile users need to be able to view the site on smartphones and tablets
  5. Premium Theme based
  6. Are there any plugins that will let users sign for advertising, pay and immediately see the results of their work live ? Like google search engine does ?

Thanks and so curious your replies ! [/B]

So, I use Wordpress… a lot.

  1. The multiple authors is pretty easy. The permissions are pretty generic. However, there are plugins which give you finer grain control. I built my own for use here, but there are many others available. It’s possible to restrict very specific actions.
  2. bbPress and SimpleForum are pretty decent options. bbPress is by the same guys that make Wordpress, so it’ll only get better.
  3. There are several existing plugins to do different kinds of authentication. Even if there aren’t, it’s relatively easy to build your own.
  4. This all comes down to your theme. There are many mobile friendly themes already. If developing your own theme, everything that applies to normal mobile websites applies to WP sites just the same.
  5. Not sure what you mean by this, but sure. =p
  6. Not sure, maybe. You could probably hire someone to build that pretty easily as well.

Some people don’t like Wordpress, but I’m a big fan of it. If you know what you are doing, you can make it into a pretty high performance site. The only real downside is there are a lot of global variables. However, as long as what you build doesn’t have global values, you have a virtually 0% chance of conflicts.

I wonder how bbpress is effected in a mobile smartphone…

Samanime, have you used ‘wordbrooker’ plugin for facebook ?

I have not.

I personally avoid many premade plugins because I like very targeted functionality in them (to keep my sites light weight), so I write most of the plugins that power my sites. =p

As for bbPress on smartphones: bbPress is pretty themeable, just like Wordpress, so it comes down to the theme you are using.

I wouldn’t get too set on that notion, because the perfect platform doesn’t exist. There are definitely those that will ultimately “suck less” than others.

It sounds to me like you’d really be seriously pushing the limits of Wordpress. And if not now, then very quickly.

For the very short-term, you might be able to put something together fairly rudimentary that can do most of the things you want it to do, using Wordpress. But at some point, this thing is just going to go out of control and you’re going to be buried past your head in wordpress hell.

This sounds like it is going to be more of an application than just a standard website. In which case, I would seriously be looking at a CMS that’s built on top of a web development framework – something like Expressionweb or Silverstripe. Or just going full-on framework and use CakePHP (or similar).

A lot of people dismiss Wordpress, but if you know what you are doing it’s quite capable for fairly high-traffic websites. It has a lot of benefits.

Though I do agree “perfect” doesn’t exist. Everything will need a bit of nudging to get to work just how you want.

I don’t think people dismiss Wordpress at all. It’s an extremely capable platform.

It’s just that, once your site reaches a certain plateu in terms of complexity … have fun managing it. :smiley: And I mean have fun as in … have fun sticking all of your custom functions in that functions.php file. :smiley: Have fun implementing namespaces and auto-loading when dealing with 3rd party libraries. Have fun having all your page regions and includes all crammed together in the same folder. Have fun hacking away at “THE_LOPP” and “THE_POST” or creating all those custom template files when your output starts having the need to be insanely customized.

Just have fun – that’s all I’m saying!

I’ve built some pretty complex sites in Wordpress and never had any issues with most of that. I always namespace my own code, so I never have to worry about naming conflicts. There is no reason you have to cram all of your functions into functions.php either, it can be nicely organized.

If used properly with custom WP_Queries, the loop is very beneficial.

It’s all in how you use it. Aside from everything being in the global scope, there is nothing that explicitly limits you from using Wordpress properly and still adhering to high coding standards for your own work. =)

Beneficial, sure. Fun? As much as a barrel of monkeys, I’ll bet.

Wordpress works fine for a Blog / CMS. And there is no limit to what you can do with any CMS, really – it’s all just PHP when all is said and done, so I have no doubt people are building some crazy stuff with it. But in terms of writing DRY, scalable, modular, extensible code that neatly separates your presentation logic from your business logic … for the purposes of building a true “web application,” I wouldn’t touch that nasty excuse for a framework with a 10-foot pole. :smiley:

And I love a good challenge. I think it’s great, though, when people take things and push them past their limits. More power to you if that’s your thing.

While I agree there are other CMSes (I am actually abandoning Wordpress for a true framework for a new major project), I still feel the need to defend Wordpress, probably because it gets such a bad rap by those that have never used it to it’s full extend. =p

Wordpress in and of itself is perfectly scaleable. We have it clustered across a couple boxes with no issues.

We write themes and plugins, which are about as modular as you can get. =p

We generally write a main “theme” and plugin in a pair. The theme then acts as the view layer while the plugin handles the models and controllers (with WP core handling the routing rather nicely).

We also have a handful of custom built plugins we use on various installs which perform certain generic tasks… as DRY as you can get. =p

Is it a perfect framework: no way. Is it very usable for a large number of applications: yes.

You can think of everything in terms of “posts” (essentially Wordpress’ implementation of a post functions just as a node with some extra content attached). We actually have a custom time card system we built on Wordpress which treats each time entry as a post. Do to that, we didn’t have to write much admin-side components because of how Wordpress naturally handles them. Works beautifully.

There are a lot of perks to using something that’s already so built up (like Wordpress) vs. a true framework (which generally requires some finessing).

When I think about this stuff … I use a baseline of how long it would take me to develop “X” using “Y.”

For example … How long would it take for me to build facebook with, say, Wordpress versus Drupal? Or any of these versus CakePHP or Ruby on Rails (?)

And I keep coming back to the fact that … I could just install organic groups and work out a bunch of node and entity relationships and have something spec’d out on Drupal in no time. Then I take that step further, and figure I could whip out the command-line and use CakePHP’s bake functionality … and in a matter of, maybe a 1/2 hour, I could have Cake build me out the data model for all of the various entities … i.e. the Member model has many posts or status updates, has-and-belongs-to-many friends. Has one wall which has many posts that belong to many members, and you could just go on and on with this stuff. Just banging it out on the command line like a carpenter swinging a giant hammer.

… Do I want an administrative interface? Hit “Y” for yes, hit return. … And just have all of these models, views and controllers auto-generated for you with crud, along with the underlying data model. Bang-bang, go to your application, and there it is. Really crude and ugly, but everything there. That’s hard-core stuff. When you get to the level where you’re mastering Rails or Cake … you don’t even have to hardly do anything. Forget the whole "Save … go to browser, hit refresh, go back to code, change it, save, hit refresh again … " Set up cucumber with Rails, and you can sit there and watch your browser go through just about every testing scenario you could dream up … like some ghost is living inside of it, or it’s controlled by your mind.

You get to that level, and Wordpress is kiddie land. But if you’re just building a regular website … who even needs that stuff, anyway. Wordpress is an amazing piece of work, and I’ll never sell it short. But until you get a chance to see the other side … you just don’t know, what you don’t know.

With Wordpress, you could simply knock that out by using the post type as “Status” and have each user be able to create their own thing. Prototype in a half hour as well. =p

I am not arguing that others are better, but I think it also boils down to what you know. It would take me a good chunk of time to built it in some of those you mention because I don’t use them often.

Getting back to the original topic, since we don’t have much to go on, we can’t be sure if WP is sufficient or if he should explore other options.

Does Wordpress have any extensions that allow you to define one-to-one and “has-and-belongs-to-many” relationships? Can you define custom primary and foreign keys easily? Does it have anything like Active Record where I can go up and down the relationship tree without doing complex table joins (inner, outer, etc.)? Does it have aspect oriented programming features that will automate testing and allow me to script scenarios?

Just curious. I actually wouldn’t doubt it if did, considering how many people develop with it.

The post and taxonomy types are natural one-to-one (post to post-parent) and many-to-many (posts_has_terms).

It doesn’t have anything special for creating new database tables (though I find that if you want to make a new table, 9 times out of 10 there is a cleaner way to build it that doesn’t need one).

It has functions which abstract post type transversal (get_children and get_parent functions).

Automated testing is one thing it doesn’t have (yet… I was at WordCamp a few months ago and the creators were there talking with people about how they could bring automated testing to WP).

RE Sam & CMS’ debate:
Once you realize that all WP is a bunch of premade PHP functions and database calls, it is simple to break down. IMO if you are doing “super advanced sites” and building it in WordPress, you either realise this, your site isn’t actually that super advanced, or are simply being lazy because you don’t want to build the admin or actual CMS part. And aside from the fancy stuff, all a cms is is a form able to shove data into a database… Not rocket science. The only annoying part of WP is to find the functions you need to do what you need to, I think the WP database is too slapped together to be able to yank from it without spending quite some time getting the structure down.

OP

  1. Need to be able to have multiple authors of content, with limited capability or permissions.
  2. Need a forum integrated into wordpress
  3. The entire site needs to be able to integrate with facebook - to stop people from having to resign up for new accounts etc.
  4. Mobile users need to be able to view the site on smartphones and tablets
  5. Premium Theme based
  6. Are there any plugins that will let users sign for advertising, pay and immediately see the results of their work live ? Like google search engine does ?

1- yep, there is 5 by default, if you are comfortable with php you can hack them up. There are probably plugins too
2- Sam covered this, but I would probably opt for a dedicated forum tool, like vbulletin, but this dependss on needs
3- There areplug ins to do this
4- Sam covered this, but all depends on the theme you pick.
5- If you know PHP, HTML, and CSS why would you ever need to pay for a “premium theme”? They don’t unlock anything magical. If you know those three, and perhaps JavaScript you can make anything.
6- This isn’t my area of specialty, but I would check to see if your main ad system disallow any other type of ads on a site. If you don’t care about that, I would make a form for people to submit ads, and e-mail it to you, Then you can decide weither to accept/reject them and put up an example on your own. While you could code this into wp, it may get ugly fast, so I wouldn’t allow the live preview.