php cms and custom template - php

I want to create a site using a cms, but I want to use my own look and feel. I want to be able to upload downloadable content such as mp3 files with a flash player. I also want users to sign up and login. I want to be able to track and log downloads and uploads done by users. Any suggestions?

There are dozens of different CMS systems and each works slightly different and is geared for a specific use case. Some of the most popular PHP CMS systems are:
Drupal - One of my favorites. Very powerful and extensible but a large learning curve and for most projects it can be overkill.
Joomla - Similar to drupal. Easier to use for sure but a little less powerful. For most projects it can be overkill.
Wordpress - The premier PHP blog engine. Designed for blogging but can handle most any site type. Very easy to use but you sacrifice some extensibility.
All of these CMS systems have very popular and well documented theme engines and active development communities. I think a choice of CMS has more to do with how you want to use your site rather than your technical needs because at this point there is a large amount of feature parity ( no flaming on this, I know in some cases this is not true but for most mainstream needs they all offer similar features in third-party modules if not built in). For your specific needs you mentioned any of these will probably work. Download them all and try them out. Why not? They're free.
For a full list of PHP CMS try Wikipedia

Sounds like Drupal could satisfy your requirements.
It would allow you to create a template for your own look and feel
You can use the CCK and Views modules to create your own content types that support your downloadable files.
Drupal has a robust built-in user account system.
There are at least a couple of modules that can be used to track downloads.

The two major ones that I can pick out off the top of my head are Drupal and Joomla, so I'd check both of those out. For a good comparison, read this article.

I prefer Typo3.
Very powerful and great extension repository. For you requirements you dont even need any extension. But it will take a lot of time to get in.

Related

What is the difference between a CMS and a Framework? and how to choose between them for certain requirements?

