Futurama Logo

Welcome to the Futurama Support Site

The Futurama Support Site is the website where you can find Futurama and Futurama Vision documentation. If you have any questions about the support pages or if you want to provide us feedback please send us an e-mail.




Index FICO example - Change/Add HTML headers
Previous  |  Next

 1      About Futurama
 1.1        Version information
 1.2        Getting Started
 1.2.1          Futurama Website
 1.2.1.1            Behavior of Futurama regarding TimeOuts, Login and Logoff
 1.2.1.2            Replacing an existing Futurama Session
 1.2.2          Futurama Webservice
 1.2.2.1            warmUpDocuments
 1.2.3          Futurama Export
 1.3        Overview - Futurama Modules
 1.3.1          Overview - Futurama Accounts
 1.3.2          Overview - Futurama Server
 1.3.3          Overview - Futurama Monitor
 1.3.4          Overview - Futurama Insight
 1.3.5          Overview - Futurama Console
 1.3.6          Overview - Futurama Webservice
 1.4        Loadbalancing Futurama applications
 1.4.1          Getting the most out of Futurama Web using the Load-Balancer
 1.4.2          Application Request Routing
 1.5        Text management and Multi-language
 2      Installation – Configuration – Testing
 2.1        Installation - Futurama Website Edition
 2.1.1          Installation Futurama HTML
 2.1.2          Installation Futurama Monitor
 2.1.3          Installation Futurama Insight
 2.1.4          Installation Futurama Accounts
 2.1.5          Installation SAML2LoadBalancer
 2.2        Installation - Futurama Export Edition
 2.2.1          Installation Futurama Console
 2.2.2          Installation Futurama Server
 2.3        Installation - Futurama Webservice Edition
 2.3.1          Installation Futurama Webservice
 2.4        Installation Futurama Editor
 2.5        Configuration
 2.5.1          Configuration - Cache
 2.5.2          Configuration - Calculation
 2.5.3          Configuration - Debug
 2.5.4          Configuration - File manager
 2.5.5          Configuration - Fileproviders
 2.5.6          Configuration - Format
 2.5.7          Configuration - History
 2.5.8          Configuration - Identity Provider
 2.5.9          Configuration - Log
 2.5.10           Configuration - Mail
 2.5.11           Configuration - Mapping
 2.5.12           Configuration - Monitor
 2.5.13           Configuration - PlugIns
 2.5.14           Configuration - Rendering
 2.5.15           Configuration - ScenarioRecording
 2.5.16           Configuration - Security
 2.5.17           Configuration - Server
 2.5.18           Configuration - Vision
 2.5.19           Configuration - WebAPI
 2.6        Logging
 2.7        Troubleshooting
 2.8        Security - hardening
 3      Updating and file compatibility
 3.1        Updating Futurama - Compatibility behavior
 3.2        Converting Futurama documents
 3.3        12819 - DataTable file updates
 3.4        12889 - DataTable file updates
 3.5        Conversion web.config to .NET Framework 4
 3.6        Deprecated conversion formulas
 4      Futurama Editor - How to
 4.1        At first glance
 4.2        Developing in the Futurama Editor
 4.2.1          Working with objects
 4.2.2          Evaluating objects
 4.2.3          Finding objects
 4.3        Transferring objects
 4.4        Testing objects
 4.5        Validating objects
 4.6        Troubleshooting objects
 4.7        Advanced/special functionality
 4.8        Checking the layout of objects
 5      Futurama - Formulas
 5.1        Futurama Formulas - Date and time
 5.1.1          Date
 5.1.2          Day
 5.1.3          Days360
 5.1.4          Days360Excel
 5.1.5          DaysInMonth
 5.1.6          DaysInPeriod
 5.1.7          Min
 5.1.8          Max
 5.1.9          Month
 5.1.10           Now
 5.1.11           WeekDay
 5.1.12           Year
 5.2        Futurama Formulas - Math
 5.2.1          Abs
 5.2.2          Add
 5.2.3          Divide
 5.2.4          Floor
 5.2.5          Ln
 5.2.6          Log
 5.2.7          Log10
 5.2.8          Mod
 5.2.9          Multiply
 5.2.10           Pi
 5.2.11           Power
 5.2.12           Rand
 5.2.13           Round
 5.2.14           RoundDown
 5.2.15           RoundUp
 5.2.16           SquareRoot
 5.2.17           Subtract
 5.3        Futurama Formulas - Statistical
 5.3.1          AverageDeviation
 5.3.2          Beta
 5.3.3          Binomial
 5.3.4          Covariance
 5.3.5          Factorial
 5.3.6          Gamma
 5.3.7          GeometricMean
 5.3.8          Lognormal
 5.3.9          Max
 5.3.10           Median
 5.3.11           Min
 5.3.12           Normal
 5.3.13           StandardDeviation
 5.3.14           Uniform
 5.3.15           Variance
 5.4        Futurama Formulas - Text
 5.4.1          CalculateBase64Hashcode
 5.4.2          CalculateXmlHashcode
 5.4.3          Concatenate
 5.4.4          ConcatenateBase64
 5.4.5          ContainsText
 5.4.6          Convert.CSV.2.XML
 5.4.7          ConvertFromBase64
 5.4.8          ConvertToBase64
 5.4.9          ConvertXml
 5.4.10           DecodeURL
 5.4.11           DecryptXml
 5.4.12           EncodeURL
 5.4.13           EncryptXml
 5.4.14           Find
 5.4.15           HashBase64EncodedFile
 5.4.16           HashBase64EncodedFileWithBase64
 5.4.17           HashText
 5.4.18           HashTextWithBase64
 5.4.19           Left
 5.4.20           Len
 5.4.21           Linefeed
 5.4.22           Lower
 5.4.23           Mid
 5.4.24           Proper
 5.4.25           ReadConfigKey
 5.4.26           ReadDirectoryNames
 5.4.27           ReadFile
 5.4.28           ReadFileAsBase64
 5.4.29           ReadFileNames
 5.4.30           ReadFileWithEncoding
 5.4.31           ReadXPathScalar
 5.4.32           ReadXPathVector
 5.4.33           Repeat
 5.4.34           Right
 5.4.35           Substitute
 5.4.36           Trim
 5.4.37           TrimLeft
 5.4.38           TrimRight
 5.4.39           Upper
 5.4.40           ValidatePattern
 5.4.41           XsdMessages
 5.5        Futurama Formulas - Logical
 5.5.1          And
 5.5.2          IsEmpty
 5.5.3          If
 5.5.4          IsEqual
 5.5.5          IsEven
 5.5.6          IsGreater
 5.5.7          IsGreaterEqual
 5.5.8          IsIBANChecksumValid
 5.5.9          IsLess
 5.5.10           IsLessEqual
 5.5.11           IsMemberOfGroup
 5.5.12           IsNotEqual
 5.5.13           IsOdd
 5.5.14           IsValidXml
 5.5.15           Not
 5.5.16           Or
 5.5.17           ValidateNPR
 5.6        Futurama Formulas - Table
 5.6.1          FindNextRow
 5.6.2          FindPreviousRow
 5.6.3          FindRow
 5.6.4          Sort
 5.6.5          VLookUp
 5.7        Futurama Formulas - Document
 5.7.1          CountErrors
 5.7.2          GetPathToDataFiles
 5.7.3          GetPortNumber
 5.7.4          GetRelativePathToDataFiles
 5.7.5          GetSessionID
 5.7.6          IsLicenceAvailable
 5.7.7          ReadError
 5.7.8          ReadIdentityProviderResult
 5.7.9          ReadRequestIP
 5.7.10           ReadRequestParameter
 5.7.11           ReadUserAgent
 5.7.12           ReadVersionNumber
 5.7.13           SessionTimeOut
 5.7.14           URL
 5.7.15           UserName
 5.8        Futurama Formulas - Conversion
 5.8.1          Convert.Excel.to.XML
 5.8.2          ConvertJSONtoXml
 5.8.3          ConvertTextToDate
 5.8.4          ConvertTextToNumber
 5.8.5          ConvertToBoolean
 5.8.6          ConvertToDouble
 5.8.7          ConvertToLong
 5.8.8          ConvertToString
 5.8.9          FormatDate
 5.8.10           FormatNumber
 5.8.11           Value
 5.9        Futurama Formulas - Matrix
 5.9.1          AddMatrices
 5.9.2          AddScalarToMatrix
 5.9.3          Cumulative
 5.9.4          CumulativeProductMatrix
 5.9.5          Distinct
 5.9.6          DivideMatrices
 5.9.7          DivideMatrixScalar
 5.9.8          DivideScalarMatrix
 5.9.9          Exponent
 5.9.10           First
 5.9.11           Floor
 5.9.12           If
 5.9.13           Index
 5.9.14           Inverse
 5.9.15           IsEqual
 5.9.16           IsGreater
 5.9.17           IsGreaterEqual
 5.9.18           IsNotEqual
 5.9.19           IsLess
 5.9.20           IsLessEqual
 5.9.21           Join
 5.9.22           Last
 5.9.23           Length
 5.9.24           MatrixProduct
 5.9.25           Max
 5.9.26           MaxScalarMatrix
 5.9.27           Mean
 5.9.28           Mid
 5.9.29           Min
 5.9.30           MinScalarMatrix
 5.9.31           MultiplyMatrices
 5.9.32           MultiplyMatrixVector
 5.9.33           MultiplyScalarMatrix
 5.9.34           Percentile
 5.9.35           PowerMatrix
 5.9.36           PowerMatrixScalar
 5.9.37           PowerScalarMatrix
 5.9.38           ReadMatrixFromXml
 5.9.39           Repeat
 5.9.40           Replace
 5.9.41           Reshape
 5.9.42           ReverseCumulativeProductMatrix
 5.9.43           ReverseMatrix
 5.9.44           Size
 5.9.45           Split
 5.9.46           SquareRootMatrix
 5.9.47           Step
 5.9.48           SubtractMatrices
 5.9.49           SubtractMatrixScalar
 5.9.50           SubtractScalarMatrix
 5.9.51           Sum
 5.9.52           Transpose
 5.9.53           UnitMatrix
 5.9.54           Vector
 5.10         Creating custom formulas in Futurama
 6      Futurama - Objects
 6.1        Action
 6.2        Aggregation
 6.3        Button
 6.4        ChangeValue
 6.5        CheckBox
 6.6        ClearCache
 6.7        DatabaseField
 6.8        DatabaseView
 6.9        DataTable
 6.10         DateBox
 6.11         DocConverter
 6.12         Document
 6.13         Download
 6.14         DropDownList
 6.15         EmailConverter
 6.16         ExcelConverter
 6.17         FileSaver
 6.18         FileUploader
 6.19         Fixed
 6.20         Formula
 6.21         GraphConverter
 6.22         HTMLInclude
 6.23         InterfacesNode
 6.24         LogMessage
 6.25         Navigator
 6.26         Node
 6.27         RadioButton
 6.28         RadioGroup
 6.29         Range
 6.30         Reference
 6.31         SubDocument
 6.32         TextBox
 6.33         UserTable
 6.34         UserVariable
 6.35         WebLabel
 6.36         WebListBox
 6.37         WebPage
 6.38         WebPanel
 6.39         WebReference
 6.39.1           WebReference - WCF Configuration
 6.40         WebService
 6.41         WebSlider
 6.42         WordConverter
 6.43         XmlBuilder
 6.44         XmlConverter
 6.45         XmlField
 6.46         XmlNode
 7      Futurama - Vision References
 7.1        Data
 7.1.1          ReadData
 7.1.2          WriteMessage
 7.1.3          GetPersonIdentifiers
 7.1.4          CreatePerson
 7.2        DataStore
 7.2.1          DeleteDataItem
 7.2.2          DeleteDataItemHierarchy
 7.2.3          DeleteDataItems
 7.2.4          GetDataItem
 7.2.5          GetDataItemHierarchy
 7.2.6          GetDataItems
 7.2.7          StoreData
 7.3        Accounts
 7.3.1          Activate Account
 7.3.2          Change Account
 7.3.3          Create Account
 7.3.4          GetQuestion
 7.3.5          GetQuestions
 7.3.6          Login
 7.3.7          ReadData
 7.3.8          ReinitializeAccount
 7.4        General
 7.4.1          TestConnection
 8      Futurama Vision
 8.1        Installation Futurama Vision
 8.1.1          Installation Futurama Vision Management Site
 8.1.2          Installation or Upgrade of the Futurama Vision Database
 8.2        Futurama Vision Management Site
 8.2.1          Futurama Vision Management Site - Admin
 8.2.2          Futurama Vision Management Site – Security
 8.2.3          Futurama Vision Management Site – Skinning
 8.2.4          Importing data into Futurama Vision
 8.2.4.1            Importing data by webservice
 8.2.4.2            Importing data from a Zip-file
 8.2.4.3            Importing data with Futurama Vision Batch
 8.2.4.4            Futurama Vision Webservice Security
 8.2.5          Further processing of data into Futurama Vision
 8.3        Futurama Vision File manager
 8.4        Activity overview
 8.5        Storing data in Vision from a Futurama application
 8.6        Futurama Vision – Data
 8.7        Futurama Accounts - Management Site
 8.7.1          Futurama Accounts - Table in Vision Database
 8.8        Futurama Server - Management Site
 8.8.1          Special Futurama Server Jobs
 8.9        Futurama Register - Management Site
 8.9.1          Configuration - Futurama Register
 8.10         Retrieving AppEvents from Futurama Vision
 8.11         Adding CustomPages to Vision
 9      Futurama Intermediate Control Output (FICO)
 9.1        FICO example - Change/Add HTML headers
 9.2        FICO example - Change Graph
 9.3        HTML5 Template
 10       Futurama Web API
 10.1         Postbacks of Futurama webcontrols
 10.2         Retrieving Resources using Web API
 10.3         WebAPI Session management
 11       Tutorials - Overview
 11.1         Tutorials - Examples and Downloads
 11.2         Beginners
 11.2.1           Creating formulas with Futurama
 11.2.1.1             Exercise 1: Pythagorean Theorem (Easy)
 11.2.1.2             Exercise 2: Newspaper stall (Medium)
 11.2.1.3             Exercise 3: Recursive functions (Difficult)
 11.2.1.4             Exercise 4: Leap Year (Difficult)
 11.2.1.5             Exercise 5: The Guessing Game I (Medium)
 11.2.2           Creating a Website Application
 11.2.2.1             Exercise 1: Creating a Website (Easy)
 11.2.3           Styling your website with CSS
 11.2.3.1             Exercise 1: Adding CSS (Easy)
 11.2.4           Adding interactivity to your website
 11.2.4.1             Exercise 1: Summation (Easy)
 11.2.4.2             Exercise 2: The Guessing Game II (Medium)
 11.2.4.3             Exercise 3: Nationality (Medium)
 11.2.4.4             Exercise 4: Nationality - RepeatTarget (Medium)
 11.2.4.5             Exercise 5: Reversed Guessing (Difficult)
 11.2.5           Working with Tables
 11.2.5.1             Exercise 1: Average (Easy)
 11.2.5.2             Exercise 2: Boundary values (Difficult)
 11.2.5.3             Exercise 3: Standard Deviation (Medium)
 11.2.6           Reading and processing XML-data in Futurama
 11.2.6.1             Exercise 1: Shares (Medium)
 11.2.7           Adding Graphs in Futurama
 11.2.7.1             Exercise 1: World Population (Easy)
 11.2.8           Working with Actions in Futurama
 11.2.8.1             Exercise 1: Changing Colors (Easy)
 11.2.8.2             Exercise 2: On and Off (Medium)
 11.2.8.3             Exercise 3: The ChangeValue object (Difficult)
 11.2.8.4             Exercise 4: The Guessing Game III (Medium)
 11.2.8.5             Exercise 5: CheckBox (Medium)
 11.2.9           Multiple Pages and Navigation
 11.2.10            Using XSLT to display data
 11.2.10.1              Exercise 1: Overview Summation (Easy)
 11.2.10.2              Exercise 2: Persons (Medium)
 11.2.10.3              Exercise 3: Leap Year Overview (Difficult)
 11.2.11            Webservices in Futurama
 11.2.11.1              Exercise 1: Example (Easy)
 11.2.12            Creating a Webservice Application
 11.2.12.1              Exercise 1: Add (Easy)
 11.2.12.2              Exercise 2: Webservice Nationality (Medium)
 11.2.13            Creating a Console Application
 11.2.13.1              Exercise 1: Adding extra fields (Easy)
 11.2.14            Generating Documents
 11.2.14.1              Exercise 1: Tax Rate (Medium)
 11.2.14.2              Exercise 2: Tax Rates Table (Difficult)
 11.3         Advanced
 11.3.1           Responsive Design
 11.3.1.1             Exercise 1: Orientation
 11.3.1.2             Exercise 2: Target different screen sizes
 11.4         Older Tutorials (Futurama Version 3.2)
 11.4.1           Futurama Editor Tutorial 1: The first sum
 11.4.2           Futurama Editor Tutorial 2: An annuity
 11.4.3           Futurama Editor Tutorial 3: Working with tables
 11.4.4           Futurama Editor Tutorial 4: Modelling a DB pension plan
 11.4.5           Futurama Editor Tutorial 5: Working with XML
 11.4.6           Futurama Web Tutorial 1: Hello world
 11.4.7           Futurama Web Tutorial 2: Buttons and Actions
 11.4.8           Futurama Web Tutorial 3: Textboxes
 11.4.9           Futurama Web Tutorial 4: DropdownLists
 12       Miscellaneous
 12.1         Responsive website
 12.2         Reducing memory usage for XmlNodes and XmlFields
 12.3         Explaining caching for websites and webservices
 12.4         Certificates - basic information
 12.5         Performance XML operations
 12.6         Creating XSD files and using them in combination with Futurama
 13       Templates
 14       Safe2Save WebAPI Sample
