Custom Web Publishing Guide
Table Of Contents
- Chapter 1 Introducing Custom Web Publishing
- Chapter 2 Preparing databases for Custom Web Publishing
- Chapter 3 Accessing XML data with the Web Publishing Engine
- Using Custom Web Publishing with XML
- General process for accessing XML data from the Web Publishing Engine
- About the URL syntax for XML data and container objects
- Accessing XML data via the Web Publishing Engine
- Using the fmresultset grammar
- Using other FileMaker XML grammars
- About UTF-8 encoded data
- Using FileMaker query strings to request XML data
- Switching layouts for an XML response
- Understanding how an XML request is processed
- Using server-side and client-side processing of stylesheets
- Troubleshooting XML document access
- Chapter 4 Introduction to Custom Web Publishing with XSLT
- Chapter 5 Developing FileMaker XSLT stylesheets
- Using XSLT stylesheets with the Web Publishing Engine
- About the FileMaker XSLT Extension Function Reference
- About the URL syntax for FileMaker XSLT stylesheets
- About the URL syntax for FileMaker container objects in XSLT solutions
- Using query strings in FileMaker XSLT stylesheets
- Specifying an XML grammar for a FileMaker XSLT stylesheet
- About namespaces and prefixes for FileMaker XSLT stylesheets
- Using statically defined query commands and query parameters
- Setting text encoding for requests
- Specifying an output method and encoding
- About the encoding of XSLT stylesheets
- Processing XSLT requests that do not query FileMaker Server
- Using tokens to pass information between stylesheets
- Using the FileMaker XSLT extension functions and parameters
- About the FileMaker-specific XSLT parameters set by the Web Publishing Engine
- Accessing the query information in a request
- Obtaining client information
- Using the Web Publishing Engine base URI parameter
- Using the authenticated base URI parameter
- Loading additional documents
- Using a database’s layout information in a stylesheet
- Using content buffering
- Using Web Publishing Engine sessions to store information between requests
- Using the session extension functions
- Sending email messages from the Web Publishing Engine
- Using the header functions
- Using the cookie extension functions
- Using the string manipulation extension functions
- Comparing strings using Perl 5 regular expressions
- Checking for values in a field formatted as a checkbox
- Using the date, time, and day extension functions
- Checking the error status of extension functions
- Using logging
- Chapter 6 Testing and monitoring a site
- Appendix A Valid names used in query strings
- About the query commands and parameters
- Using the query commands
- -dbnames (Database names) query command
- -delete (Delete record) query command
- -dup (Duplicate record) query command
- -edit (Edit record) query command
- -find, -findall, or -findany (Find records) query commands
- -layoutnames (Layout names) query command
- -new (New record) query command
- -process (Process XSLT stylesheets)
- -scriptnames (Script names) query command
- -view (View layout information) query command
- Using the query parameters
- -db (Database name) query parameter
- -encoding (Encoding XSLT request) query parameter
- -field (Container field name) query parameter
- fieldname (Non-container field name) query parameter
- fieldname.op (Comparison operator) query parameter
- -grammar (Grammar for XSLT stylesheets) query parameter
- -lay (Layout) query parameter
- -lay.response (Switch layout for response) query parameter
- -lop (Logical operator) query parameter
- -max (Maximum records) query parameter
- -modid (Modification ID) query parameter
- -recid (Record ID) query parameter
- -script (Script) query parameter
- -script.prefind (Script before Find) query parameter
- -script.presort (Script before Sort) query parameter
- -skip (Skip records) query parameter
- -sortfield (Sort field) query parameter
- -sortorder (Sort order) query parameter
- -styletype (Style type) query parameter
- -stylehref (Style href) query parameter
- -token.[string] (Pass values between XSLT stylesheets) query parameter
- Appendix B Error codes for Custom Web Publishing
- Appendix C Converting CDML solutions to FileMaker XSLT
- About the process of converting CDML solutions to FileMaker XSLT solutions
- Conversion of CDML action tags, variable tags, and URLs
- Conversion of the -error and -errornum CDML variable tags
- Conversion of obsolete CDML action tags
- Conversion of supported CDML action tags
- Conversion of obsolete CDML variable tags
- Conversion of supported CDML variable tags
- Conversion of CDML boolean parameters to XPath boolean parameters
- Conversion of CDML boolean operators to XPath
- Conversion of CDML intratag parameters to XSLT-CWP
- Manually fixing CDML conversion errors
- Conversion of CDML replacement tags to XSLT-CWP
- Index
62 Custom Web Publishing Guide
1 The individual values for the smtpFields parameter, such as the subject, must be a URL-encoded string. For
example, the “&” character must be specified as “&” and blank spaces must be specified as “%20”.
The entire string for the
smtpFields parameter must be XML-encoded. (See the example at the end of this
section.)
1 For each of these functions, a value of true() is returned if the email message is successfully sent; otherwise
false() is returned.
1 For English email messages, the Web Publishing Engine uses an initial default text encoding of ISO-8859-
1. You can change this setting by using the Administration Console. See the
FileMaker Server Advanced
Web Publishing Installation Guide
.
1 The fmxslt:send_email(String smtpFields, String xsltFile, Node xml, boolean includeImages) function sends an
email message consisting of XML data that is processed by the email stylesheet you specify in this function.
1 For the xsltFile parameter, specify the name of the email stylesheet by entering a URL that is relative to
the main processing stylesheet file for the request.
1 For the xml parameter, specify the parent node of the XML data that you want to use with the email
stylesheet. To send an email message using the same XML data that is being displayed in the browser,
simply provide the XPath for the root of the document: “/”. Otherwise, you can use a different XML
document by first loading it with the
document() function, and then passing that document into the
fmxslt:send_email() function.
1 For the includeImages parameter, specify a boolean value of true() to have the Web Publishing Engine
include all images specified in the HTML of the email message as attachments. This parameter includes
both FileMaker database images as well as non-database images from other locations. The Web
Publishing Engine changes the image URLs to refer to the attachments. Performance can be slow if the
image files are numerous or large. If you specify
false (), the Web Publishing Engine does not change the
URLs for the images. If the URLs are absolute, the email client will attempt to load the images from the
web server.
Here is an example of using the fmxslt:send_email(String smtpFields, String xsltFile, Node xml, boolean
includeImages)
function inside an XPath statement, such as inside the <xsl:if> element:
fmxslt:send_email('tom_jones@company.com?subject=project%20status&from=john_smith@company.com&
cc=jane_doe@company.com','my_mail_template.xsl', /, true())
For information about configuring the Web Publishing Engine to connect to a SMTP server, see the FileMaker
Server Advanced Web Publishing Installation Guide
.
Using the header functions
You can use the fmxslt:get_header() function to read information from the HTTP request and response headers,
and the
fmxslt:set_header() function to write information to the headers. These functions are useful if the client
can use the header information to retrieve information from the web server, or if you need to set a HTTP header
for other reasons.
Header extension function Data type returned Description
fmxslt:get_header(String name) string Returns the specified header value
fmxslt:set_header(String name, String value) void Sets the specified header value
fmxslt:set_status_code(Number status-code) void Sets the HTTP status code