I am currently working with Zend Framework and I am extremely happy with it. What I want to know is at what kind of requirements it is better to use CMS's like Joomla or Drupal.
Considering my current project it is a portal application. It is completely made from scratch in Zend. Then some fellow comes and comment that it rather implemented in drupal you could get plugins for the stuff you built by hard efforts.
So I need a guideline for how to choose between CMS and A Framework at the kickoff phase?
The question in your case is whether to use a ready made CMS or to create your own system using a framework. The right answer depends on the following:
budget
number of users you will have (long term performance concerns)
further maintenance
total number of details (bells and whistles) you want to provide on the site
implementation with third party/custom APIs
special/custom features that require high level of freedom (example: StackOverflow reward points and badgets)
As this is a question most of us face pretty often, here are cons and pros of a ready made CMS vs a framework:
Ready made CMS
Pros
faster start and development time if your project generally fits in what the CMS provides
available modules and themes
backed up by community, meaning that new features, bugfixes, support, tutorials etc. will be provided to you free of charge
unified set of standards - it's easier to continue working on an existing CMS site than to take someone else's custom application (this is relative, but the point is that in a site that uses an existing CMS most of the things/setup will be familiar to you while in a custom app the previous developer had more freedom)
security is something you do not need to worry that much as in a custom app
Cons
if your requirements are very specific, you will need to override the default workflow of the system; in some cases this can be tricky and will make you spend more time than to write your own
redundant code in modules/plugins
performance - a ready made CMS will rarely be as fast as a custom made application
not suitable for every large website (unless you fit in almost everything that the CMS provides)
steep learning curve in some cases (Typo3, Drupal)
Custom application
Pros
it's up to you to define the structure and the logic of the application
app design is made especially for the project you are working on - so there is no redundant code
freedom to do anything you want
Cons
expensive - in most cases you/your client will need much more money for a custom app
further maintenance will be harder
changes and modifications of the structure can be very time consuming
if you aren't using a CMF you will have to reinvent the wheel in some aspects
Bottom line
Spend a couple of days and learn something about the CMSs out there, such as:
Drupal - my first recommendation; good for medium to big websites; good community; medium/steep learning curve
WordPress - my second recommendation; good for small to medium sites
Typo3 - enterprise level system; pretty complex, combined with a framework which can be used standalone in projects
Joomla - I personally don't like it and do not recommend it because of amateur plugins, but it is popular
SilverStripe
MODX
Concrete5
I think that any bigger and serious project, which will have at least 1-2 programmers to take care of the system at all times, should be custom. Exceptions are only if it fits exactly in what an existing CMS offers already.
Hope this helps :)
Take a look at Difference between a CMS and a web-development-framework on StackExchange.com.
A CMS (Content Magagement System) is used to manage content on a website. It usually provides tools to make this task as easy as possible.
Examples of CMSes: Drupal, Joomla, DotNetNuke etc.
A framework is like a set of libraries / classes to build a web application. Many frameworks provide libraries for database access, templating engines etc. This way, you don't have to reinvent the wheel.
A CMS is often build upon a Framework.
Examples of frameworks: CodeIgniter, CakePHP, Kohana...
#Voles mentioned what CMS and Framework is
So your question is "guideline for how to choose between CMS and A Framework "
Want to build a Blog or a simple website ?
Go for Wordpress , Drupal etc.
Want to build next facebook or stackoverflow or app of your own which the current cms is hard for you to learn or is limited with the features?
Then go for some frameworks or custom made ones. Be sure that you know how to build it in the right way.
You can have a look into http://cmf.symfony.com/ also.
Hope that makes clear.
Apart from all pros and cons of CMS and Framework , According to me you need to study your requirement at the time of kickoff. List out the modules you want in your application. Now check that how many modules are available in CMS you know about like drupal , joomla , wordpress etc. and also check out that how much customization you need in this available modules as well as custom modules you may need to develop as per your requirement . And if you found out that with minimum customization you can use any particular CMS and than go for it.
But in case your application may very complex in nature than I suggest go for any MVC framework like Zend , Cakephp , codeigniter etc.
Yes one other thing go with any CMS or Framework that you well versed with it.
Framework is like a library by using this library we can develop new thing.
Whether CMS as name imply its an inbuilt source to manage the content.
Like wordpress we don't need to develop anything.
Framework are the creator of CMS , CMS is basically a Content Management System which focuses on content managing where everything is perfectly setup for you with few lines of code and logics ur website or small app can be developed
Whereas in framework its deeper than CMS everything you have to write from scratch or use existing library which is generally used for making big app. Hope this would help
As far as I know, CMSs and MVCs are web application frameworks with coding libraries. CMS is way easier to use for beginners, as it has its pre-made functionalities available, so you will not need complex coding. I found useful information in Wiredelta's article, maybe this will help for you as well: https://blog.wiredelta.com/cms-mvc-framework-comparison/
Difference
CMS: A content management system (CMS) is computer software used to manage the creation and modification of digital content (content management).
Framework: A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs.
A Framework offers a basic web application structure with a set of tools, to let you build your own web application, or even a CMS.
How to choose between them?
I have been working for many years with different open source CMSs (Much with CMS Made Simple, Prestashop. A bit with Drupal, Wordpress) and frameworks (Much with Symfony, a bit with Zend Framework).
My conclusion is:
If your requirements can be fulfilled with features of an open source CMS, and there are only a few custom requirements, use that CMS
If your requirements are complex and/or more custom, use a framework
Problems when using an open source CMS
Plugins often don’t provide all features you need
Community plugins
Have limited features. If you want to extend the features, you end up copying or modifying plugins, making them harder to update
May not be compatible with other plugins or even with the CMS version you have
Harder to debug since it's not the clean code of your team
May not be fully for free and come with additional costs
You spend a lot of time on searching and evaluating plugins
Own plugins
Limited CMS features (eg. missing dependency injection) may lead to unstructured coding
When your plugin gets more big and complex, you may start to ask yourself, why not having used a framework from the beginning
High learning curve, depending on the documentation, technologies used, and how many architectural rules you have to follow
Highly dependent on community
You may not get a fast answer or solution from the community
You may have to debug deep into hardly-to-read plugin or CMS code
Own fixes make updates difficult
Usability
Admins may get overwhelmed about default features, and may generate more support tasks for the developer, where a simple content editor for the admin would suffice