View  |  Print  |  PDF

451 documents found.


FICO example - Change/Add HTML headers

Developer
Tutorial
Futurama
Futurama-HTML
WebAPI

Edition: Futurama Website

Module: Futurama Web

User: Developer

Prerequisites

- Futurama version 5.3+

 

Description

The webpages that are created with Futurama consists of two parts: a <head> section and a <body> section. The design of those web applications, which are created with the Futurama Editor, are rendered within the <body> of a webpage. Within the <head> section of a HTML page objects Metatags, Doctype and Scripts files can be defined. From Futurama version 5.3.0 there is a possibility to edit/add these objects. At this page is explained how these headers could be added/adjusted using the FICO functionality. 

Scope

Within this example a step by step guide is given on how header objects (Scripts, Metatags, Doctype) could be added/adjusted. The first two steps, explained below, are the basic setup steps to use the FICO functionality.

Configuration – STEP 1

Before adding and/or adjusting HTML headers, a configuration within the web.config is needed.  The following settings must be added to the web.config:

Settings

Within the <configuration> element the next code has to be included:

	<configSections>
	  <sectionGroup name="futuramaSettings">
		<section name="render" type="ActuIT.Futurama.Config.RenderingSection, ActuIT.Futurama.Engine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
	  </sectionGroup>
	</configSections>
	

