I'm taking on a relatively small freelance project and my client would like to update several portions of their site; photo gallery, calendar list, about page, and some event links.
My gut tells me to use something like WordPress and use "Pages" for these sections, but I'm worried about my client maintaining the formatting. Especially something like calendar dates and links.
They won't be doing any blogging - this is just so they can update those sections when needed (obviously).
But then I thought, what if I just roll my own CRUD for these portions, but I'm not sure if that would be necessary for a project like this.
So what would people out there use in a situation like this? How much control does one have over the formatting of content in WordPress? I'd like not to have to teach my client on when to call certain CSS classes.
Any help is more than appreciated.
EDIT:
Any idea how the top carousel of BungoBox was made in WordPress? Or don't you think it's possible and that is done manually?
I would stick to wordpress or similar CMS system. It will be a pain-in-the-arse, to take care of formatting (WYSIWYG for client), take care of security, make the administation pages nice and functional, and so on.
You will find a LOT of information on wordpress as a cms on the web, for example see here
Have you considered any other cms system?
From the description this is a site that would consist of just a few pages that the client would want to update? if so, I'd stick with wordpress myself. There's a ton of pre-written modules and themes already out there, and there's no sense "re-inventing the wheel". Also I've found in my travels that Wordpress leads the pack in being able to manipulate content to your will of all the CMS's and the available WYSIWIG plugins they have. Remember, if they cant' get their document to look just right, guess whose getting the call, and who will be expected to fix it on your dime if you didn't specify that in your contract (you are offering maintenance as an additional feature right?)
Now if the client is looking for a more robust system, a larger site then I interpreted in your writeup, then I'd look into more of a CMS system such as Drupal or Joomla. Avoid the trap that seems to nail PHP coders that it'd be faster to do it yourself; it'd have to be a lot of custom functioanlity to start looking at building it yourself from the ground up (and even then, there's enough frameworks to help)
What about something like Drupal? Never used it personally, but I think it's built for this sort of thing, whereas WordPress is kind of tailored towards blogs.
Definatly go with wordpress, drupal is just too heavy for the job and will take you much longer to configure.
If you are worried about your client ruining design with a WYSIWYG editor, just don't give them access.. keep them on a need to know basis for their own good.
Working with wordpress will free you from maintaining security issues and many other unpredictable-at-this-point cases of reinventing the wheel.
Related
I have a PHP based website, with database connections, form processing, etc, that I need to use a CMS on. I'm trying to use Joomla but after using it for 2 days and reading tutorials on it I'm getting the impression that it's designed to handle static content and that all form processing is to be handled by 3rd party extensions.
Am I getting the wrong impression? Is there a standard way to import a PHP website into a Joomla CMS?
I inherited a Joomla 1.5 site a few months ago, so I was in a similar situation to you - where to begin, with lots of questions about Joomla, its ethos, etc. What I've learnt in the meantime is:
Joomla is very heavily dependent on 3rd-party extensions. Some of these are good, some not so good - evaluation and caution is advised.
Joomla encourages the use of extensions, even for relatively static content. Whether these are full blown 'components', or 'modules', depends on quite how powerful/flexible they need to be.
The MVC architecture that underlies everything has its positives and negatives. On the plus side, if everything is done consistently, there is a good separation of concerns and - in particular - the template system offers good configurability. On the downside, very simple components/modules have an awful lot of complexity - e.g. just in terms of number of files.
Joomla is open-source ... sort of. If your familar with the open-source community, you might be a bit disappointed with Joomla, especially when it comes to 3rd-party extensions. Many of them do not embrace the open source ethos, and try to sell code and/or support so, to reiterate, choose your extensions carefully.
Writing your own extension is fairly simple, especially if you're familiar with PHP. Although the documentation isn't great, there are some gems - in particular, take a look at:
http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
http://docs.joomla.org/Accessing_the_database_using_JDatabase
When it comes to forms, I'm still undecided. The site I've inherited uses a third-party extension to manage them (mod_breezingforms), but it has its issues. If you have the luxury of trying out several alternatives, take it.
Run your development site in debug mode. Take a look at database queries. In my own experience, Joomla is very, very demanding on the database. For example, I have some pages that make hundreds of calls to the database with every request. Watch out for this.
At some point, you'll see itemid in the URL and wonder what on earth it is. It refers to a menu item. Menus in Joomla are a bit more general than you might think - they don't necessarily represent a 'menu' and they're quite important. For example, the built-in way to include content on a series of pages is for them to belong to the same menu item, so you might need to create 'fake' menus to house content.
Try MODx Revolution. You can insert your existing php form processors straight into Snippets with next to no modification required, or using the existing FormIt extra. Ajax is easy as pie.
Some docs to get your started:
Overview
Making Sites with MODx
Snippets
edit: apologies if it looks like I've tried to hijack this thread, somehow missed the fact the question is referring specifically to Joomla. MODx is definitely worth a look though ;)
There aren't many CMS's that can handle forms correctly (maybe only the very very generic ones, such as contact me forms, or shopping carts), but for any other purpose, you probably want to use your own PHP script to handle and process the form.
Nothing is stopping you from having a CMS on one part of the page, and your own PHP script on another.
I've once had a website with 2 different CMS's (Wordpress and Joomla), as well as some custom made pages. Slightly trickier to handle, but it's possible.
This question is very broad to answer. There are few step-by-step tutorial available on the internet for this.
From Joomla
Site Ground tutorial
If you follow this head start. You are sure to know a lot of joomla along way and convert your website to the joomla.
BUT, it is easier to build on Joomla rather than convert to it
The first trick to using Joomla effectively is to not over think things and use code that is proven so you don't have to work so hard.
Your existing content can likely be imported to Joomla just be exporting it to a CSV then importing back in to the Joomla article table.
Form handling is incredibly easy. There are dozens of form handling extensions, some of which do more than you will likely ever need. I use ChronoForms most of the time because it can be made to do basically anything once you learn how it works. I also like RSForms if you need non-tech people to be able to create forms on their own.
"Load dynamic data" in to a Joomla article is not very specific, but I'll take a stab at it. If you mean getting user submissions, then there are front end content submission options built in. If you mean loading data from another source, then you can generally use either a module or a plugin to get that data loaded either on the page or actually within the article itself.
Spend a little time getting to know how it works. Learn the difference between a component, plugin, and module and that will help you get a better grasp of what you can do. Joomla is an extensible framework, there's nothing you can't make it do and many things that are already built for you.
I would use JUMI, a Joomla component for embending your own PHP scripts. No scripts modifications are required!
I've been tasked with building a site for a client. They want it to include a WordPress blog and a wiki with both integrated apps sharing the look and feel of the main site. Currently, they use MediaWiki and would like to stick with it, but they are flexible with respect to the software we choose.
I've nailed down two fairly discrete approaches to this problem:
Build custom themes for both WordPress and MediaWiki
Strip WordPress and MediaWiki of most of their respective visuals and include them both in the site using iframes.
I'm fairly comfortable with the technical requirements of option 1 and am only entertaining option 2 because the allotted development time for this project is extremely limited. My experience with framing external sites is fairly limited and thus I am not entirely sure what the technical ramifications are for option 2. For instance, will it require a ton of extra work to link to specific pages within the blog/wiki if I'm using an iframe? What about forms included in the framed pages?
I guess I'm just wondering what you fine people would do here. Any advice/insight you may provide is appreciated!
Personally I'd plump for option 1, but I can see the benefits of option 2. A possible option 3 is to use the Wordpress Comments extension to MediaWiki, or look at a similar integration of the two (see this StackOverflow thread), so you only have to change the look and feel of one product.
It is almost always a mistake to try to strip out functionality and do things the "wrong way" in an effort to save time. It's really not that hard to make a WordPress or MediaWiki theme. Just look at some of the themes that are there and take out the tags that you don't like.
Maintaining a stripped-down version of WP or MW will become a maintenance nightmare for you. What do you do when security problems are discovered?
If there isn't enough time or money to do this job right, don't do it the wrong way --- avoid the job. Because they won't have enough time and money for maintenance or fixing, either.
For creating common user modifiable site I've been forcing Wordpress to do the work of a CMS. It's worked and the back-end is purdy but it's just too hacky for my tastes. So I'd like a simple CMS that is easy to customize and add dynamic content to.
Right now it looks like modx is my best bet. I've tried Joomla a while ago but it was a real pain to customize and the back-end was not intuitive.
Basic requirements:
Free
Runs under PHP5
Easy to customize
Easy for content authors
Easy to add dynamic content
If it doesn't have these, then I doubt it's more fit than modx.
I'm a huge fan of modx, I don't have much to add other than to say if you are happy with modx and it does what you need then stick with it.
I just haven't come across anything as easy to use for a developer. The template system, ease of creating your own snippets if you can't find what you need already, everything just seems to fit from a developers point of view.
I have also had no trouble training clients to use it.
The main problem with modx for me is that I haven't really been impressed with any shopping carts/store solutions for modx yet, but I guess it depends on what kind of site you want to make.
i can recommend frog cms http://www.madebyfrog.com/
it's a copy of radiant cms (which is running on ruby/rails, see http://www.radiantcms.org/)
Have a look at this http://php.opensourcecms.com/scripts/show.php?catid=9&cat=Lite
The list contains very lite php opensource CMS, most of them dont even use a database.
You can go through the demo of these and pick the one you like.
Lately I've been thinking a lot about building a website/blog/community oriented site. However I can't decide if it's a good idea to build it using Wordpress as a base.
I've been reading around the Internet, and I've seen that many users have trouble with Wordpress using lot of CPU and other resource related problems.
So, what do you think? Is it wise to actually build an application based on Wordpress? Or it would probably lead to undesired results?
Any opinions would help.
WordPress is quite flexible once you get the hang of its WordPress Loop, Page Templates and how to create a customised homepage. Using some plugins, such as the Page Redirect To and Custom Taxonomy, you can have a pseudo-CMS. There are also widgets and plugins that let WordPress mimics CMS-like behaviour, such as listing all sub-pages within a pages, customize how categories are shown and etc.
If you can handle the WordPress loop and use Page Templates, WordPress is okay to build on-top of. However, its database schema is quite confusing. Depending on your goals, you may want to use CodeIgniter or something else.
If you to get really farther than a blogging software, maybe you can have a look at more generic CMSes.
I kinda like Drupal (which has a lot of plugins that can help you do almost whatever you want on your site) ; as a reference point, it is used by many quite big sites, so, if correctly configured, can hold a bit of load.
Just a remark : you might need at least a couple of day to learn how to use it well, because it is quite rich, has lots of features, and you will probably want to have a look at many modules, to get the ones you need/like. (But that would be true for any CMS, I guess)
I recommend using WordPress MU with the BuddyPress plugin for building a community site. BuddyPress is actively maintained, and the set of features are comparable to the basics of Facebook (wall, groups, pages, etc.). Not to mention all of the plugins. Also, with a little extra effort, you can have bbPress (WP forum software) in your community app too. I am working on a big project using each of these products right now, and it has been much less of a nightmare than the times I've done something similar in the past, using other community apps or forum software.
Well that's basically what Wordpress is for :P I've never heard of any issues with Wordpress using lot of CPU and other resource related problems. It seems perfect for what you want to do. Are you familiar with PHP?
Any moderately-sized site should have a cache in front of WordPress. WP Super Cache is one of the more popular ones. Basically, WordPress should be generating pages only when needed. In all other cases, the page should be served from cache.
Wordpress is open, so you can use it if you want.
But I think building a plugin and hook to Wordpress's main feature is a better ideal.
And btw, What is the meaning of "application" you are developing.
I'm in the process of designing a PHP-based content management system for personal use and eventually to be distributed. I know there are a lot of CMS's already out there, but I really haven't found one that meets my all of my needs and I also would like to have the learning experience. Security is a large focus, as are extensibility and ease of use. For those of you out there who have built your own CMS, what advice can you offer? What features are essential for a core? What are must have add-ons? What did you wish you knew before starting? What's the biggest potential roadblock/problem? Any and all advice is welcome.
Edit: Any advice on marketing do's and don't's would also be appreciated.
In building a few iterations of CMSs, some of the key things turned out to be:
Having a good rich text editor - end-users really don't want to do HTML. Consensus seems to be that FCKEditor is the best - there have been a couple of questions on this here recently
Allowing people to add new pages and easily create a menu/tab structure or cross-link between pages
Determining how to fit content into a template and/or allowing users to develop the templates themselves
Figuring out how (and whether) to let people paste content from Microsoft Word - converting magic quotes, emdashes and the weirdish Wordish HTML
Including a spellchecking feature (though Firefox has something built-in and iespell may do the job for IE)
Some less critical but useful capabilities are:
- Ability to dynamically create readable and SEO-friendly URLs (the StackOverflow way is not bad)
- Ability to show earlier versions of content after it's modified
- Ability to have a sandbox for content to let it be proofread or checked before release
- Handling of multiple languages and non-English/non-ASCII characters
Well, building your own CMS actually implies that it is not an enterprise-level product. What this means is that you will not be able to actually implement all features that make CMS users happy. Not even most features. I want to clarify that by CMS I actually mean a platform for creating web applications or web sites, not a blogging platform or a scaled-down version. From personal experience I can tell you the things I want most in a CMS.
1. Extensible - provide a clean and robust API so that a programmer can do most things through code, instead of using the UI
2. Easy page creation and editing - use templates, have several URLs for a single page, provide options for URL rewriting
3. Make it component-based. Allow users to add custom functionality. Make it easy for someone to add his code to do something
4. Make it SEO-friendly. This includes metadata, again URL rewriting, good sitemap, etc.
Now there are these enterprise features that I also like, but i doubt you'll have the desire to dive into their implementation from the beginning. They include workflow (an approval process for content-creation, customizable), Built-in modules for common functionality (blogs, e-commerce, news), ability to write own modules, permissions for different users, built-in syndication, etc.
After all I speak from a developer's point of view and my opinion might not be mainstream, so you have to decide on your own in the end. Just as ahockley said - you have to know why you need to build your own CMS.
If you ask 100 different CMS users about the most important thing about their CMS, you'll probably get 80+ different answers.
The biggest roadblock is probably going to be people asking you why you built a new CMS from scratch.
If you don't know the answer to that question, I'm not sure why you're going down this path.
One thing to keep in mind is that for an internet CMS, folks are going to want integration points with many of the "usual" services. Leverage existing services such as photo sharing sites, Twitter, OpenID and the like before building your own proprietary solutions.
well i wrote a CMS for personal use and released it to the biggest chorus of chirping crickets ever! no biggie, though. i did learn a lot and i encourage you to move forward. my clients use it and like it and it's holding up fine.
but if i were to start over (and i might) here's the advice i would give myself:
scrub everything everything everything entered from the user
user administration is a product differentiator. bonus points for being able to handle someone copy/pasting from WORD.
extensibility. 90% of the comments i get are from developers who want to use the cms to host "some" of the website pages but not others. or they want to embed their custom scripts into the page among the content. my next cms will be as modular as i possibly can handle.
many folks are absolutely fanatic about clean urls.
From marketing point of view:
1) Make it templateable.
2) Make CMS SEF and have SEOed URLs.
If you need to build custom functionality where your CMS is really a window to the rest of your business layers, then use something like PyroCMS or FuelCMS which are based off of CodeIgniter framework.
Developers usually get lost in the weeds with Drupal and Joomla! / Wordpress quickly become spaghetti code-laced doozies over time. Its how much you have already drank from the Kool-aid punch bowl.
I know this isn't a direct answer to what you're looking for but if you haven't looked at it yet I'd recommend checking out CMS made simple. It has much less bloat than other CMS's and is fast and efficient. It's open source so it may be a good reference point for any questions you will run into.
Just use Drupal.
Out of the box it is very light and fast. You add modules for virtually everything, so that can be daunting but it is fantastic.
Its secure (NASA and The White House use it), its modular, its open-source, it is well supported, has a reputation for clean APIs, and has hundreds of modules from SEO to Wysiwyg....