|
|
(10 intermediate revisions not shown.) |
Line 1: |
Line 1: |
| | | |
- | <p>This document describes the key aspects of DLXS User Interface technology. It is intended as a fairly high level overview. It applies to DLXS Image, Text, and FindAid Classes, but not Bib Class which lags behind in support for XML and XSL. </p>
| |
| | | |
- | <p>It is beyond the scope of this documentation to teach the fundamentals of Perl, XML, XSLT and HTML. You may find you can comprehend most of this documentation even if you are not very familiar with some of the technologies. We will start with a high level view, increasing the complexity as we go. </p>
| + | ===Text Class Behaviors Overview=== |
- | | + | |
- | <p>The diagram below illustrates how a CGI takes an XML template, populates it with data, and transforms it to HTML using an XSL stylesheet.</p>
| + | |
- | | + | |
- | [[Image:dlxsxmlxslhtml.png]]
| + | |
- | | + | |
- | | + | |
- | <p>Templates vary depending on the purpose of the page. A search form page has different requirements that a search results page, and the templates reflect this. </p>
| + | |
- | | + | |
- | | + | |
- | | + | |
- | <p>Above you can see the generic form of a Processing Instruction. PIs can optionally have modifiers, though most do not. Modifiers pass additional information to the CGI, affecting the replacement. </p>
| + | |
- | <p>Processing Instructions are usually wrapped by XML tags for structure and context. Some PIs get replaced by small amounts of data, such as the word "true" or "false", while others are replaced by large amounts of data, sometimes containing additional XML tags.</p>
| + | |
- | <p>The diagram below shows a snippet of the XML template. </p>
| + | |
- | <p>
| + | |
- | </p>
| + | |
- | <p>Next you see the snippet of the XML after Processing Instructions have been replacedby the CGI. </p>
| + | |
- | <p>
| + | |
- | </p>
| + | |
- | <h3>
| + | |
- | </h3>
| + | |
- | <p>XSL is the programming language used to transform the XML to HTML. An XSL program is more commonly called an XSL Stylesheet. Each XML file specifies the XSL Stylesheet to be used for transformation. It is common in DLXS for one stylesheet to incorporate several other stylesheets stored in separate files (for the convenience of sharing code). More on this later.</p>
| + | |
- | <p>
| + | |
- | </p>
| + | |
- | <p>The diagram below shows the snippet of XSL that transforms the XML above to HTML. </p>
| + | |
- | <pre>
| + | |
- | </pre>
| + | |
- | <h4>
| + | |
- | </h4>
| + | |
- | <p>HTML is the format output by the CGI to the browser. It is the result of applying the XSL Stylesheet to the XML.</p>
| + | |
- | <p>
| + | |
- | </p>
| + | |
- | <p>The diagram below shows the snippet of HTML generated by transforming the XML with XSL. </p>
| + | |
- | <p>
| + | |
- | </p>
| + | |
- | <h3>
| + | |
- | </h3>
| + | |
- | <p>All text that appears as part of the user interface is stored in an XML file. Phrases are assigned keys, and the keys are used in the XSL to retrieve phrases. The potential exists to have interfaces in different languages. A default map resides in the web directory for each Class and is called langmap.en.xml. The CGI incorporates the map file into the XML file. </p>
| + | |
- | <h3>
| + | |
- | </h3>
| + | |
- | <p>Javascript is another key technology that plays a role in the user interface. Like CSS, Javascript is applied by the browser, not the server.</p>
| + | |
- | <h3>
| + | |
- | </h3>
| + | |
- | <p>DLXS uses CSS extensively to further refine the layout of the HTML. Cascading Stylesheets are very different from XSL Stylesheets. XSL Stylesheets affect the structure of the HTML document (e.g., the hierarchy of the elements). Cascading Stylesheets affect the display of the HTML structure. CSS is great for formatting with fonts and colors, and it can even be used to show or hide a portion of the HTML. CSS is applied by the browser, not the server.</p>
| + | |
- | <h3>
| + | |
- | </h3>
| + | |
- | <p>Some of the most common customizations can be done in Collection Manager. For example, the title of the collection. Image Class can be customized quite extensively in Collection Manager. For example, the display of data fields can be configured extensively. Customizations are relatively easy to make in Collection Manager. Use it whenever possible. </p>
| + | |
- | <h2>
| + | |
- | </h2>
| + | |
- | <p>Fallback is a mechanism used by DLXS CGIs to handle the task of selecting user interface files (e.g., XML templates) based on whether the end user is working at the class, group, or collection level, and whether user interface customizations have been made.</p>
| + | |
- | <p>DLXS allows collection specific user interface customizations. Similarly, groups of collections can share a custom interface. The DLXS Classes each have a default interface that is used if there are no customizations at the group or collection levels. </p>
| + | |
- | <p>When the CGI needs a user interface file, for example, search.xml for the text class search form, the Fallback mechanism considers a number of factors when choosing a file.</p>
| + | |
- | <ul>
| + | |
- | </ul>
| + | |
- | <p>
| + | |
- | </p>
| + | |
- | <p>
| + | |
- | </p>
| + | |
- | <p>All user interface files are stored in the file system under $DLXSROOT/web. </p>
| + | |
- | <p>There is a directory for files shared across the classes called "lib" and located at $DLXSROOT/web/lib. </p>
| + | |
- | <p>Each class has a directory in "web".</p>
| + | |
- | <ul>
| + | |
- | </ul>
| + | |
- | <p>If a group or collection requires customization, it may be necessary to create a web directory based on the group or collection ID. </p>
| + | |
- | <ul>
| + | |
- | </ul>
| + | |
- | <p>
| + | |
- | </p>
| + | |
- | <hr width="90%" size="1"/>
| + | |
- | <p>
| + | |
- | </p>
| + | |