Next to this code, also within the <configuration> element the following code should be included:

	<futuramaSettings>
	  <render transformationFilename="extension.xsl" />
	</futuramaSettings>
	

For a more detailed explanation about these configurations see page: Configuration – Rendering.

Configuration – STEP 2

Creating an extension XSL file

First an empty extension XSLT file should be created. For a detailed explanation on how this should be implemented see paragraph ‘Creating customized XSLT’ at the FICO support page.

Configuration – STEP 3

The last step is actually change or add new HTML header objects. A division is been made into three subparts where each parts is explained individually.

The modifications should be done within the following section:

		<xsl:template priority="2" match="/ren:RenderInput"></xsl:template>
	

A more detailed explanation of the "RenderInput" section can be found in the paragraph ‘Structure FICO XML’ at the FICO support page.

IMPORTANT: It is important to note that each adjustment within this RenderInput on node level, should be added in alphabetical order (e.q. root level -> Doctype before Metatags || MetaTag level -> Content before HttpEquiv etc.).


Metatags

It is possible to add new Metatags. To add new Metatags the following code should be added to the RenderOutput of the extension file:

		<MetaTags>
			<MetaTag>
				<Content>SampleContent</Content>	
				<HttpEquiv>TestMeta</HttpEquiv>							
			</MetaTag>
			<xsl:copy-of select="./ren:MetaTags/ren:*"/>
		</MetaTags>
		