Use WordPress or Build From Scratch

I'm going to be building a website where people will be able to register, upload some digital content and make sales.
There will be features like users managing their own profiles, rating and commenting on other users' content, managing their digital inventory and integration with Paypal.
I've good experience with PHP, but I'm wondering if I could cut development time by using WordPress as a basis for the website instead of building from scratch or using a framework like CakePHP. What are peoples experiences with customizing WP (version 3 in particular) vs. coding from scratch in similar projects?
This sounds like a perfect use for Buddypress(http://buddypress.org/), a Wordpress plug-in. It adds user profiles and essentially allows them a Facebook-esque profile. Once the plug-in is installed you can get into the files and change things as you wish, so it's quite customisable, at least from my experience.
It really depends on the features you are building. I've had a lot of experience making WP do things other than blogging and if you don't know your way around it would be a hassle. I've also built a number of custom CMSs so I know about that route as well. If you're happy to allow users to use the WP admin panel for profile management etc. there shouldn't be too many problems.
The advantage you have with WP is the community - chances are whatever you're trying to do has been tried/done before so there should be an answer. Add to that the security features and vast library of plugins, and WP is a great choice.
It just depends on how complex your features are, and how comfortable you are with WP.
On the other hand, that has not been my experience. I've needed to add a user registration/security module but that wasn't stupid or frustrating, and other features have been valuable. But there is the usual learning curve. It's nice that it's ubiquitous and competition has worn off most of the warts.
We've built a couple of real estate sites using wordpress, but also sites where you can share your memories and stories. Wordpress is a real easy platform to use as a ground, sice all the basic functionality is already there, and also as #Tom Walters said, the community is really helpful.

Port Codeigniter App to PyroCMS

I'm working on a web application in Codeigniter. I'd like to integrate the functionality of my application with a CMS so that site admins can easily update the site (about pages, blog, etc). Is this easily done with PyroCMS or another Codeigniter-based CMS? Will I need to drastically restructure my existing app?
From my own experience integrating an app inside Expression Engine I can say that a CMS changes the way you usually work with CI. So be prepared to make some adjustments. Every CMS will come with it's perks and differences. It shouldn't be a big problem though.
If you want to use PyroCms take a look at this doc first:
http://www.pyrocms.com/docs/2.0/developers/creating-custom-modules
If you're looking for alternatives, there are a lot. It seems almost everyone working with CI has made it's own.
Here are a few:
http://www.ionizecms.com/
http://www.halogy.com/
http://codefight.org/
http://www.getfuelcms.com/
Also make sure you check out CI Bonfire, it's not a CMS but does help you when you start up a new project with a basic admin wrapper, which is sometimes more useful than a CMS:
http://cibonfire.com/
This was answered a year ago and answered well, but my support guy has forwarded me a few emails from users asking about this page.
When people talk about Content Management Systems they often suddenly get the idea of rigid backends where you applications have to follow specific rules. While PyroCMS certainly has a few conventions you are free to build your modules just like they are a CodeIgniter application, on the frontend or the backend.
If you want to use Models, Controllers, Views, REST API's, SOAP, whatever the hell, then you can do that.
But, we also offer some awesome tools to make building modules CRAZY-fast. Hate writing CRUD? Well don't bother. Using the Streams API you can leverage the build in "Custom Data" system we use to rock out chunks of interface for you.
Using PyroCMS for your application is certainly not "hacking it into a CMS", this is the exact use-case it was built for.
If you have an existing application, while you can't "put PyroCMS into your app" you can certainly convert your application to a module easy enough.
The simplest way of doing it is to write your models around the CMS' database. Host the CMS at a subdomain with authentication for your admins. (admin.mysite.com) or something and then use the same database to power your front-end for your site.
Is it the best approach? Probably not.
Will it work? Yes.
You will probably find it hard to expand vertically & add new features if you're relying on a 3rd party CMS for data entry & backend.

can you create sites automatically (with a html page) with drupal on the same server?

I've read that you can host multiple drupal sites, while they use the same core files(so not needing to copy a few megabytes for each site). I wanted to ask if there is an automated tool that can create a new site, while let you choose a template and then connecting it to the drupal system?
Are there tools like that(with a web layout)?
I would really like to get a few pointers as to how, lets say a company for building websites, will be able to use an automated system to build sites easily. I also understand that with drupal you have alot of manuver to edit your own code, when lets say you want some future in one of the sites. Is it pure php/html or in order to do that you have to delve into core Drupal futures? Also what are the chances that somebody already did it before and you can use this module?
Last, if a company wants to move to a Drupal system (web development company), how much of a transformation is it? Should they be Drupal core experts in order to not lose themself? Or they can keep a drupal base while still using the regular html/php? I really appreciate any leads.
Thanks.
*the questions is also intended to Joomla.
To answer your first question, the Aegir project is a system whereby you can use Drupal to create and manage Drupal sites. That includes installing from install profiles--which are sort of like site templates--or a distribution (Drupal installations pre-packaged with modules). The downside is that installation is fairly involved, more so than just Drupal itself. There's a lot of documentation on the Drupal groups site for Aegir. For a straight multi-site install, there's some documentation on the subject, but the install instructions with the software come with help that you should consult first.
As for your second question, the answer is (unfortunately) "it depends". Knowledge of PHP, especially "the Drupal way", plus integration with the community, are huge plusses. If you intend to join the community, immediately sign up both yourself and all developers an account on Drupal.org and, if you find solutions to bugs or other problems, providing back is a sign of goodwill, and it usually pays back dividends (one example: you submit a patch, it gets included in a module, and then the community maintains it for you). Developers need not be experts with Drupal core, but they need to be pretty comfortable with learning the API and knowing how to create sites for clients in general. First start with requirements gathering, then see how it fits into the Drupal way of doing things. If it doesn't fit, then use the right tool.
That's a tip of the iceberg view from the developer's point of view (as opposed to the businessman's point of view). There are plenty of companies that do only Drupal and there are plenty of companies where Drupal is one tool they use out of many.

CMS for custom application

We are building a custom application using LAMP with P being PHP. We also need to have CMS to manage various aspects of the site. The two options for the CMS are
Build a complete custom CMS from scratch
Extend an existing open source CMS to fit our needs. This way we can use some of the features out of the box and others we will build ourselves.
I would like to get your feedback on the following
What are your experiences with option number 2?
Which CMS would you recommend that we can further customize and extend for our use?
What are the best ways to integrate a custom application with other external CMS?
I really like the MVC approach for a CMS (you did mention extending), and PyroCMS is built on Codeigniter. It might not (out of the box) serve all of your needs, but easily could. Its worth a look, at the least.
A whole set of CMS are available nowadays, everyone with its own pros and cons.
I guess the first step in your case is to make a list of the features that you:
MUST HAVE
SHOULD HAVE
COULD HAVE
Once you have this list, you'll be able to compare the existing CMSs to see which one better fits your needs.
There's no a best CMS (otherwise everyone would use the same).
Said this, Joomla offers a powerful base system, easily extensible. But this is just my modest opinion. Right now, 4712 extensions exist for this CMS. If you still can't find all you need, it's possible to implement your own extensions (in terms of plugins, components and modules). See the developers section for more information.
I've recommended ModX in response to previous questions
It provides a nice clean framework which is simple to install and is easy customize.
For your situation I think ModX is a strong contender as it allows you to embed your own php code in your site using snippets - Bob's guide on snippets is a good overview. The snippets can be managed through the backend web manager and they can easily be dropped into any pages as required.
Larger applications can be setup as modules, this is similar to many of the other main stream CMS's, it's just that in ModX the web based control makes the management of the code a simple task.

Categories