TicaTK is a GUI toolkit written in Javascript on the client side and in PHP on the server side. To develop a GUI with TicaTK, you just have to manage PHP objects. TicaTK handles rendering, synchronisation and network communication.
Goal of this quick start : Allowing to quickly install TicaTK and the Tour Manager as an example application. Once you have it running, you have a working base that should allow to proceed to some experimentation.
Point your browser on demo.php (throught the web server of course)
That's all.
Let's see how all this stuff is working internaly. Note : all xml management are done transparently by TicaTK and described below for reference.
Root element of a xml tree describing the GUI. This tree is first created on the server and, at startup, duplicated on the client. Any change made on the GUI will be reflected on it.
Root element of a xml tree describing changes on the GUI. Its primary use is to ensure Interface synchronisation between the client and the server. An Execute is a chain of Action that is sent between the server and the client.
Primary Actions allows to manipulate the Interface by adding, deleting and updating elements : acmrginterface, acclose and acsetattr, respectively. Other Actions are more specific as acloadxml which will make server request or acmsgbox which will display a message box to the user.
As Execute, an ActionDef is a chains of Actions. Main difference is that ActionDefs are parts of the Interface and, most of the time, will be triggered by an user event.

All elements contained in the Interface are called widgets. Most of
them are visibles but somes, like ActionDef or Timer, haven't any
visible conterpart.
The following figures shows relation between existing widgets :

Please refer to the PHP API Documentation for more information about
individual widgets.
Server side
Client side
As a toolkit, TicaTK is not an independant application so the following steps are only an approach to install and use TicaTK in your application, not the only way to do it.
TicaTK doesn't require any specific PHP configuration. It should handle correctly server configured with "register_global = off" or various magic quote settings. Any exception to this rules should be considered as a bug and reported as it.
TicaTK heavely relies on the PHP session management system. For now, only cookies based session are supported.
The distribution php directory content must be in the php "include_path" directive. The ticatk.inc file defines a constant "TTK_INCPATH" (default to "ticatk") that define the base path to access TicaTK php classes definitions. This file also load required base classes.
TicaTK require some html files to be able to run. In this section, we will take the TicaTK Tour application as example.
An index file which will define the required frameset.
The frameset must, at least, define two frames. One must be called
"mainFrame" and should be visible. The other must be named "statusFrame"
and is tipically hidden.
Example :
Loaded in the main frame, this file will load TicaTK javascript files and start the application.
A dummy file needed to fill browser request at the frameset creation.
Once TicaTK is loaded on the client side, this file will be loaded. TicaTK expect that this file sent the starting Interface. This file is requested only once at the application startup, so you can make any initialisation needed here.
As all this application's ActionDef link to handle_tour.php, this file will handle all request to the server.
For now, see the API Doc and examples.
Despite the fact that the TicaTK server side does his best to enforce what's the client sends, it has to accept Interface changes. So, always consider that what you get from TicaTK may be forged. Do not rely on object's id without further check. In short, handle TicaTK objects the same way as you process direct client requests : don't trust them.
TicaTK complexifies communication between clients and servers but do
not add any security layer. This last point may change in the future.
Only some hints for now. We can create custom widgets that match your specific needs : contact us for more information.
The easiest part : add your class in widgets/mywidget.inc. You have to call it TTK_mywidget where mywidget matches the xml element tag name you want to use. Extend your class from TTK_Widget, check existing widgets...
Your new widget has to be listed in jsdep.inc. No need to modify any
other file.
Look at existing widgets.