There are also metatags available which contains a name instead of a HttpEquiv. For example the viewport metatag. Which is a commonly used metatag for optimize a website for mobile devices. From Futurama version 17.2 it is possible to configure these metatags within the extension XSLT:

<MetaTag>	
    <Content>width=device-width, initial-scale=1.0</Content>    
    <Name>viewport</Name>                         
</MetaTag>

HTML Result

When adding the above XML example to the extension file the output within the HTML website will be:

<meta http-equiv="TestMeta" content="SampleContent">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

As explained earlier, it is important to note that when defining the above XML the alphabetical order is important. Therefore, the "content" node should be defined before the "httpequiv" or the "name" node. In addition, a XSL copy statement is needed otherwise all the other metatags are not rendered.

An implementation example

Adding a new metatag without changing other parts of the RenderOuput should be implemented like this:

		
	<xsl:template match="/ren:RenderInput" priority="2">
		<xsl:choose>
			<!--HTML-->
			<xsl:when test="$retrievalMode = 'html'"><xsl:apply-templates select="ren:FICO/*" /></xsl:when>
			<!--Headers-->
			<xsl:when test="$retrievalMode = 'headers'">
				<RenderOutput xmlns="http://www.actuit.nl/futurama/render/2015/08">
					<!--Define the doctype-->						
					<DocType>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;</DocType>									  
					<!--Define javascripts 	-->
					<MetaTags>
						<MetaTag>
							<Content>SampleContent</Content>	
							<HttpEquiv>TestMeta</HttpEquiv>							
						</MetaTag>
						<MetaTag>	
    						<Content>width=device-width, initial-scale=1.0</Content>    
    						<Name>viewport</Name>                         
						</MetaTag>
						<xsl:copy-of select="./ren:MetaTags/ren:*"/>
					</MetaTags>			
					<Scripts><xsl:copy-of select="./ren:Scripts/ren:*"/></Scripts>
				</RenderOutput>
			</xsl:when>
			<!--Unknown retrieval mode-->
			<xsl:otherwise></xsl:otherwise>
		</xsl:choose>
	</xsl:template>

