You can create database application with parent-child table relationship using code generator. You can do for unlimited relationship with cascading update and delete.
Here are steps to do:
Generate the code for each table both for list and maintenance using process type of gencode_dblist1 and gencode_dbmaint1.
You need to modify the configuration file (xml) of maintenance application of the parent. You need to add callback to the action function, and child table processing. To do this, you just copy the code from the child configuration.
You need to modify template file (html) by add new holder for child.
You need to modify child template file (html) to show only what you need.
You need to modify the configuration file (xml) of maintenance application of the child. You need to configure control to return action to manitenance application of the parent.
Now all is ready. No code changes. You can do all of above in no more than 10 minutes.
You can add new capability to Queen, Worker, and Kannel. You need to have queenProcess application (engine) for new Queen capability. You need to have workerProcess application (engine) for new Worker capability. You need to have kannelHandler application (engine) for new Kannel capability.
Mention above is the minimum requirement for adding new capability. Using this you will be provided a text editor to create related manifest to instantiate process/ handler.
If you want to have customized manifest maintenance you need to create a template and an engine for this task and languages as needed.
Below are web interface to add new capability for Queen, Worker, and Kannel.
You can transfer Process Capabilities between Queens using web interface. You can push Process Capabilities of a Queen to another Queen to be owned by another Queen.
You can transfer Process Capabilities between Workers using web interface. You can push Process Capabilities of a Worker to another Worker to be owned by another Worker.
You can transfer Kannel Capabilities between Kannels using web interface. You can push Kannel Capabilities of a Kannel to another Kannel to be owned by another Kannel.
Queen Capability:
Worker Capability:
Kannel Capability:
Write to which owner capabilities will be transferred and then click Go. Capabilities are now owned by to which push owner.
You can extend default user preferences to add additional preferences. You even not need to change the php code, you just create a class that extend user preferences class and included that file in configuration file.
You can extend user session variable (=preference) of application by creating class that extend 'CIISONLINE_UserSession' class. Prefix your class name with '0' (zero) and must has suffix with '.class.php' Place your new class under /System/Session/User.
You must register this session variable to the system as shown in the first statement of the example below.
Here is '0BackgroundImage.class.php' user session file for your example:
You will access the value of user session variable like below:
You can update your database automatically from remote database using http protocol even without coding. You can update database from different database engine. As for example you can update mssql from mysql or another.
Here are steps to do:
Create manifest of database_export Worker Process. Configure how exporting will be done.>
Create a scheduled to execute manifest periodically.>
Create manifest of file_synchronize Queen Process. Configure how to sync data between sites
Configure IPC on your server as appropriate for file_synchronize Queen Process.>
Create manifest of database_update Worker Process on your server. Configure how updating will be dane.>
Create a scheduled on your server to execute manifest periodically.>
After all of that, the only you do is executing all of that manifests.
Now, all of that working automatically to make continuous update.
You can use many templates for an application. You also can orchestrate many components/ applications using this methods. You do this by adding 'TemplateSpaceHolder' xml element under 'page' root xml.
LightArmy has default web access allowing access only to the root and 'Public' folder. And all other folders inside root are blocked for access using .htaccess. If you using apache web server you may not need to do anythings, your web structure has been secured.
For another please configure as above mention: giving access only to the root and 'Public' folder and you must block another folders.
Security Code Auto Registration is a way to register your application automatically for authorization. Administrator is the only user granted for access at this auto registration.
Using this feature, you will not must entered manually to database to configure user access right to application. LightArmy first will create a unique or supplied identity for your application and register it to LightArmy registry.
Now, you can configure user access right using web-based applications provided. LightArmy provides you two ways of: you can configure per user (user-based) or you can configure per application (application-based).
If you think to whom users application will be given access, you use application-based. If you thing what accesses you will give to a user, you use user-based.
User-based access right management:
Application-based access right management:
Analogy: You place your file on operating system (i.e. Linux, Windows , etc) at any folder and then you can configure access right of that application.
Note: You can create hierarchy of security code as you wish as you create file system hierarchy.
You create your page as any other pages. To cache your page, you just only add an attribute 'Cache' with value of 'true' for page xml element of your page configuration (*.pageconf file). For more custom cache, utilize two other attributes: CacheLifetime, and CacheKeys.
CacheLifetime attribute defines for how long time (in minutes), page cache is valid. CacheKeys attribute defines in what parameters (key), separate cache will be made for the same page. As for example, you have page to deliver user information that not change for a user but different from user to user, you can use user id for CacheKeys.
You can assign dynamic value to any parameters inside page configuration (*.pageconf file). You define your dynamic value using prefix 'fn::' for parameter value. As for example: fn::GetParam('context_id'). Any statement after prefix must can be evaluated and resulting a simple value.
You create your page as any other pages. To change your page as static page, you just only add an attribute 'Static' with value of 'true' for page xml element of your page configuration (*.pageconf file).
If you want to use parameter for your static page, you can utilize cache inside page configuration. There are some attributes related to cached page: Cache, CacheLifetime, and CacheKeys.
You do link help context-sensitive with application inside of its configuration (*.pageconf file). Inside 'page' xml root will present a 'processor' xml element. For static security code, you define a HelpContext attribute to do. Other, you create HelpContext element inside PageSecurityCode element under 'processor' xml element.
First you need to define a queue box with the type of Remote. Fill the queue server uri, username and password.
Now you can access queue as any other type of queue and completely transparent. You can put message, get message, delete message, and list messages using common way.
Here is an example of queue configuration using remote queue:
You need kannel SMS/WAP gateway to deliver SMS application using LightArmy. Here are your steps:
Install and configure Kannel SMS/WAP gateway. See Kannel documentation. You can use this for many services. Kannel website: http://www.kannel.org/
Create Kannel interface for LightArmy and configure the settings. You can use this for many services. Here is for an example:
Create manifest of kannel handler you what (direct reply, stomp, or queue) If you choose stomp you need ActiveMQ queue server. ActiveMQ website: http://activemq.apache.org/ If you choose queue you need queue. Here is for an example:
Create manifest of Kannel Service as appropriate. Use kannel_stompservice for stomp handler. Use kannel_queueservice for queue. Here is for an example:
Create database for logging messages as you need.
Create manifest of Kannel Sender as appropriate. Use kannel_stompsender for stomp handler. Use kannel_queuesender for queue. Here is for an example:
If you want to know the status of delivery, create manifest of Kannel delivery status as appropriate. Use kannel_stompdeliverystatus for stomp handler. Use kannel_queuedeliverystatus for queue. Here is for an example:
Create your responder for your service. Responder is the only program (code) you need to create for your specific purpose. You can use any available responder if appropriate. Here is for an example:
After all of that, you just start all of that manifests. Now SMS service is available for serving.
If you want to change your service you may only change the last step and make/change code as appropriate or even no programming needed.
Note: You can integrate SMS application with any other applications easily. You can shutting down computer using SMS as for example. Another example is sending you an SMS if a process is terminated. You can also sending SMS by email and so on.
Parameterized component (application) is component or application than can be customized using parameter(s). Behavior of component or application will be different for different parameter(s) in used.
Here is an example of parameterized component,CIISONLINE_FileEditor, and its usage on web application as an example:
There are five files to render help: contents, index, keywords, name and overview. You will access the contents using context id like this: context_id=<root help>.ManifestProcessMaint.Queen.email_autoresponse. Here are as that examples: