Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I am building a website and need to use a CMS.
If I use an already made CMS, I need to be able to extend it easily.
Is there a specific CMS that you recommend or should I make my own?
OpenSourceCMS is an excellent place to start. They offer demos, user rankings, etc. of many different CMS systems.
You can also find relevant questions here on stackoverflow by searching for "php cms".
Personally, I like Drupal, MODx and Concrete5. Drupal and MODx because of their extensibility, Concrete5 because of its simplicity.
I have found SilverStripe to be quite useful, used it on an intranet project - built in authorization, nice content editing built in, easy templating language, workflow, content versioning. I also like that they have good documentation and Help. The Demo is also impressive.
http://drupal.org/ comes highly recommended.
good community and plugins/addons.
Josh
If you are looking for simplicity try Concrete5 or MODx. They are both easy to install and work with.
Had the opportunity to use Joomla, there are many plugins/templates/tutorials and a few books out there. If you are good in php you will find it very easy to create your own plugins or extend existing functionality. However big drawbacks are the many exploits and some limitations (only mysql as a database, versioning of articles, detailed permissions, multilingual support) that hopefully will all be fixed with Joomla 1.6.
The beauty of most good packages is it won't hurt you too much to get dirty with a few of the well managed and easily installed packages to see what's best for you.
I have stumbled through Drupal and ended up on Joomla. I found Drupal to be highly powerful and technical. Joomla is the same, but seems to do straight-forward stuff a bit easier. Both work quite well.
If your application is very simple, Concrete5 is definitely worth looking at. I go with Joomla for most projects right now and am keeping a close eye on Concrete5...
Let us know what you went with and why!
I really like SilverStripe's admin and extendability.
Right now, I'm running http://gallery1401.com/ on SilverStripe.
It has nice image upload, and custom fields, and rails-like associations and data management.
Runs on a typical php/mysql stack, with strictly object-oriented architecture.
I'm surprised no one mentioned ExpressionEngine. It is not free (that's probably why) but it's PHP, has a thriving community, a lot of plugins (good ones not free, but a php programmer could consider this a possible revenue source). It's built on a PHP framework - Code Ignitor.
I'm playing with Concrete5 right now - I really love the in page editing. It's MVC based, extensible. Simpler (so far) than EE, EE is easy to use and template, simpler than Drupal. Drupal is amazingly powerful, but as others have noted there is a steep learning curve. Even if you're a php whiz you have to learn "the Drupal way" to template, to code, everything, it's really quite involved. That said, Drupal can really do anything and powers some very robust and high profile sites and has a huge community.
UDPATE: MODX Revolution (v2) is no longer "brand spankin' new. Use v2 instead of v1.
If integrating custom design is a big factor I highly recommend using MODx (v1 since v2 is still brand spankin' new). It's loved a lot by designers and developers alike. I have heard good things about EE, concrete5 and SilverStripe though. I really only know MODx though. The design integration rules (no themes to mess with like many other CMSs). Very extendable for PHP ninjas as well and the community is SUPER helpful and friendly. Hope this helps someone as I know I'm replying a year and a half later from the last post!
its sad that no one seems to include wordpress in these discussion
my recomandation is wordpress.org but it also can be wordpress MU and MU in combination with buddypress
one great advantage of wordpress is plugins
it has if not the most extensive plugin selection
and on top of that the same goes for its template selection
please do check them out
I haven't been impressed by CMSses out so far, but Concrete5 and MODx are definitely two to check out.
I'd like to see the documentation and community of Concrete5 grow into something as big as Joomla or Drupal. That will only happen with more users, but it's good enough to get started with right now.
If you want to go the "Rails way", you may want to check out CakePHP, a rapid development framework that adapts most of Rails' functionalities. Also VERY easy to extend!
Related
Okay, so we are now developing a new Social Networking site where users will be able to add content, meet (and add new friends) new people, etc. However, we will also have a rating system like Stackoverflow has (The concept of badges). But there are a lot more features than just these, that we require (For example, retrieving content via Ajax, like on Facebook's more button at the bottom of your NewsFeed) I was thinking of making something from ground up, using CakePHP. But I am also confused if I should modify an existing open source Social Networking engine,like Elgg, instead. Will I be reinventing the wheel if I were to work on CakePHP? Development time is not a factor for me. Also could you contrast between the disadvantages (is security one of them?) between the options that I might possibly have (CakePHP vs Elgg vs Drupal vs anything else). I am more open to anything at this point too, Any suggestion would be much appreciated.
P.S - I know Drupal and Elgg are not frameworks, but to me, they look like viable options as well.
Thank you
The options are as vast as your potential needs for a reason: there isn't a single answer and the solution fitting my needs won't fit yours. I don't have much experience with fully featured engines like Elgg, but as I already know Drupal I know I'll seriously consider Drupal Commons. Drupal's learning curve is steep but it worths it. Drupal Commons is not a closed package, it builds and Drupal and its modularity. So you won't end up looking for scarce expertise with only a few good services providers available.
Being a Drupal dev myself, I'd say you'd have to consider Ruby on Rails. After all, Twitter was conceived with it as far as I know. Ruby on Rails is designed to get almost any idea fast to market. Drupal is a good content management system. Do yourself a favor and give RoR due consideration.
I try to make a social network engine use meteor, fspace , hope useful. :)
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm looking at building a custom web application for a client (a specialized auction site, in this case), and we're evaluating using some existing CMS as the "scaffold" for the application.
The justification is the fact that for many custom web application projects, some 70% of the code written goes in to adding CMS features, user management, and basic admin CRUD. Presumably, if we start with an existing CMS, then those to components will already be built.
We've decided to stick with PHP for distribution and deployment reasons. The top CMSes we're evaluating are Wordpress, Drupal, and Joomla. Here's our analysis so far (listed in order):
Wordpress
Pros: Dead-simple design. Extremely popular and understood. Very solid recent security history.
Cons: Perhaps a little too simple -- can it be made to work?
Drupal
Pros: Potentially more friendly to custom application development. Decent security history.
Cons: More complex and difficult to understand.
Joomla
Pros: Popular and well understood.
Cons: Some security concerns
Once of the biggest issues we're running up against, and what we hope to gain from the S.O. community is understanding how easily these can be customized to become a custom application. As an example, when the client goes into his administration area, will he get the impression that this is an, "auction site with a built-in wordpress CMS", or will it be a "wordpress site with an auction plugin"? We're hoping for the former rather than the latter. But can it be done?
Or perhaps are we looking in the wrong direction? Should we be looking instead at something like CakePHP? (Note that options like RoR and Django are off-the-table because of distribution and deployment reasons.)
Here are some related (but not identical) questions which have some useful information:
Using a CMS to Design a Web Application
CMS for custom application
This is a question we used to face regularly.
Our development arsenal consisted of Wordpress and CakePHP. We used the former where we could and the latter when we really had to.
Unless you're doing something really radical, you can probably do it with (something like) Wordpress. These days, the admin area can be heavily modified and custom taxonomies allow for meaningful entities rather than just posts and pages.
What you need to consider is the wealth of features and testing that comes with an established CMS package. Plus, Wordpress et al. have an enormous collection of plugins/extensions, which can take you even closer to where you need to be.
I guess what I'm saying is, you'd find it hard to convince me to drop back down into something like CakePHP.
EDIT: Six revisions have a great post on customising the admin area. Also, if you have specific wordpress queries, remember we have a really strong stackexchange site waiting for your question!
Unless you're doing something radical you're going to be better of using a CMS (in agreement with Tom Wright above).
I'll pitch in for Drupal. Its a extremely capable CMS that powers some world class websites like http://www.whitehouse.gov (The US President's Official website). That itself speaks volumes about its scalability, reliability and security.
Check out http://drupalsites.net to see a whole set of websites made in Drupal. Once in Drupal you'll have access to one of the most active communities out there for an open source project. This community has produced over 2000+ free modules (or add-ons) to meet requirements that cannot be fulfilled by vanilla Drupal.
It is true that Drupal has got a sharper learning curve than Joomla or Wordpress. But Drupal, I believe is more powerful than Wordpress and Joomla. Once you've mastered fundamentals of Drupal its easy to roll out features. The whole Drupal system just feels consistent. Some CMSes are an endless series of one-off modules that just need to be configured that way. Drupal has some powerful modules like Views and CCK, that, once mastered will help you accomplish so many things that would have required many different hacks/add-ons/custom programming in other CMSes.
Joomla has a reputation for being easier to learn but ultimately difficult for building truly complex and massive community based sites. Wordpress, though fast maturing with version 3.0 is still a ways away in being as feature rich as Drupal/Joomla. Then there are some other upcoming CMSes on the horizon -- check out Packtpub CMS awards -- you can see some good CMSes listed there.
Essentially it comes down to this -- CMSes like Drupal are built to accommodate mainstream website needs. If your site is not radical (today's twitter or foursquare equivalent) stick with Drupal/another CMS. The development times are just severely reduced. Only once you feel that what you are doing is not practical in a CMS should you choose a framework like Cake, Django etc.
I'll jump on the use a CMS bandwagon as well. There is simply no point in starting from scratch unless you have a truly unique app that doesn't need any of the stand user/content type stuff.
I would base my decision on how tech savvy the client is. I would tend to stay away from Wordpress as extending it is not nearly as simple as Drupal or Joomla. It takes a lot more work to get Wordpress to do the same thing and its feature set out of the box is very limited.
We generally go with Joomla because the admin is a lot easier to teach a client than Drupal. Drupal has better user management and access control out of the box than Joomla, but there are very good extensions that can give you both if necessary. I think the other advantage Joomla has is its MVC architecture and huge development community. Nearly 6000 GPL extensions and many more non-GPL. Add in a good CCK like K2 and the sky is the limit.
As for customizing the admin, we use a custom install for our commercial sites. It's branded with our logos and all of the Joomla stuff is removed. None of the core extensions that are unused show up in the admin and depending on the purpose of the site it can be made to look like an app with a built in CMS. None of the changes we've made touch the core and most are simple settings turning stuff on or off as needed. You can even take it a step further with a simple admin extensions that gives you granular control over what a user sees when logged in to the admin. We haven't felt the need for that though.
In the end, it's more about which CMS you feel the most comfortable coding extensions for. It's already been proven that all 3 can be made to do basically the same thing so pick the one you like the best.
Our company has a great experience in web-development, but it was decided recently to direct common energies to web-development based on Drupal development because only in case of Drupal developments customers get:
a web-site build on the safe system which is based on open source code, the system which is tested by million users all over the world. professional content management system;
it is more likely that possibilities of Drupal system are limited by developer’s imagination rather than facilities of Drupal itself; this will be a web-site with great performance and scalability;
confidence that CMS producer won’t disappear;
web-site with moderate price even if there is a need in development of some specific features which are not developed in Drupal yet;
new versions of Drupal core and its modules are available for free.
I would definitely go with ExpressionEngine. It's a very full-featured CMS, and using it's Query module and allowing PHP in templates, you can get pretty fine-tuned from within the CMS framework.
If you need more power, it's built on top of CodeIgniter, and developing add-ons for it is very easy for a decent developer.
It's not free, but it's pretty perfect and worth the cost ($300 for commercial sites).
I'm interested in using a CMS instead of building a website from scratch. However, as a software engineer, if I'm going to be using open-source tools, I'm going to use them to their full extent, including the possibility of developing plugins/extensions/modules and maybe even contributing core code.
I'm currently looking at WordPress, Drupal, and Joomla!. They all appear to have the features I need, either as core features or plugins. However, I'm curious how hard it is to learn the system and then develop for it.
Does anyone have experience with this? When using and developing WordPress, Drupal, and/or Joomla!, what were your experiences like?
I avoid Joomla like the plague. It is highly difficult to extend, especially if your use case isn't one of the ones their devs specifically designed the CMS for. Great if you want to do a small business brochure site, but if you're looking to heavily customise... ditch it. The pay-to-play nature of much of the dev community is a turnoff, too.
WordPress is very heavily specialised in the blogging direction. If that fits your needs, go for it - it's a slick, well supported, system. If you're looking for something that's a bit more complex in a CMS, though, go with...
Drupal. My favourite PHP CMS, hands down, with the exception of blogging. Functions like hook_nodeapi, hook_user, hook_form_alter, etc. make it essentially effortless to heavily tweak the function of nearly everything in the system. If I want to replace the password field in the user login form with an upload field and MD5() the uploaded file to verify the user, I can do that - without hacking core code, and in a few lines of form alteration and validation code. Pretty astounding the first couple times you do something slightly nutty like that.
I haven't used Joomla much and have never really needed to tweak Wordpress outside the design but have used Drupal quite extensively. Drupal seems to be becoming the standard for PHP CMS' which I think is quite a shame given how much is wrong with it. I won't try to tell you why you should use it, or shouldn't, but here's a few things that I find really annoying with it.
Complete lack of OOP. Ok, in Drupal 7 they're finally doing some OOP with the Abstraction Layer but the community as a whole still shuns the entire concept of OOP as it applies to the CMS as a whole. And given their dependence on modules and third party code doing a decent OOP setup would help keep the code more organized. Currently to avoid naming conflicts you need to prefix all functions and constants with your module name which can lead to some very long function names which can lead to some very long lines of code which can make things a little less readable than doing something like $node->parent()->parent()->title;
Drupal content is completely unorganized. When doing an information heavy site it's imperative that you have well organized content and Drupal simply doesn't allow this. Drupal's content management is just one large list of nodes with a few filters you can apply. There are ways you can use Drupal's taxonomy system and other modules to setup relationships but I've never found any that actually make the interface easier to navigate and make it easy to manage the content on the templates. At work I've created a module that allows this but it's required dumping weeks worth of development time into it a simple feature that any good CMS should come with out of the box.
The admin interface is absolutely rancid. This one pretty much speaks for its self but install a copy of Drupal and click around. Then take a look at say, the Radiant interface (Radiant is Rails I know, but we're talking UI here). Another example of a good UI for the admin would be FrogCMS, a PHP port of Radiant.
No ORM, and absolutely no attempt to have one, means you better like writing lots of SQL to get the data you need. While I generally have no problems with writing my own SQL it's starting to get a bit old when most good frameworks and CMS' built on them have at least some kind of ORM for you to use. Even if it's a botched one.
Drupal loves to use non-standard file extensions (.module, .info, .install, .inc, etc) so you better make sure your htaccess and/or virtual host is setup to not allow direct access to these files or all your source code will be wide open for the world to see.
Personally I think FrogCMS looks like it's off to a good start to be an up-and-comer if the maintainers allow the community to contribute to it and allow it to grow. You'll need to do more coding as it doesn't have a big feature set out of the box and doesn't have a plugin repository like Drupal or Joomla but from a coding standpoint it's setup with a pretty well done, albeit basic, MVC implementation that will help your code be more organized and easier to maintain.
I've only developed for Joomla! and have been a user of wordpress, but Joomla! development is too clumsy if you want to completely change the layout. Writing a plugin or 'component' is fairly easy if you know the way around the code, but getting it to do exactly what you want isn't so easy because it likes to force you to use it's MVC design pattern which I find too clumsy.
I've seen both the Joomla! and Drupal code base, and I'd say that Joomla!'s code is much cleaner and better documented. It also heavily uses the MVC design pattern which can be good or bad depending on your preference and what you want to use it for. It has the most extensive use of OO programming in any php project I've seen.
I haven't developed for wordpress, but as a user, automatic updates are a godsend! plugins and themes can be found and installed through an interface in wordpress itself, so as a developer you save a bit of time in trying to promote your plugin because it gets made available to everyone right away. Heavy modifications might break some of of this though, so I wouldn't recommend it if you want to modify it a lot.
Joomla!'s plugin community is heavily monotized, but there is a huge community of plugin developers. I don't know about Drupal, and most wordpress plugins are free. So that's something to consider as well if you plan on using third party plugins.
over the years, i began hating PHP, since i had to work a lot with it until i found good alternatives, so the first question i ask you is: does it have to be PHP?
but staying with PHP i'd add the following:
most people like Drupal a lot because of it's extensibility ... that's fine, but it still has some design problems ... it's is very potent and flexible and has a huge user base -> lot of plugins, big community to ask for advice etc.
when it comes to Joomla, one has to say, that in the past, this has been a really a complete mess ... but in version 1.5 the whole thing was redesigned and is now very clean ... i always laughed down at joomla, but recently i had a talk with some other developer i had worked with on several occasion, who quite conviced me, that it has become a developer friendly software ... plus, it is soooooooo damn easy to administrate ... i know no other CMS that is so easy to use (and is a "real" CMS, not a forum or blogging engine)
you might wanna have a look at Vanilla CMS ... very sexy, still slick and powerful ...
use a CMS based on a good PHP framework ... typo3 (Flow3 (IMHO really the most funky PHP framework)), something based on symfony (can't find anything, but this should be a good start), mambo (CakePHP) or maybe something based on code igniter ... you will always need to get familiar with the framework, but a) this is always good, b) if the framework is good, the app is likely to be good and extensible, c) you yourself will have a high productivity when building extensions since the framework will do a lot for you ...
finally, you might wanna have a look at opensourcecms ... always helpful ...
good luck with your choice then ... ;)
greetz
back2dos
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
which is the best framework to develop a community web site.
For the MVC architecture, is there any disadvantage while using frameworks.
or is it better to develop that in a pure php with OOPs concept?
thanks in advance!!
Do you want an MVC framework or a CMS?
For MVC frameworks, there isn't simply the best. It's always about what you need, but here is a short overview of the most common frameworks.
If you're looking for a CMS I'd suggest Drupal for community like functionality.
or is it better to develop that in a
pure php with OOPs concept?
If you really need that last little bit of speed, do it in pure php...
I'd suggest, use a good stable Framework like CakePHP, symfony or CodeIgniter. It'll help you avoid a lot of mistakes you'd make if you do it all by yourself and it makes development (not the page) a lot faster.
I switched from pure PHP to Django (python) and I cannot tell you enough good stuff about it. Using an ORM and automatic admin system was key for me and have saved me tons and tons of tedious work.
If you don't want to learn a new language there're probably some very nice frameworks for PHP as well.
Drupal is a very easy to use and extendable framework for building communities and MVC apps in PHP.
For simple sites you can try CMS, such as Joomla or Drupal or even others, wich will let you concentrate more on content than on programming/modeling.
As for MVC, frameworks definitely help, you do not need reinvent the wheel. Escaping strings, session handling, db access, views templating, web forms and other important stuff is done in formalized, dev community proven/tested ways. More to say, frameworks leave you with the freedom option to enhance functionality (e.g. inheriting/overriding/adding classes). So try download some of them, try a simple app, take a look at the docs, and decide if it suits your needs.
Personally, I have a good opinion of Kohana framework.
take a look on elgg , this is new and has lot's of inbuilt things, and easly extensible.
I think for a community-site the idea/concept of the site is much more important than the technology.
Many technologies are mature for web-development. I would pick the one, you most comfortable with. From the features they aren't very different and if the technology is actively developed, you can be sure, that it will adapt future ideas.
I suggest you use some MVC framework. CMS systems are nice, but a time will come when you'll want to do something outside of the box and you will have to create plugins. Now, all this is nice until you have to upgrade. And you do have to upgrade because security issues arise all the time.
Anyway, here are some frameworks that are IMHO worth considering. It's important to use one which is known and popular because:
more users will be able to answer your begginer questions
more users mean bugs are found and fixed faster
there is also more user-generated content, examples and documentation
CodeIgniter and its fork Kohana
CI has excellent documentation, a few very good tutorial videos and it's easy to be up and running in a very short time.
Yii framework
Has excellent documentation, and is very powerful. Also, it is very fast, and beats most other frameworks on speed tests by a large margin. It takes time to learn to use it well, mostly because there aren't enough examples, and you don't have such great video tutorials like CodeIgniter does.
CakePHP
I find it a little bit too restrictive (file naming, placing, etc.) but this could be good for a complete newbie, or a team (less chance for maverick developers to mess things up).
Yii comes with a full stack of features, including MVC, DAO/ActiveRecord, I18N/L10N, caching, jQuery-based AJAX support, authentication and role-based access control, scaffolding, input validation, widgets, events, theming, Web services, and so on.
Yii is easy to use and is extremely flexible and extensible. Id recommend to check its extensions like backvendor http://www.yiiframework.com/extension/backvendor/ or coco http://www.yiiframework.com/extension/coco/ Ive tried backvendor, it really helps to save much time on the first stages.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Facing a need for a single CMS we can use for rapid deployment of customized CMS solutions, I am wondering if anyone can share any constructive feedback, experiences, pros and cons of this, seemingly powerful, piece of software.
The whole story/marketing pitch sounds solid, and from a quick glance at the CMS itself things seem to be put together in a coherent and pretty flexible way. I am however looking for first hand experiences as they usually reflect the real situation way better than anything else.
If you have used (or are still using) ezPublish for something, I would love to hear about it.
Thanks!
Having in mind all good points of eZ Publish you should be aware of bad ones. From programmer point of view: Most of the system was written in php4, and was rewritten in a hurry, to make it works with php5. Lack of design patterns and object oriented approach in kernel, makes system hard to develope with, and to read its code. To add some heavier functionality not supplied by CMS, you can use extension system. Problem is programming extensions is slow and painful (documentation only in code). There is quite good technical documentation on www.ez.no but most of it is for webdesigners.
I'v used ezPublish for quite a while and I can say its very flexible and allows a range of different solutions to quickly be developed with it. The ability to add content types is what makes it awesome.
It can be a little bit slow at times, but with proper caching set up it can also be really fast.
The biggest downside: The learning curve is very steep and long, and there aren't enough knowledgeable eZ Publish developers available in North America.
However, from the beginning I've been fond of its overall architecture, which seems to be elegant, flexible and generally well thought-out. Over time, some things have been bolted on in ways that don't necessarily fit perfectly. But it's pretty amazing what you can accomplish with the core functionality, and overriding and extending the core is clean and maintains good separation.
I would say that if you are in it for the long haul and can afford to train your developers (really, you can't afford not to) then eZ Publish is a reasonably good choice. Once you figure out the platform and develop your own kit of tools, it should be fairly quick to deploy custom solutions.
I will also concur with an earlier answer, that the class system really shines. Caching is always an issue, so don't forget to learn the caching system. Your site can fly on eZ Publish, but you must understand caching to make it do so!
I have Used eZ Publish for some years now.
It was quite difficult to learn it at first and understanding the structure, but when you are on the way then everything would be simple and fast, especially with their new kernel on Symfony2.
I would recommend using eZPublish 5, as I suppose you no longer talk about the older versions, only if you have at least some basic knowledge of eZ version4. That is because the admin is still using the legacy and all the settings are done using .ini files which you really have to know. Nothing hard, but learning curve is definitely steep.
Also using eZFlow will require working with both .ini and .yml configuration files, so you need to understand both config structures.
Further on, as I have been at a presentation for the new admin, which unfortunately will be using YUI as JS framework, and having seen the release plan for this year, I can say you will have to keep the legacy admin if you want to benefit of all the functionalities as there is an enormous amount of work to be done to have everything migrated on Symfony 2.
Even with the announcement of eZPlatform(eZ 6), I am not that confident we will have a really STABLE version anywhere this year.