Please keep in mind that the metatags containing the name attribute are only available from Futurama version 17.2 and higher


SCRIPT

It is possible to add or edit Script files which are rendered within the header of a HTML page. To add a new Script file the following code should be added to the RenderOutput:

Add Script files

Within the "Scripts" RenderOutput a new script could be added by adding a Script node:

			<Script>							
				<File>source/to/file.js</File>
				<Type>text/javascript</Type>
			</Script>
			<xsl:copy-of select="./ren:Scripts/ren:*" />
			

To ensure that all the other scripts (that Futurama automatically generates) are loaded the last line of the above XML code should be added. With this setting all the standard Javascript files (as FuturamaScripts.js etc.) are loaded.

Edit Script files

To modify an existing Script as, for example: jQuery, a filter could be added to replace the current script:

			<Scripts>					
				<Script>
					<File>Scripts/jquery-1.8.1.min.js</File>
					<Type>text/javascript</Type>							
				</Script>											
				<xsl:copy-of select="./ren:Scripts/ren:*[not(contains(ren:File,'jquery-1.4.1.min.js'))]"/>
			</Scripts>
			

Important to note is that whenever the jQuery version is changed, the new version should be placed within the folder that the XML is pointing to. In the above example, within the Scripts map of the Futurama application there must be a jQuery version 1.8.1.min.js available to use.

