Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../index.htm#lansa/wamengt4_0645.htm]
You are here:

...

This

...

step

...

analyses

...

the

...

structure

...

of

...

the

...

layout

...

XSL,

...

to

...

explain

...

what

...

the

...

main

...

parts

...

of

...

the

...

program

...

are

...

doing.

...

1.  WAMs

...

use

...

the

...

XSL

...

Transformation

...

language

...

(XSLT)

...

to

...

process

...

the

...

XML

...

output

...

by

...

a

...

WebRoutine

...

to

...

produce

...

a

...

web

...

page

...

...

an

...

XHTML

...

document.

...

You

...

can

...

learn

...

more

...

about

...

XSL

...

at

...

the www.w3schools.com

...

 web

...

site.

...

The first

...

few

...

lines

...

of

...

code,

...

define

...

the

...

XSL

...

namespace

...

standards

...

used

...

in

...

the

...

document.

...

<?xml version="1.0" encoding="UTF-8"?>

...


<!-- (c) 2003, 2011 LANSA                      -->

...


<!-- XHTML WAM Layout                          -->

...


<!-- $Revision:: 12                          $ -->

...


<xsl:transform version="1.0" exclude-result-prefixes="lxml wd tsml"

...


               xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

...


               xmlns:lxml="http://www.lansa.com/2002/XML/Runtime-Data"

...


               xmlns:wd="http://www.lansa.com/2002/XSL/Weblet-Design"

...


               xmlns:tsml="http://www.lansa.com/2002/XML/Generation-Metadata"

...


               xmlns="http://www.w3.org/1999/xhtml">

...

     XSL

...

code

...

such

...

as

...

 <xsl:if

...

.

...

.

...

.>

...

 has

...

a

...

namespace

...

of

...

 xsl

...

 and

...

is

...

a

...

standard

...

defined

...

by

...

the

...

World

...

Wide

...

Web

...

consortium.

...

     XSL

...

code

...

such

...

as

...

 <wd:external-resources.

...

.

...

.>

...

 has

...

a

...

namespace

...

of

...

 wd

...

 and

...

is

...

LANSA

...

defined

...

standard.

...

2.  The

...

<xsl:import

...

.

...

./>

...

statements,

...

import

...

other

...

weblets

...

into

...

this

...

layout:

...

<!-- Standard imports                                       -->

...


   <!-- Import the weblet XSL files used by your layout here   -->

...


   <!-- e.g.                                                   -->

...


   <xsl:import href="std_variables.xsl" />

...


   <xsl:import href="std_types.xsl" />

...


   <xsl:import href="std_hidden.xsl" />

...


   <xsl:import href="std_style_v2.xsl" />

...


   <xsl:import href="std_script.xsl" />

...


   <xsl:import href="std_messages.xsl" />

...


   <xsl:import href="std_menubar.xsl" />

...


   <xsl:output method="xml" omit-xml-declaration="yes" encoding="UTF-8"

...


               indent="no" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"

...


               doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />

...

When the

...

messages

...

and

...

menu

...

bar

...

weblets

...

were

...

added

...

to

...

this

...

layout

...

in

...

the

...

graphical

...

editor,

...

import

...

statements

...

for

...

std_messages.xsl

...

and

...

std_menubar.xls

...

were

...

added.

...

3.  The

...

XSL

...

statements

...

which

...

begin

...

 wd:

...

 are

...

LANSA

...

weblet

...

design

...

statements

...

which

...

are

...

used

...

within

...

LANSA's

...

graphical

...

web

...

page

...

editor

...

(actually

...

an

...

XSL

...

editor).

...

 wd:

...

 is

...

a

...

LANSA

...

namespace.

...

<wd:external-resources>

...


      <wd:style name="XWT08J" />

...


      <wd:style name="XWT08L101" />

...


      <wd:style name="IIILAY01" />

...


   </wd:external-resources>

...


   <wd:definition>

...


      <wd:default-theme />

...


      <wd:group name="Layout Weblets" />

...


   </wd:definition>

...


   <wd:template name="iii_layout">

...


      <wd:description icon="icons/std_layout.ico">

...


         <wd:name lang="ENG">iii Acme Layout</wd:name>

...


      </wd:description>

...


   </wd:template>

...

The external

...

resources

...

will

...

define

...

links

...

to

...

external

...

style

...

sheets

...

to

...

be

...

used

...

by

...

web

...

pages

...

based

...

on

...

this

...

layout.

...

These tags

...

also

...

provide

...

a

...

name,

...

description,

...

group

...

name

...

and

...

icon

...

to

...

be

...

used

...

for

...

this

...

weblet

...

in

...

the

...

Repository.

...



Image Added

4.  xsl:templates

...

are

...

like

...

subroutines.

...

They

...

can

...

be

...

called,

...

passing

...

parameters

...

into

...

the

...

template.

...

<xsl:template name="iii_layout" wd:role="std:layout">

...


      <xsl:param name="window_title"

...


                 select="$lweb_context/lxml:webapplication-title"

...


                 wd:type="std:mtxt_variable" wd:tip_id="" />

...


      <xsl:param name="has_form" select="true()" wd:type="std:boolean"

...


                 wd:tip_id="" />

...


      <xsl:param name="show_title" select="true()" wd:type="std:boolean"

...


                 wd:tip_id="" />

...


      <xsl:param name="title_text" select="$lweb_context/lxml:webroutine-title"

...


                 wd:type="std:mtxt_variable" wd:tip_id="" />

...


      <xsl:param name="javascript_files" select="''" wd:tip_id="" />

...


      <xsl:param name="jQueryNoConflict" select="false()" wd:type="std:boolean"

...


                 wd:tip_id="" />

...


      <xsl:param name="css_files" select="''" wd:tip_id="" />

...


      <xsl:param name="output_charset"

...


                 select="/lxml:data/lxml:server-instructions/lxml:client-charset"

...


                 wd:tip_id="" />

...


      <xsl:param name="backcompat_theme" select="false()" wd:type="std:boolean"

...


                 wd:tip_id="" />

...

When you

...

compile

...

a

...

WAM

...

using

...

this

...

Layout

...

Weblet,

...

the

...

generated

...

WAM

...

layout

...

uses

...

the

...

layout

...

weblet

...

specified.

...

When

...

you

...

then

...

design

...

a

...

WebRoutines's

...

web

...

page,

...

these

...

parameters

...

will

...

be

...

shown

...

on

...

the

...

 Details

...

 tab

...

and

...

could

...

be

...

set

...

at

...

design

...

time

...

and

...

or

...

at

...

runtime.

...



Image Added

5.  The

...

XHTML

...

definition

...

begins

...

here.

...

Note

...

that

...

an

...

 xsl:if

...

 is

...

testing

...

the

...

value

...

of

...

an

...

environment

...

language

...

variable

...

($lweb_ISO_language).

...

Further

...

down

...

another

...

 xsl:if

...

 refers

...

to

...

 $window_

...

title which

...

is

...

the

...

value

...

of

...

a

...

boolean

...

input

...

parameter.

...

<html>

...


         <xsl:if test="$lweb_ISO_language != ''">

...


            <xsl:attribute name="xml:lang">

...


               <xsl:value-of select="$lweb_ISO_language" />

...


            </xsl:attribute>

...


            <xsl:attribute name="lang">

...


               <xsl:value-of select="$lweb_ISO_language" />

...


            </xsl:attribute>

...


         </xsl:if>

...


         <head>

...


            <title>

...


               <xsl:value-of select="$window_title" />

...


            </title>

...


            <xsl:choose>

...


               <xsl:when test="$backcompat_theme">

...


                  <xsl:call-template name="style">

...


                     <xsl:with-param name="theme_css_filename" select="''" />

...


                     <xsl:with-param name="css_files" select="$css_files" />

...


                  </xsl:call-template>

...


               </xsl:when>

...


               <xsl:otherwise>

...


                  <xsl:call-template name="style">

...


                     <xsl:with-param name="theme_css_filename" select="'none'" />

...


                     <xsl:with-param name="css_files" select="$css_files" />

...


                  </xsl:call-template>

...


               </xsl:otherwise>

...


            </xsl:choose>

...


            <xsl:call-template name="script">

...


               <xsl:with-param name="javascript_files"

...


                               select="$javascript_files" />

...


               <xsl:with-param name="trap_script_errors" select="false()" />

...


               <xsl:with-param name="jQueryNoConflict"

...


                               select="$jQueryNoConflict" />

...


            </xsl:call-template>

...


         </head>

...

This code

...

defines

...

the

...

contents

...

of

...

the

...

head

...

area

...

of

...

the

...

web

...

page.

...

The

...

XSL

...

logic

...

is

...

generating

...

XHTML

...

based

...

on

...

the

...

parameters

