The Zenoss user interface is built on top of Zope. Zope provides a framework on which progressively more sophisticated functionality can be built. You can layer the user interface using multiple technologies, as well as mix and match:
HyperText Markup Language (HTML)
Cascading Style Sheets (CSS)
Zope 2, Zope Page Templates (ZPT) and the Template Attribute Language (TAL)
ZPT and Macro Expansion for TAL (METAL)
HTML is the most basic formatting language available on the Web. Some version of HTML is understood by every Web browser. HTML is, in practice, a limited variant of eXtensible Markup Language (XML), which divides up a page into elements (designated by tags such as title, head or h3) and content.
If you are converting an existing Web page, verify it by using the free HTML validation service at:
Web browsers take HTML and convert elements such as h1 (a heading at level 1) and convert them into what each browser thinks is appropriate for that element. The way a page displays is different on each browser. Style sheets are a way for the Web page designer to tell the browser that a certain element should have a certain style, such as font type, weight, or color.
The 'cascading' part of CSS means that stylesheets can build on each other. Practically, that means that the order in which you load CSS information can lead to different results.
Zope 2 is essentially a Web server with brains. The brains part are the Python programming language and the object-oriented database (ZODB), which are used to create Web pages in a structured way.
Keep in mind when looking at Zope material that you need Zope 2, not Zope 3.
Zope Page Templates are in essence HTML pages that are well-formed, with extra XML attributes (the bits after the element name in-between the < and > characters). The extra XML bits (attributes) are not a part of any HTML standard and are ignored by HTML editors, meaning that ZPT pages live happily with HTML. These attributes and the programming functionality that they deliver are called the Template Attribute Language (TAL).
The TAL attributes allow you to add dynamic content by using information from inside the Zope database (ZODB). From a Zenoss perspective, this allows you to write a query that you can use to build a table, or show different items depending on which objects or devices exist in a particular state. In other words, TAL is the Zope way of accomplishing what you would normally need to do in a CGI inside of a plain Web server like Apache.
It should be noted that inside of TAL it is also possible to use a restricted subset of Python. The restrictions include not being able to load certain standard libraries, as well as operations like reading and writing to disk. This is done intentionally for security reasons.
TAL is the programming language of Zope, allowing you to use parts of the database and programatically work with data. Because TAL is hidden inside HTML, there is no way to reuse blocks of HTML and TAL for your site just by using TAL. Instead, macro expressions are used to make reusable blocks of HTML and TAL.
XMLHttpRequest() function to retrieve data from a server and presents the returned XML document in a interactive way to the user.