HTML Result

Using these modifications will result in the following HTML:

			<script src="Scripts/jquery-1.8.1.min.js" type="text/javascript"></script>
			<script src="source/to/file.js" type="text/javascript"></script>
			

As explained earlier, it is important to note that when defining the above XML the alphabetical order is important. Therefore, the "file" node should be defined before the "type" node.


DOCTYPE

The DocType of the application can also be adjusted within the RenderOutput. To adjust the standard DocType, to for example a new HTML5 doctype, the following adjustment is needed:

					<DocType>&lt;!DOCTYPE html&gt;</DocType>
				

This modification make it possible to change the DocType to a HTML5 DocType. Within the newest version of Futurama (17.2 + ) HTML5 is fully supported. NOTE: To setup an application which should be within a HTML5 format please have a look at the following support page on how to set it up: HTML5 Template

HTML Result

When the Doctype is adjusted the following HTML is visible within the source of the page:

					<!DOCTYPE html>
				

As explained earlier, it is important to note that when defining the above XML the alphabetical order is important. Therefore, the "doctype" node should be defined before the "metatags" and the "metatags" node should be defined before the "scripts" node.


Final code

If all the adjustments, described above, are executed then the extension file will contain the following sections:

<?xml version="1.0" encoding="UTF-8"?>
						<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fut="http://www.actuit.nl/futurama/fico/2015/06" xmlns:ren="http://www.actuit.nl/futurama/render/2015/08" exclude-result-prefixes="fut ren">

							<xsl:import href="xhtml1.0.xsl"/>

							<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
							<!--RenderInput-->
							<xsl:template match="/ren:RenderInput" priority="2">
								<xsl:choose>
									<!--HTML-->
									<xsl:when test="$retrievalMode = 'html'">
										<xsl:apply-templates select="ren:FICO/*" />
									</xsl:when>
									<!--Headers-->
									<xsl:when test="$retrievalMode = 'headers'">
										<RenderOutput xmlns="http://www.actuit.nl/futurama/render/2015/08">
											<!--Define the doctype-->
											<DocType>&lt;!DOCTYPE html&gt;</DocType>
											<MetaTags>
												<MetaTag>
													<Content>SampleContent</Content>	
													<HttpEquiv>TestMeta</HttpEquiv>							
												</MetaTag>
												<xsl:copy-of select="./ren:MetaTags/ren:*"/>
											</MetaTags>				  
											<!--Define javascripts-->		  
											<Scripts>		
												<Script>
													<File>Source/to/file.js</File>
													<Type>text/javascript</Type>							
												</Script>						
												<Script>
													<File>Scripts/jquery-1.8.1.min.js</File>
													<Type>text/javascript</Type>							
												</Script>						
												<xsl:copy-of select="./ren:Scripts/ren:*[not(contains(ren:File,'jquery-1.4.1.min.js'))]"/>
											</Scripts>
										</RenderOutput>
									</xsl:when>
									<!--Unknown retrieval mode-->
									<xsl:otherwise></xsl:otherwise>
								</xsl:choose>
							</xsl:template>
						</xsl:stylesheet>
					

