Explore the introductions below and discover what you
can do with Helma and Javascript on the server-side.



HopObjects extend the standard Javascript object with Helma-specific properties and functions. They are the central building blocks that allow you to leverage the application framework Helma provides.

The main HopObject of every application is the "root" object. Every HopObject can have a collection of attached additional HopObjects. Each requested URL is resolved to a particular HopObject according to these collections.

In the "welcome" application for example, a request to http://helma.serverjs.org/first/second/ will be resolved by checking the "root" object's collection for a HopObject named "first" and the "first" object's collection for a HopObject named "second".

While this path resolution is by default performed based on the ID of the attached HopObjects, collections can be custom configured to use another property as access name. In this example, the HopObject prototype is configured at ./apps/welcome/code/HopObject/type.properties to use the "name" property for this purpose.

_children = collection(HopObject)
_children.accessname = name

When a new HopObject is added to such a collection, it is automatically stored in Helma's embedded XML database. To see a detailed example of how this works, go to http://helma.serverjs.org/first/ and add additional HopObjects.

Documentation of HopObject functions and built-in properties: