-
Notifications
You must be signed in to change notification settings - Fork 0
Docs MVC XSL Templates
The stub:document marks the HTML document to be created.
<stub:document xmlns:stub="http://stubbles.org/stub"> <html> <body> <stub:maincontent part="content" path=""/> </body> </html> </stub:document>
This template is only required in skin stylesheets.
The stub:maincontent template is used to include a specific part of the current document.
Attribute | Usage |
---|---|
path | Path to the maincontent documents starting from project root. |
prefix | Prefix of the maincontent documents. Default is main_ . |
suffix | Suffix of the maincontent documents. Default is .xml . |
part | Part of the maincontent document to include. Default is content. |
<stub:document xmlns:stub="http://stubbles.org/stub"> <html> <body> <stub:maincontent part="content" path=""/> </body> </html> </stub:document>
If main_home.xml is the current document its part content is included. This template is only required in skin stylesheets.
This creates a typical HTML comment. By default all comments in templates are thrown away during transformation - so this is a possibility to get comments through transformation.
<stub:comment> This is a comment </stub:comment>
As mentioned at stub:comment, all comments are thrown away during transformation. To get a typically inline Javascript through the transformation process you have to use stub:script. This creates a comment around the Javascript code.
<stub:script> function helloWorld() { alert("Hello world!"); } </stub:script>
Use stub:link for creating links to other pages of the project. The only required attribute is the page attribute. You don't have to give a path or session ID, this things are added automatically. Next to this, all known attributes beside href can be used.
<stub:link page="DslHome" target="_blank" onclick="openPopup(this.href); return false;">Go to Homepage</stub:link>
In order to have additional parameters on the link use the stub:argument template:
<stub:link page="DslHome"> <stub:argument name="id">303</stub:argument> Go to DSL home page </stub:link>
Sometimes it is necessary to have another URL for bots which visit the site in order to spider it for seach engines. To use another URL then the given one, you can use the bot attribute:
<stub:link page="download" bot="http://downloads.example.net/important.pdf"> <stub:argument name="id">303</stub:argument> Important PDF file </stub:link>
This will force the usage of the bot URL in case the visiting user agent is recognized as a search bot. Currently this recognition includes the Googlebot, Msnbot and Slurp (Yahoo!).
The stub:include template is used to include a specific part of a document. You have to specify the part which has to be included. Optionally you can specify a href attribute. If you do so, part is included from the document found by href, if you don't, part is included from the current document.
Attribute | Usage |
---|---|
part | Part which have to be included. |
href | Path to the document which contains the specified part. This is optional. If you don't specify href, the current document is referenced. |
<stub:include part="hint"/> <stub:include href="general_hints.xml" part="hint"/>
Use stub:image to include an image. You can specify all attributes known by the (X)HTML standard. The attributes width and height must not ne set, they are added automatically by the template.
<stub:image src="images/stubbles.gif" alt="Stubbles Logo"/>
With the stub:langselect template you can output text in different languages depending on which language is currently selected. To specify a language depended text, you can use the stub:lang tag within stub:langselect. stub:lang requires a name attribute. Next to a specific language there should always be a name="default" as a fallback for an language not included by stub:lang.
<stub:langselect> <stub:lang name="default">This is a default text.</stub:lang> <stub:lang name="en_US">This is a "american english" text.</stub:lang> <stub:lang name="en_UK">This is a "british english" text.</stub:lang> <stub:lang name="de_DE">Das ist ein deutscher Text.</stub:lang> </stub:langselect>
The stub:date template helps displaying dates. With a given timestamp you can do the following: <stub:date format="Y-m-d" timestamp="1216222717"/> will result in 2008-07-16. The timestamp attribute is optional, if omitted the current time will be used. The allowed formats are the format options for the PHP method date().
The stub:localeDate template helps displaying dates. With a given timestamp you can do the following: <stub:localeDate format="%d %b %Y" timestamp="1216222717"/> will result in 16 Jul 2008. The timestamp attribute is optional, if omitted the current time will be used. The allowed formats are the format options for the PHP method strftime().
<?xml version="1.0" encoding="iso-8859-1"?> <stub:document xmlns:stub="http://stubbles.net/stub"> <html> <body> <stub:maincontent part="content" path=""/> </body> </html> </stub:document>
<?xml version="1.0" encoding="iso-8859-1"?> <parts xmlns:stub="http://stubbles.net/stub" exclude-result-prefixes="stub"> <part name="content"> <stub:link page="testlinkPage">This is a stubbles link</stub:link> <stub:include part="frank"/> <stub:include href="parts.xml" part="schst"/> <stub:comment>This is a comment</stub:comment> <stub:script> <![CDATA[ function helloWorld() { alert("Hello world!"); } ]]> </stub:script> <stub:image src="stubbles.png" alt="Stubbles Logo" height="1000" width="1000"/> <stub:langselect> <stub:lang name="default">This is a default text.</stub:lang> <stub:lang name="en_US">This is a "american english" text.</stub:lang> <stub:lang name="en_UK">This is a "british english" text.</stub:lang> <stub:lang name="de_DE">Das ist ein deutscher Text.</stub:lang> </stub:langselect> </part> <part name="frank"> Frank Kleine </part> </parts>
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <html> <body> <a href="txt/pages/testlinkPage">This is a stubbles link</a> Frank Kleine Stephan Schmidt <script type="text/javascript"> </script> <img src="stubbles.png" alt="Stubbles Logo" height="113" width="132"/> This is a default text. </body> </html>