...

provided

...

at

...

runtime.

...

6.  Your

...

page

...

content

...

is

...

output

...

within

...

the

...

HTML

...

<body></body>

...

tags.

...

<body class="acme_layout">

...


            <xsl:variable name="containerName">

...


               <xsl:choose>

...


                  <xsl:when test="$has_form">

...


                     <xsl:text>form</xsl:text>

...


                  </xsl:when>

...


                  <xsl:otherwise>

...


                     <xsl:text>div</xsl:text>

...


                  </xsl:otherwise>

...


               </xsl:choose>

...


            </xsl:variable>

...


            <xsl:element name="

...

{$containerName

...

}">

...


               <xsl:attribute name="id">lpage_container</xsl:attribute>

...


               <xsl:if test="$has_form">

...


                  <xsl:attribute name="onsubmit">return _HandleDefaultSubmit(this);</xsl:attribute>

...


                  <xsl:attribute name="method">post</xsl:attribute>

...


                  <xsl:attribute name="name">LANSA</xsl:attribute>

...


                  <xsl:attribute name="action">

...


                     <xsl:value-of select="$lweb_context/lxml:action-request" />?</xsl:attribute>

...


                  <xsl:call-template name="hidden_fields" />

...


               </xsl:if>

...

The xsl:choose

...

 logic

...

(like

...

an

...

RDML

...

CASE

...

loop)

...

outputs

...

a

...

 <form>

...

 tag

...

or

...

a

...

 <div>

...

 depending

...

on

...

the

...

variable

...

$has_form.

...

 Has_form

...

 is

...

a

...

property

...

of

...

the

...

layout,

...

and

...

is

...

shown

...

on

...

the

...

 Properties

...

 sheet

...

on

...

the

...

 Design

...

 tab.

...

7.  This

...

section

...

is

...

largely

...

the

...

code

...

which

...

you

...

provided

...

and

...

represents

...

the

...

design

...

of

...

your

...

web

...

page,

...

when

...

combined

...

with

...

the

...

necessary

...

stylesheet.

...

<div id="acme_header">

...


                  <span style="margin-left:10px; padding-top:0px">

...


                     <h1>Acme IT Services</h1>

...


                  </span>

...


                  <br />

...


                  <span style="margin-left: 20px">

...


                     <h2>Software for Business</h2>

...


                  </span>

...


                  <div id="lpage_navBar">

...


                     <xsl:call-template name="std_menubar">

...


                        <xsl:with-param name="menu_items"

...


                                        select="document('')/*/lxml:data/lxml:menu

...

[@id='E449B9B6900F4392AF69DE5097BB506E'

...

]" />

...


                        <xsl:with-param name="name"

...


                                        select="concat('o', position(), '_LANSA_17914')" />

...


                        <!-- <xsl:with-param name="listname" select="?" /> -->

...


                        <!-- <xsl:with-param name="orientation" select="?" /> -->

...


                        <!-- <xsl:with-param name="show_arrows" select="?" /> -->

...


                        <!-- <xsl:with-param name="submit_selected_to" select="?" /> -->

...


                     </xsl:call-template>

...


                  </div>

...


               </div>

...


               <div id="acme_footer">

...


                  <span style="margin-left: 10px; padding-top:5px">© Acme Ltd 2011</span>

...


               </div>

...


               <div id="acme_sidebar"></div>

...


               <div id="acme_content">

...


                  <div id="acme_messagesContainer">

...


                     <xsl:call-template name="messages">

...


                        <!-- <xsl:with-param name="target_window_name" select="?" /> -->

...


                     </xsl:call-template>

...


                  </div>

...


                  <xsl:if test="$show_title">

...


                     <h2 class="title">

...


                        <xsl:value-of select="$title_text" />

...


                     </h2>

...


                  </xsl:if>

...


                  <xsl:apply-templates select="*" />

...


               </div>

...


            </xsl:element>

...


         </body>

...

This code

...

also

...

includes

...

the

...

menu

...

bar

...

and

...

messages

...

weblets

...

which

...

you

...

added

...

using

...

the

...

graphical

...

editor.

...

The <xsl:apply-templates

...

select="*"

...

 />

...

 outputs

...

your

...

WebRoutine

...

fields

...

and

...

lists,

...

together

...

with

...

output

...

from

...

any

...

weblets

...

which

...

were

...

added

...

to

...

the

...

page,

...

such

...

as

...

 Push

...

Buttons

...

.

...