Advice for integrating a blog and wiki in a custom site - php

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.

Related

Is WordPress a CMS or can it only be used for a blog?

Since a year or two I switched from "Flash websites" to "HTML5" websites for my clients. I decided to use a (maybe unknown) CMS named "Website Baker". It is very easy to make templates for my clients, as you only have two PHP commands (echo getMenu(); and echo getPage(id);). It has also a very simple lay-out so it was not difficult to teach my clients how to edit their content. BUT, there is a big downside to this CMS; there is no support at all and there are not so many "add-ons" available on their website, which obligates you to write them all by your own.
A friend of mine told me yesterday I'd better change to WordPress, because for this CMS you have a good support and there are a lot of ad-ons available. I really consider to change but I got a few questions;
1) Is making a template (apart from the styling) a big deal in WordPress, compared to WebsiteBaker?
2) Can I use WordPress as a CMS? I read that it was rather something for “Bloggers” who regularly post and are in big need for a comment box under each post. Most of the time I only need 5-6 pages and a contact form.
3) Is the back-end-enviroment easy to understand? In other words, can I explain a non-geek how to work with it?
I know every CMS has it's own advantages and disadvantages, I only want to whether or not it is a good idea to change from WebsiteBaker to WordPress.
A big thanks in advance!!
I do not know about WebsiteBaker, but compared to other well known and popular CMS frameworks, developing templates have a much easier learning curve. It also depends on your expertise and previous experience.
There is a big notion among people that Wordpress is only for blogs. But, it can be customized for anything, thanks to thousands of available customized templates and plugins.
The back-end admin panel is pretty simple and definitely easier with much better learning curve than any other major CMS frameworks.
You should definitely look into it, even if you do not end up finally moving to Wordpress.
I think you can definitely use WordPress for your needs. I'm also not familiar with WebsiteBaker. But I can tell you what WordPress gives you compare with other popular frameworks or CMS.
When you plan for a WordPress site, Its better to avoid creating a new template for WordPress until you have good idea about their template system.Thousands of Free Templates available for WordPress. In other words its much easier to create a template compare to Joomla,Drupal or any other frameworks in WordPress.
Sure you can use WordPress as CMS , Now WordPress is not only used for blogging many shopping cart,news,magazine etc are running on WordPress, Keep in mind post comment box and such things have option to enable and disable on backend.For contact forms many WordPress themes comes with that.
Admin side(back end) is very easy to understand and easy to use.
In my opinion its better to change from WebsiteBaker to WordPress, Bcoz of thousands of Free extensions, Active Support Forum, thousand of templates etc.
Hope its make sense..
I have been using wordpress for the last few years and it has evolved tremendously. You can literally use wordpress for anything. The advantages that i found :
Immense SEO support.
Unlimited number of plugins(free/paid) that can be easily integrated
Unlimited number of templates to choose(both free and paid).
Community is excellent.
I have used wordpress for :
Blog
E-Commerce Website
CMS
Learning wordpress is also much simpler compared to other CMS/frameworks/e-commerce platforms.
If you switch from WebsiteBaker to a different CMS, it's worth taking your time to evaluate your options. I have used WebsiteBaker for many years and found the support excellent - usually answers and/or fixes within hours, often within minutes. A matter of luck maybe ... But that will be about the same with any community support.
Anyway, for some purposes, WebsiteBaker simply wasn't powerful enough, so me too, I had to find an alternative. I don't want to start a "mine's better than yours" war here, pretty pointless. Just don't spend a lot of time learning to work with a certain CMS just because someone told you so, or because it's currently most popular. To really understand a big CMS such as Wordpress, Joomla or Drupal can easily take months of intensive studies.
Find out what the strengths and weaknesses of the different CMS's are, find out what your needs are, and then make an educated guess of what's best for you.
I have used WebsiteBaker for years and years on dozens of client sites. It was ahead of many comparable CMS's (inluding Wordpress) for many years. But its development is almost stagnant, and there are only a handful of usable addons. Nowadays it's only usable for very simple semi-static sites, or for more complex sites with a LOT of custom coding added. In my opinion it's very much outdated and not suitable for modern, professional sites. It's a shame, because its templating system is VERY clean, simple and easy, as you know. Also the backend is easy enough for most clients who only want to do simple content stuff.
I moved away from it about a year ago. I just couldn't use it anymore for building modern client sites. I tried many other systems, but in the end I chose to switch to Wordpress. A professional site builder just cannot afford not to be able to use it, as it's the standard for small to midsized sites of all different kinds. It certainly is not aimed at blogging anymore, although you can still use it that way of course.
Wordpress is great and not so great at the same time. It is potentially powerful because of thousands of themes (what WebsiteBaker calls templates) and addons. You can do almost anything you want using these addons. But the core is very basic, so you'll end up spending much time searching for and trying out suitable addons. And Wordpress is really not as easy and user friendly as you may read all over the web, especially compared to WebsiteBaker. So the learning curve is steeper. But the web is filled with info and support, so whatever your support need may be, you'll almost always find help somewhere.
Do NOT try to create your own Wordpress theme, it is much more difficult than WebsiteBaker. There are thousands of themes, many of them free. Beware: do not use free themes from shady origin, they are probably filled with backdoors. In the official Wordpress repo there are many decent free themes that are clean and safe to use. There are also many commercial theme providers with amazing themes for nearly nothing.
So, I certainly recommend switching to Wordpress, even when you will have to put time and effort in finding your way around the system. And don't forget to update as soon as updates become available. You can updated from within the admin with 1 click. And use 1 or 2 good security plugins in each install. Wordpress sites are far more likely to be hacked than WebsiteBaker sites.

