The term "web applications" is used for "programs" on a website that perform a certain task which includes real-time processing of data. For instance the guest book, a search engine, a message board, a calculation form for insurance costs or a membership registration form or online, searchable address book are all web applications.
Many such applications today are stand-alone applications with their own administration system etc. Content management systems are also known for having such features but normally within a framework that integrates the functionality.
TYPO3 is such a system - a web application platform - which greatly helps not only applying and managing but also developing such applications! With the Extension Manager the installation and distribution is as easy as a mouse click and with the Kickstarter you can get started in 2 minutes with your own applications. If you are interested in these issues you should watch the "Episode" videos you will find in the Video page on typo3.org. In addition a number of tutorials exist on the issue of extension creation, for instance the one made my Oliver Hofmann. Notice that this is stuff for the higher level and since you are a beginner right now don't expect either to understand it nor to develop anything before you are a little more experienced with TYPO3!
Content management from the "Page Tree" paradigm?
When you categorize Content Management systems you find some which approach the issue from the "Application Framework" angle and others from the "Page Tree" angle. TYPO3 belongs to the latter part.
However this does not in any way compromise TYPO3’s status as a Content Management Application Framework. Rather the page tree approach enhances the ability to serve exactly this purpose by offering the logical division of the page tree as containers for such applications. In other words: You can have both a guest book, news system, user management form and insurance cost calculation in the same system without things getting mixed up because each applications would normally operate within the boundaries of a single page! All elements for the application are stored there, all transactions are performed by the same plugin on the same page id. Makes perfect sense and order!
So the page tree backbone becomes the strength of the system even when hundreds of web applications in the framework needs an organizational structure!
Extending TYPO3 by third party web applications?
Let’s now take a look at how we can extend TYPO3 by a web application which is not delivered with the system. For that purpose we will connect to the TER (TYPO3 Extension Repository) from the EM (Extension Manager) and import, install and apply a newsletter subscription system.
Generally you will go to typo3.org first and search for the application you need. When it has been found you will install it.
In the search for a newsletter subscription engine we found one which seems to fit the needs. Notice how the author has bothered to make documentation available! (#1). This is also very important for you to understand - that the documentation for TYPO3 is organized with each extension. In other words, where can you find all information related to the "Newsletter Subscription Module"? On typo3.org together with that extension! Therefore seeking documentation often requires you to first identify which extension you need help for - then go to that extension on typo3.org!
Import
In the EM you connect to TER and find the extension with the key "da_newsletter_subscription":
The connection takes a few seconds and then this list appears:
After some seconds the extension is imported and you will see this message if that happened without problems:
In the list of "Available extensions" you can now find the "Newsletter Subscription Module" under "Frontend Plugins":
Install it, accept the "Make updates" (which will automatically create the needed database tables and fields!!)...
In the list of "Loaded Extensions" you can now see the new extension has been added:
Now, how do I use it?
Well, it's such a luck that the author of the extension actually made a manual! So on typo3.org you can access the index table and there is a detailed guide to the creation of both the subscription form, the categories and how to get the list of subscribers out of the system again!
Of course I'm not going to repeat all that! There was a reason for writing the manual of the extension in the first place.
But in short I have created a new page, a content element, two categories and an age selector:
A little more than this has to be done (changes to the template) but you can see that on the video where the process is shown live. And of course it is documented in the Configuration section of the manual found on typo3.org.
The resulting form will look like this:
The final point is that the extraction of the subscriber list is simply provided by a backend module that followed the plugin in the extension:
As you can see, when the backend module is activated, the page containing the web application on the frontend is activated and the list is shown. This also tells us another interesting thing - we could add newsletter subscriptions to not just one page but any number of pages on the site and still have a perfect order and control over the situation. Thanks to the page tree framework!
For more information on advanced extracts of subscribers see the manual for the Newsletter Subscription Module.
Changing the language of the subscription form?
Many plugins are translated to languages other than English. However English is required to be the primary language of all plugins.
If a translation is available you can normally activate it by editing the "Setup" field of the template record of your website and insert this code line:
page.config.language = dk
This will activate the danish (dk) language and the form will now look like this:
You can read more about template records in the Template section of this tutorial. For now I'll just leave this example as is without any explanation since this a whole science in itself! So you will know about it later. For the actual steps I took, watch the video!