Web Application Integration with other applications - php

I have a web application that requires
Blog
Forum
Chat support etc
Now my web application have different functionality but these above are additional value added services that we provide integrated with our application.
I do not want to write application for them but rather use standard application like wordpress for blog, phpBB for forum, crafty for live chat support.
Is there any way in which I have use common database and interface to provide such functionality with-in an web application via integration.
Typically I want when user A is registered in my app, he will be a user for all the other applications also and can access all functionality with common log in & session.
Note: My application is developed using java, struts2, spring etc while these apps are in php mostly.

You can install a PHPBB chat plugin for the PHPBB forum, and then integrate the PHPBB with wordpress, using wordpress plugin. There are few wordpress plugins to integrate with PHPBB forum.
If you are not limited to PHPBB, you will find many wordpress plugins to integrate with different PHP based forums, such as mybb, pressbb etc.
This way you can integrate all three components together.

Related

How to create an API-centric application (more specifically: for HMVC in CodeIgniter)

Background:
I am working on a web application, that I plan to launch with iPhone and Android versions in the near future, and I have some questions about developing an API for use by the different front-ends.
I Started with This:
I was reading this TutsPlus tutorial, which talks about creating an API-centric web application, meaning that all of your browser calls and smartphone app calls are routed through the API.
What especially got me excited, was this statement in the tutorial from Twitter:
One of the most important architectural changes is that Twitter.com is now a client of our own API. It fetches data from the same endpoints that the mobile site, our apps for iPhone, iPad, Android, and every third-party application use.
The above statement reflects, what I would ideally like to create.
Then I Saw This:
I found this TutsPlus tutorial, which talks about, how to build a REST API for CodeIgniter. This was good, because I am developing my application in CodeIgniter, using the Modular Extensions plugin - HMVC, and I thought it would be perfect for my purposes.
The only thing, that I'm somewhat lost in, is the way Phil Sturgeon seems to suggest to create the API. He suggests to have all of your front-end code modules completed and then create an API for each of the modules in their respective directories (not necessarily in that order). This would be fine if I didn't want it to be API-centric.
And I Want to Know How to Do This:
How should I proceed to get a blend of both tutorials:
API-centric application that can be used by a browser application as well as separate mobile applications
REST API for CodeIgniter (with HMVC modules)
Should I:
Just follow the API-centric tutorial and try to tailor it to my needs?
Follow the CodeIgniter-specific tutorial and use Phil Sturgeon's advice for how to implement it with HVMC?
A combination of both?
Neither?
Take a look at Eating your own Dogfood by Nick Jackson. These are slides from CICONF 2012 where he details how this all works.
Building your API first is a great idea, then your application can use the API to fetch the data itself. This is of course a little slower as you're adding a HTTP request on data, but locally its not too bad and if you use HMVC to make the request it's even quicker.
In the tutorial I didn't get into HMVC because it's an extra subject, but it can be awesome for adding modular API's. In some simple applications I just make a /api folder like the tutorial suggested but PyroCMS Professional has an API module and a sexy route to allow modular API stuff:
$route['api/([a-zA-Z0-9_-]+)/(:any)'] = '$1/api/$2';
$route['api/([a-zA-Z0-9_-]+)'] = '$1/api/index';
This means I can have a "api.php" controller in every module and still use the /api/controller/method syntax or even /api/controller if you have function index_get().
I would strongly suggest you grab PyroCMS Professional for this feature. Yep you gotta pay, but it handles user key generation, authorisation, logging, etc all out of the box and handles your website too.

How would I integrate existing zend FW apps into 1 application?

An existing 8+ year old application is being migrated from a self-contained website to a webservice-oriented architecture to allow among other things, external parties access to the calculations and data within the application.
The application allows visitors to access insurance-related information, calculate price quotes and contact agents.
The original logic of the application has been extracted from the main application to a SOAP service - so far, so good.
Based on in-house knowledge of Zend FW, the choice was made to drop the legacy code with many downsides and move to a more robust and community-backed framework - Zend.
An initial Zend FW app has been built that consumes the WSDL and allows searching and displaying of customers. After that was finished we wanted to integrate external applications/modules for components such as a basic (!) cms, mass-mailings, polls etc.
As we consider those components essential for the end-product but not our own core-product, we thus want to use external applications for this.
However - looking at e.g. tomatocms and digitalus etc., they seem to require us to build our product into theirs - and we want it the other way around. CMS pages are the exception, and not the rule.
Integrating authentication among these applications seems very difficult, as each seems to want to be 'the' application.
TL;DR:
What would be the best solutions to integrate a CMS or other apps into an existing/in progress zend FW app?
I think the best solution for you is to create a structure for Modules/Plugins where you set a pattern of use and you will make your application understand these modules created following the specifications above.
With this you allow anyone to be creating or developing models desaclopados their application.
I think this is a good example with your Wordpress plugins. Anyone can create and embed its functionality within the application page, but of course you can make in its API limitations, controlling what you want.