How do I migrate a PHP based website to Joomla?

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!

Should I use WordPress or go custom?

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.

Advice on building a distributed CMS?

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....

Which PHP open source shopping cart solutions have features that benefit me as the web developer?

There are hundreds of shopping cart solutions available for every platform, and all hosting plans come with several already installed. As a developer I understand that most of these are fairly similar from a user perspective.
But which ones are built with the developer in mind? For example, which ones have a decent API so that my custom code doesn't get mingled with the core code or which ones have a well thought through template system so that I can easily customize it for each new client?
osCommerce is one of those products that was badly designed from the beginning, and becomes basically unmaintainable as time moves forward. Addons are patches, and custom code modifies core. (Unless things have drastically changed since I last looked at it - judging by the version numbers, they have not).
While probably at a bit higher level than you seem to be asking, Drupal is a very attractive platform. It is a CMS at its base, and using ecommerce or Ubercart you can turn it into a store. With modules like CCK and Views you can build very sophisticated ecommerce sites (specialized product types, attributes) with very little coding, plus you get all the CMS tools (editing, access control, etc) for free. If you write your own modules, you can hook into almost anything in Drupal without touching the core code, and you get a ton of flexibility.
Though a lot of developers may not consider it simply because they're stuck in this view that they should write something from scratch, Drupal is a really great development platform for this sort of thing. There is definitely a learning curve to it, especially when you need to write modules for it, but the time it takes to learn and implement a site is still probably less than writing a very customized ecommerce site from scratch.
Magento would be a good choice. It is based on the Zend Framework and is massively open and customizable. Something a real programmer (as opposed to a designer/developer) could really work with.
Magento is pretty good, and really powerful, but getting to grips with how to go about extending/replacing things is pretty tricky. The codebase is massively flexible, and just about anything can be replaced or extended, but there's very little documentation on how to go about doing it.
There are plenty of 3rd-party addons, for different payment-providers and other things, and the built-in download-manager handles the installation of these, as well as upgrades to the core code, really well.
Compared to something like OSCommerce though, it wins hands down.
I've just discovered opencart which so far I am impressed with.
How about ZenCart? It's open source so you can read and modify the source directly.
There's also a decent template system.
What about prestashop ? It's based on Smarty and there's a detail explanation on how to write a module.
I think Megento is the best but it has very long list of fratures and matains many more tables which is some times creating problem. If you have to create very large shop must use megento unless use zen-cart. I have used almost all shopping cart but my first prefreance is megento for large site and zen-cart for alltype of shops.
osCommerce seems to be pretty popular, and advertises ease of integration as one of it's main features.
I would second the Magento suggestion. It has a modern code base and is designed with extensibility in mind. It also has multi-site, multi-language capabilities engineered in from the start. It's open source and seems to have a disciplined development team (with a MySQL AB -like business model) behind it .
Here is a good review of carts:
http://php.opensourcecms.com/scripts/show.php?catid=3&cat=eCommerce
Although the voting doesn't seem to reflect a lot of the feedback from the users, so I would suggest reading the comments to find out pros cons of each
Moltin is built with developers in mind and is purely an API. You can choose the parts of the API you want to integrate with whatever frontend you have. You also get a dashboard to manage your store if you want to use it.

Categories