In this segment, it can be seen that this template can be targeted in two modes. One mode where the variable retrievalmode is set to 'html' (this is the default value). The other mode is 'headers', which produces the RenderOutput element, containing the Scripts, MetaTags and DocType information that is included in the headers of a Futurama webpage.


Load external CSS files

From Futurama version 17.2 and higher it is possible to include CSS files within the extension file. A new section within the RenderInput can be created in order to state a reference towards a CSS file:

<CssFiles>
	<CssFile>
	  <FileName>FuturamaModules/1702/jqueryui.min.css</FileName>
	</CssFile>
</CssFiles>

As stated earlier within this support page, the alphabetic order is very important. As a result, the CSS section should be created before the DocType section:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fut="http://www.actuit.nl/futurama/fico/2015/06" xmlns:ren="http://www.actuit.nl/futurama/render/2015/08" exclude-result-prefixes="fut ren">

  <xsl:import href="xhtml1.0.xsl"/>

  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />

  <xsl:template match="/ren:RenderInput" priority="2">
    <xsl:choose>
      <!--HTML-->
      <xsl:when test="$retrievalMode = 'html'">
        <xsl:apply-templates select="ren:FICO/*" />
      </xsl:when>
      <!--Headers-->
      <xsl:when test="$retrievalMode = 'headers'">
        <RenderOutput xmlns="http://www.actuit.nl/futurama/render/2015/08">
          <!--Define css files-->
          <CssFiles>
            <CssFile>
              <FileName>source/to/file.css</FileName>
            </CssFile>
          </CssFiles>
          <!--Define the doctype-->
          <DocType>&lt;!DOCTYPE html&gt;</DocType>
          <!--Define javascripts-->
          <Scripts>
            <Script>
              <File>source/to/file.js</File>
              <Type>text/javascript</Type>
            </Script>            
            <xsl:copy-of select="./ren:Scripts/ren:*[not(contains(ren:File,'jquery-1.4.1.min.js'))]"/>
          </Scripts>
        </RenderOutput>
      </xsl:when>
      <!--Unknown retrieval mode-->
      <xsl:otherwise></xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</xsl:stylesheet>

Related Topics

- WebAPI Overview: This document explains the WebAPI architecture.

Feedback

If you have any questions about this subject or if you want to provide us feedback please send us an e-mail.

Updated: 2017-02-06


Previous  |  Next