MySQL, PHP based website statistics

Trying to integrate something like tracewatch into admin panel of my PHP, MySQL based website.
But I need 1 page solution, not heavy system like twatch with user management.
I wonder, is there any simple php class or mini app for this purpose (want to get something like this on admin page)?
There are bunch of tracewatch alternatives. Here are somes:
Piwik
Piwik is an open-source Web analytics application developed using PHP and MySQL. It has a "plugins" system that allows for utmost extensibility and customization. Install only the plugins you need or go overboard and install them all – the choice is up to you. The plugins system, as you can imagine, also opens up possibilities for you to create your own custom extensions. This thing’s lightweight – the download’s only 1.9MB.
FireStats
FireStats is a simple and straight-forward Web analytics application written in PHP/MySQL. It supports numerous platforms and set-ups including C# sites, Django sites, Drupal, Joomla!, WordPress, and several others. Are you a resourceful developer who needs moar cowbell? FireStats has an excellent API that will assist you in creating your own custom apps or publishing platform components (imagine: displaying the top 10 most downloaded files in your WordPress site) based on your FireStats data.
JAWStats
JAWStats is a server-based Web analytics application that runs with the popular AWStats (in fact, if you’re on a shared hosting plan – AWStats is probably already installed). JAWStats does two things to extend AWStats – it improves performance by reducing server resource usage and improves the user interface a little bit. With that said, you can’t go wrong with just using AWStats either if you’re happy with it.
SimpleStats
Simple Stats is a PHP based, web analytics utility designed to enable you in monitoring visits on your website. It is very simple to install, and it's interface goes straight to the important facts such as the Google search queries (understand "the search expressions in Google") that your visitors might have used to browse to your website.
You could try Piwik. You can access features using an API or embed a widget via iframe.

Need to Assess whether Joomla is good fit for Web Application Requirement

I have a web application that needs to be built using PHP/MySQL. The application will require documents to be generated from data in the MySQL database. Such documents will be printed and/or emailed and user will be prompted to run a daily print/email job based on business logic.
This application functionality needs to be made available to individual users such that they can upload data, have the system prompt them as to whether letters/emails are to be generated. The site also needs to be able to support a bulletin board, online live training events and will have admin area as well.
Question: Should a hybrid solution be developed such that the data management (upload functionality, and letter production) be a separate part of the site that authenticated Joomla users can access? That is, the document management functionality would exist separately from Joomla, but be called from within it via a link in the Joomla sitemap. Alternatively, should custom modules be developed from within Joomla to accomodate the document management functionality?
Thanks so much for your input!!
Joomla could do the job for you but based on the amount of things you need that differ from a normal Joomla site I would use a framework to build from instead of a CMS. I say this because it sounds like you need a lot more than just a CMS and it can be more work if you try making Joomla do things it wasn't designed to do. In my opinion Joomla is for "web sites" and not as much for "web apps". Of course those terms have overlap but it sounds like you would be better off with a Framework to go off of instead of working around Joomla to get what you want. However if the site is already done in Joomla it may be less work just to make a Joomla add-on.
Since you have to use PHP I would definitely recommend CakePHP for your framework. As for an integrated forum try looking at the links in this post. If that doesn't work for you, try out Vanilla forums (vanillaforums.org) which are very clean and may be easier to integrate into CakePHP than some of the other PHP forums.
If you decide to use CakePHP, check out Cake Forge to see if you can find anything there to make your life even easier.
If you were to use Joomla, the upload functionality and letter production would be written as a custom component. You can write the component to make sure that the current user is authenticated before generating the documents. I would not develop this as a separate application alongside Joomla; it would be easier to write it as a component.
Many forums and forum bridges are available for Joomla, so that would be something you wouldn't have to write.
I'm not sure what kind of live event support you're looking for.

phpBB3 Developing - Where to start?

I'm trying to start building a whole application using phpBB3 user system as a base using CodeIgniter framework. However before starting I would like to hear a piece of advice from any phpBB3 Developer out there.
I've been developing for Wordpress and Drupal. But recently I decided I would build up something fit to my needs instead of using a premade application.
The application is going to include:
Article System
Video Streaming
Wiki
User editable Profiles
and much more
To any phpBB3 Developer :
Where to start?
Any recommendation you could give me?
Any tips?
I've only used phpBB3 as a forum system, but you should definitely check out the phpBB Development Wiki, particularly the API section.
It has all sorts of neat things, like how to add custom pages and use phpBB's permission system.

Categories