1.6. Setup

Top-level objects

Property:

Data type:

Description:

Default:

types

readonly

Types (internal)

type=99 reserved for plaintext display

resources

readonly

Resources in list (internal)

sitetitle

readonly

SiteTitle (internal)

config

->CONFIG

Global configuration.

These values are stored with cached pages which means they are also accessible when retrieving a cached page.

constants

->CONSTANTS

Site-specific constants, eg. a general email-adresse. These constants may be substituted in the text throughout the pages. The substitution is done by parseFunc. (Option: constants=1)

FEData

->FE_DATA

Here you can configure how data submitted from the front-end should be processed, which script and so on.

includeLibs

Array of strings

With this you can include php-files with function libraries for use in your includescript in TYPO3.

Please see the PAGE-object, which has the same property.

Other reserved TLO's:

plugin

tt_*

temp

styles

lib

_GIFBUILDER

These top-level object names are reserved. That means you can risk static_templates to use them:

"plugin" is used for rendering of special content like boards, e-commerce solutions, guestbooks and so on. Normally set from static_templates. Please see separate description below!

"tt_*", eg tt_content (from "content (default)") is used to render content from tables.

"temp" and "styles" are used for conde-libraries you can copy during parse-time, but they are not saved with the template in cache. "temp" / "styles" are unset before the template is cached! Therefore use these names to store temporary data.

"lib" can be used for a "library" of code, you can reference in TypoScript (unlike "styles" which is unset)

...

->PAGE

Start a new page.

Example:

page = PAGE

page.typeNum = 1

Guidelines:

Good, general PAGE object names to use are such as:

page for the main page with content

frameset, frameset2 for framesets.

top, left, menu, right, bottom, border for top and menu frames etc.

These are just recommendations. Especially the name 'page' for the content bearing page is very common.

...

(whatever)

If a top-level object is not a PAGE-object it could be used as a temporary repository for setup. In this case you should use the "temp" or "styles" objects.

"tt_..." is normally used to define the setup of content-records. Eg. "tt_content" would be used for the tt_content-table as default. See the "CONTENT"-cObject

[tsref:(TLO)]

The "plugin" TLO

This is used for extensions in TYPO3 set up as frontend plugins. Typically you can set configuration properties of the plugin here. Say you have an extension with the key "myext" and it has a frontend plugin named "tx_myext_pi1" then you would find the TypoScript configuration at the position "plugin.tx_myext_pi1" in the object tree!

Most plugins are USER or USER_INT objects which means that they have at least 1 or 2 reserved properties. Furthermore this table outlines some other default properties. Generally system properties are prefixed with an underscore:

Property:

Data type:

Description:

Default:

userFunc

Property setting up the USER / USER_INT object of the plugin

includeLibs

Property setting up the USER / USER_INT object of the plugin

_CSS_DEFAULT_STYLE

string

Use this to have some default CSS styles inserted in the header section of the document. Most likely this will provide a default acceptable display from the plugin, but should ideally be cleared and moved to an external stylesheet.

This value is for all plugins read by the pagegen script when making the header of the document.

_DEFAULT_PI_VARS.[piVar-key]

string

Allows you to set default values of the piVars array which most plugins are using (and should use) for data exchange with themselves.

This works only if the plugin calls $this->pi_setPiVarDefaults().

_LOCAL_LANG.[lang-key].[label-key]

string

Can be used to override the default locallang labels for the plugin.

[tsref:plugin]

"CONFIG"

In typo3/sysext/cms/tslib/ this is known as $GLOBALS['TSFE']->config['config'], thus the property "debug" below is accessible as $GLOBALS['TSFE']->config['config']['debug'].

Property:

Data type:

Description:

Default:

defaultGetVars

array

Allows to set default values for GET parameters. Default value is taken only if the GET parameter isn't defined. Array notation is done with dots, e.g.:

test[var1] will be written as text.var1

Example:

config.defaultgetVars {

    test.var1.var2.p3 = 15

    L = 3

}

linkVars

list

HTTP_GET_VARS, which should be passed on with links in TYPO3. This is compiled into a string stored in $GLOBALS['TSFE']->linkVars

The values are rawurlencoded in PHP.

You can specify a range of valid values by appending a () after each value. If this range does not match, the variable won't be appended to links. This is very important to prevent that the cache system gets flooded with forged values.

The range may contain one of these values:

  1. [a]-[b] - A range of allowed integer values

  2. int - Only integer values are allowed

  3. [a]|[b]|[c] - A list of allowed strings (whitespaces will be removed)

  4. /[regex]/ - Match against a regular expression (PCRE style)

Example:

config.linkVars = L, print

This will add "&L=[L-value]&print=[print-value]" to all links in TYPO3.

config.linkVars = L(1-3), print

Same as above, but "&L=[L-value]" will only be added if the current value is 1, 2 or 3.

Note: Do not include the "type" parameter in the linkVars list, as this can result in unexpected behavior.

uniqueLinkVars

boolean

It might happen that TYPO3 generates links with the same parameter twice or more. This is no problem because only the last parameter is used, thus the problem is just a cosmetic one.

1

MP_defaults

string

Allows you to set a list of page id numbers which will always have a certain "&MP=..." parameter added.

Syntax:

[id],[id],... : [MP-var] | [id],[id],... : [MP-var] | ...

Example:

config.MP_defaults = 36,37,48 : 2-207

This will by default add "&MP=2-207" to all links pointing to pages 36,37 and 48

MP_mapRootPoints

list of PIDs/string

Defines a list of ID numbers from which the MP-vars are automatically calculated for the branch.

The result is used just like MP_defaults are used to find MP-vars if none has been specified prior to the call to t3lib_tstemplate::linkData().

You can specify "root" as a special keyword in the list of IDs and that will create a map-tree for the whole site (but this may be VERY processing intensive if there are many pages!).

The order of IDs specified may have a significance; Any ID in a branch which is processed already (by a previous ID root point) will not be processed again.

MP_disableTypolinkClosestMPvalue

boolean

If set, the typolink function will not try to find the closest MP value for the id.

renderCharset

string

Charset used for rendering internally of the page content. It is highly recommended that this value is the same as the charset of the content coming from the main data source (eg. the database). Thus you don't need to do any other conversion.

All strings from locallang files and locale strings are (and should be) converted to "renderCharset" during rendering.

If you need another output charset than the render charset, see "metaCharset" below.

If you set $TYPO3_CONF_VARS['BE']['forceCharset'] that value is used by default for "renderCharset". It is highly recommended to use $TYPO3_CONF_VARS['BE']['forceCharset'] for multilingual websites in TYPO3. If you set that you don't have to worry about renderCharset and metaCharset - the same charset is used in the whole system.

$TYPO3_CONF_VARS['BE']['forceCharset'] if found, otherwise

"iso-8859-1"

metaCharset

string

Charset used for the output document. For example in the meta tag:

<meta http-equiv="Content-Type" content="text/html; charset=...>

Is used for a) HTML meta-tag, b) HTTP header (unless disabled with .disableCharsetHeader) and c) xhtml prologues (if available)

If renderCharset and metaCharset are different the output content is automatically converted to metaCharset before output and likewise are values posted back to the page converted from metaCharset to renderCharset for internal processing. This conversion takes time of course so there is another good reason to use the same charset for both.

value of ".renderCharset"

disableCharsetHeader

boolean

By default a header "content-type:text/html; charset..." is sent. This option will disable that.

sendCacheHeaders

boolean

If set, TYPO3 will output cache-control headers to the client based mainly on whether the page was cached internally. This feature allows client browsers and/or reverse proxies to take load off TYPO3 websites.

The conditions for allowing client caching are:

  1. page was cached

  2. No *_INT or *_EXT objects were on the page (eg. USER_INT)

  3. No frontend user is logged in

  4. No backend user is logged in

If these conditions are met, the headers sent are:

  1. Last-Modified [SYS_LASTCHANGED of page id]

  2. Expires [expire time of page cache]

  3. Etag [md5 of content]

  4. Cache-Control: max-age: [seconds til expiretime]

  5. Pragma: public

In case caching is not allowed, these headers are sent to avoid client caching:

  1. Cache-Control: private

Notice that enabling the browser caches means you have to consider how log files are written. Because when a page is cached on the client it will not invoke a request to the webserver, thus not writing the request to the log. There should be ways to circumvent these problems but they are outside the domain of TYPO3 in any case.

Tip: Enabling cache-control headers might confuse editors seeing old content served from the browser cache. "Shift-Reload" will bypass both browser- and reverse-proxy caches and even make TYPO3 regenerate the page. Teach them that trick!

Thanks to Ole Tange, www.forbrug.dk for co-authoring this feature.

sendCacheHeaders_onlyWhenLoginDeniedInBranch

boolean

If this is set, then cache-control headers allowing client caching is sent only if user-logins are disabled for the branch. This feature makes it easier to manage client caching on sites where you have a mixture of static pages and dynamic sections with user logins.

The background problem is this: In TYPO3 the same URL can show different content depending on whether a user is logged in or not. If a user is logged in, cache-headers will never allow client caching. But if the same URL was visited without a login prior to the login (allowing caching) the user will still see the page from cache when logged in (and so thinks he is not logged in anyway)! The only general way to prevent this is to have a different URL for pages when users are logged in (which the extension "realurl" can accomplish).

Another way to solve the problem is using this option in combination with disabling and enabling logins in various sections of the site. In the page records ("Advanced" page types) you can disable frontend user logins for branches of the page tree. Since many sites only needs the login in a certain branch of the page tree, disabling it in all other branches makes it much easier to use cache-headers in combination with logins; Cache-headers should simply be sent when logins are not allowed and never be send when logins are allowed! Then there will never be problems with logins and same-URLs.

additionalHeaders

strings divided by "|"

This property can be used to define additional HTTP headers. Separate each header with a vertical line "|".

Examples:

Content-type: text/vnd.wap.wml

(this will send a content-header for a WAP-site)

Content-type: image/gif | Expires: Mon, 25 Jul 2011 05:00:00 GMT

(this will send a content-header for a GIF-file and an Expires header)

Location: www.typo3.com

(This redirects the page to www.typo3.com)

By default TYPO3 sends a "Content-Type" header with the defined encoding, unless this is disabled using config.disableCharsetHeader (see above). It then sends cache headers, if configured (see above). Then come the additional headers, plus finally a "Content-Length" header, if enabled (see below).

enableContentLengthHeader

boolean

If set, a header "content-length: [bytes of content]" is sent.

If a PHP_SCRIPT_EXT object is detected on the page or if the Backend user is logged in, this is disabled. The reason is that the content length header cannot include the lenght of these objects and the content-length will cut of the lenght of the document in some browsers.

doctype

string

If set, then a document type declaration (and an XML prologue) will be generated. The value can either be a complete doctype or one of the following keywords:

"xhtml_trans" for the XHTML 1.0 Transitional doctype.

"xhtml_frames" for the XHTML 1.0 Frameset doctype.

"xhtml_strict" for the XHTML 1.0 Strict doctype.

"xhtml_basic" for the XHTML basic doctype.

"xhtml_11" for the XHTML 1.1 doctype.

"xhtml+rdfa_10" for the XHTML+RDFa 1.0 doctype.

"xhtml_2" for the XHTML 2 doctype.

"html5" for the HTML5 doctype.

"none" for NO doctype at all.

Note: In TYPO3 4.4 the keyword for HTML5 is "html_5". This spelling is deprecated since TYPO3 4.5.

Note that the keywords also change the way TYPO3 generates some of the XHTML tags to ensure valid XML. If you set doctype to a string, then you must also set config.xhtmlDoctype (see below).

See "config.htmlTag_setParams" and "config.htmlTag_langKey" for more details on the effect on the html tag.

Default is the HTML 4 Transitional doctype:

<!DOCTYPE html

        PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

doctypeSwitch

boolean / string

If set, the order of <?xml...> and <!DOCTYPE...> will be reversed. This is needed for MSIE to be standards compliant with XHTML.

Background:

By default TYPO3 outputs the XML/DOCTYPE in compliance with the standards of XHTML. However a browser like MSIE will still run in "quirks-mode" unless the <?xml> and <DOCTYPE> tags are ordered opposite. But this breaks CSS validation...

With this option designers can decide for themselves what they want then.

If you want to check the compatibility-mode of your webbrowser you can do so with a simple JavaScript that can be inserted on a TYPO3 page like this:

page.headerData.1 = TEXT

page.headerData.1.value = <script>alert(document.compatMode);</script>

If your browser has detected the DOCTYPE correctly it will report "CSS1Compat"

If you are not running in compliance mode you will get some other message. MSIE will report "BackCompat" for instance - this means it runs in quirks-mode, supporting all the old "browser-bugs".

xhtmlDoctype

string

Sets the document type for the XHTML version of the generated page.

If config.doctype is set to a string then config.xhtmlDoctype must be set to one of these keywords:

"xhtml_trans" for XHTML 1.0 Transitional doctype.

"xhtml_frames" for XHTML 1.0 Frameset doctype.

"xhtml_strict" for XHTML 1.0 Strict doctype.

"xhtml_basic" for XHTML basic doctype.

"xhtml_11" for XHTML 1.1 doctype.

"xhtml_2" for XHTML 2 doctype.

This is an example to use MathML 2.0 in an XHTML 1.1 document:

config.doctype (

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"

"http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">

)

config.xhtmlDoctype = xhtml_11

Default:

same as config.doctype if set to a keyword

xmlprologue

string

If empty (not set) then the default XML 1.0 prologue is set, when the doctype is set to a known keyword (eg xhtml_11):

<?xml version="1.0" encoding="[config.renderCharset]">

If set to one of the know keywords then a standard prologue will be set:

"xml_10" XML 1.0 prologue (see above)

"xml_11" XML 1.1 prologue

If "none" then the default XML prologue is not set.

Any other string is used as the XML prologue itself.

htmlTag_setParams

string

Sets the attributes for the <html> tag on the page. If you set "config.doctype" to a keyword enabling XHTML then some attributes are already set. This property allows you to override any preset attributes with your own content if needed.

Special: If you set it to "none" then no attributes will be set at any event.

Example:

config.htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"

namespaces

array of strings

This property enables you to add xml namespaces (xmlns) to the <html> tag. This is especially useful if you want to add RDFa or microformats to your html.

Example:

config.namespaces.dc = http://purl.org/dc/elements/1.1/

config.namespaces.foaf = http://xmlns.com/foaf/0.1/

This configuration will result in an <html> tag like

<html xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/">

htmlTag_langKey

string

Allows you to set the language value for the attributes "xml:lang" and "lang" in the <html> tag (when using "config.doctype = xhtml*").

The values must follow the format specified in IETF RFC 3066

Example:

config.htmlTag_langKey = en-US

en

htmlTag_dir

string

Sets text direction for whole document (useful for display of Arabic, Hebrew pages).

Basically the value becomes the attribute value of "dir" for the <html> tag.

Values:

rtl = Right-To-Left (for Arabic / Hebrew)

ltr = Left-To-Right (Default for other languages)

Example:

config.htmlTag_dir = rtl

disableImgBorderAttr

boolean

Returns the 'border' attribute for an <img> tag only if the doctype is not xhtml_strict, xhtml_11 or xhtml_2 or if the config parameter 'disableImgBorderAttr' is not set

ATagParams

<A>-params

Additional parameters to all links in TYPO3 (excluding menu-links)

Example:

To blur links, insert:

onFocus="blurLink(this)"

setJS_openPic

boolean

If set, the openPic JavaScript function is forced to be included

setJS_mouseOver

boolean

If set, the over() and out() JavaScript functions are forced to be included

removeDefaultJS

boolean / string

If set, the default JavaScript in the header will be removed.

The default JavaScript is the blurLink function and browser detection variables.

Special case: if the value is "external" then the default JavaScript is written to a temporary file and included from that file. See "inlineStyle2TempFile" below.

Depends on the compatibility mode (see Tools>Install>Update wizard):

compatibility mode < 4.0:   0

compatibility mode >= 4.0:   1

Examples:

config.removeDefaultJS = external

config.removeDefaultJS = 1

minifyJS

boolean

If set, inline or externalized (see removeDefaultJS above) JavaScript will be minified. Minification will remove all excess space and will cause faster page loading. Together with removeDefaultJS = external it will significantly lower web site traffic.

The default value depends on the compatibility mode (see Tools>Install>Update wizard):

compatibility mode < 4.0:   0

compatibility mode >= 4.0:   1

Example:

config.minifyJS = 1

Note: JavaScript in external files in the FE will only be minified, if a compression handler is registered using $GLOBALS['TYPO3_CONF_VARS']['FE']['jsCompressHandler'].

Example:

$GLOBALS['TYPO3_CONF_VARS']['FE']['jsCompressHandler'] = t3lib_extMgm::extPath($_EXTKEY) . 'Classes/class.tx_myext_jsCompressHandler.php:tx_myext_jsCompressHandler->minifyJs';

minifyCSS

boolean

Setting this option will activate CSS minification.

Example:

config.minifyCSS = 1

Note: CSS in external files in the FE will only be minified, if a compression handler is registered using $GLOBALS['TYPO3_CONF_VARS']['FE']['cssCompressHandler'].

Example:

$GLOBALS['TYPO3_CONF_VARS']['FE']['cssCompressHandler'] = t3lib_extMgm::extPath($_EXTKEY) . 'Classes/class.tx_myext_cssCompressHandler.php:tx_myext_cssCompressHandler->minifyCss';

concatenateJsAndCss

boolean

Setting config.concatenateJsAndCss bundles JS and CSS files in the FE.

Example:

config.concatenateJsAndCss = 1

Note: There are no default concatenation handlers, which could do the concatenation. A custom concatenation handler must be provided and registered using $GLOBALS['TYPO3_CONF_VARS']['FE']['concatenateHandler'].

Example:

$GLOBALS['TYPO3_CONF_VARS']['FE']['concatenateHandler'] = t3lib_extMgm::extPath($_EXTKEY) . 'Classes/class.tx_myext_concatenateHandler.php:tx_myext_concatenateHandler->concatenateFiles';

0

inlineStyle2TempFile

boolean

If set, the inline styles TYPO3 controls in the core are written to a file, typo3temp/stylesheet_[hashstring].css, and the header will only contain the link to the stylesheet.

The file hash is based solely on the content of the styles.

Depends on the compatibility mode (see Tools>Install>Update wizard):

compatibility mode < 4.0:   0

compatibility mode >= 4.0:   1

Example:

config.inlineStyle2TempFile = 1

meaningfulTempFilePrefix

integer

If > 0 TYPO3 will try to create a meaningful prefix of the given length for the temporary image files.

This works with GIFBUILDER files (using content from the GIFBUILDER TEXT objects as a base for the prefix), menus (using the title of the menu item) and scaled images (using the original filename base).

ftu

boolean

If set, the "&ftu=...." GET-fallback identification is inserted.

"&ftu=[hash]" is always inserted in the links on the first page a user hits. If it turns out in the next hit that the user has cookies enabled, this variable is not set anymore as the cookies does the job. If no cookies is accepted the "ftu" remains set for all links on the site and thereby we can still track the user.

You should not set this feature if grabber-spiders like Teleport are going to grab your site!

You should not set this feature if you want search-engines to index your site (in conjunction with the simulateStaticDocuments feature!)

You can also ignore this feature if you're certain, website users will use cookies.

 "ftu" means fe_typo_user ("fe" is "frontend").

false

mainScript

string

This lets you specify an alternative "mainScript" which is the document that TYPO3 expects to be the default doc. This is used in form-tags and other places where TYPO3 needs to refer directly to the main-script of the application

index.php

pageGenScript

resource

Alternative page generation script for applications using index_ts.php for initialization, caching, stating and so on. This script is included in the global scope of index_ts.php-script and thus you may include libraries here. Always use include_once for libraries.

Remember not to output anything from such an included script. All content must be set into $TSFE->content. Take a look at typo3/sysext/cms/tslib/pagegen.php

NOTE: This option is ignored if

$TYPO3_CONF_VARS['FE']['noPHPscriptInclude'] = 1;

is set in localconf.php.

typo3/sysext/cms/tslib/pagegen.php

debug

boolean

If set any debug-information in the TypoScript code is output. Currently this applies only to the menu-objects

message_page_is_being_generated

string

Alternative HTML message that appears if a page is being generated.

Normally when a page is being generated a temporary copy is stored in the cache-table with an expire-time of 30 seconds.

It is possible to use some keywords that are replaced with the corresponding values. Possible keywords are: ###TITLE###, ###REQUEST_URI###

message_preview

string

Alternative message in HTML that appears when the preview function is active!

message_preview_workspace

string

Alternative message in HTML that appears when the preview function is active in a draft workspace. You can use sprintf() placeholders for Workspace title (first) and number (second).

Examples:

config.message_preview_workspace = <div class="previewbox">Displaying workspace named "%s" (number %s)!</div>

config.message_preview_workspace = <div class="previewbox">Displaying workspace number %2$s named "%1$s"!</div>

disablePreviewNotification

boolean

Disables the "preview" notification box completely.

0

locale_all

string

PHP: setlocale("LC_ALL", [value]);

value-examples: deutsch, de_DE, danish, portuguese, spanish, french, norwegian, italian. See www.php.net for other value. Also on linux, look at /usr/share/locale/

TSFE->localeCharset is intelligently set to the assumed charset of the locale strings. This is used in stdWrap.strftime to convert locale strings to the renderCharset of the frontend.

Example:

This will render dates in danish made with stdWrap/strftime:

locale_all = danish

locale_all = da_DK

sword_standAlone

boolean

Used by the parseFunc-substitution of search Words (sword):

If set, the words MUST be surrounded by whitespace in order to be marked up.

sword_noMixedCase

boolean

Used by the parseFunc-substitution of search Words (sword):

If set, the words MUST be the exact same case as the search word was.

intTarget

target

Default internal target. Used by typolink if no target is set

extTarget

target

Default external target. Used by typolink if no extTarget is set

_top

fileTarget

target

Default file link target. Used by typolink if no fileTarget is set.

spamProtectEmailAddresses

"ascii" /

-10 to 10

If set, then all email addresses in typolinks will be encrypted so spam

bots cannot detect them.

If you set this value to a number, then the encryption is simply an

offset of character values. If you set this value to "-2" then all

characters will have their ASCII value offset by "-2". To make this

possible, a little JavaScript code is added to every generated web page!

(It is recommended to set the value in the range from -5 to 1 since setting it to >= 2 means a "z" is converted to "|" which is a special character in TYPO3 tables syntax – and that might confuse columns in tables. Now hardcoded range)

Alternatively you can set this value to the keyword "ascii". This way every

character of the "mailto:" address will be translated to a Unicode HTML

notation. Have a look at the example to see how this works.

Example:

mailto:a@b.c will be converted to

mailto:&#97;&#64;&#98;&#46;&#99;

The big advantage of this method is that it doesn't need any JavaScript!

spamProtectEmailAddresses_atSubst

string

Substitute label for the at-sign (@).

(at)

spamProtectEmailAddresses_lastDotSubst

string

Substitute label for the last dot in the email address.

Example: (dot)

Default: . ( <= just a simple dot)

forceTypeValue

int

Force the &type value of all TYPO3 generated links to a specific value (except if overruled by local forceTypeValue values).

Useful if you run a template with special content at - say &type=95 - but still wants to keep your targets neutral. Then you set your targets to blank and this value to the type value you wish.

frameReloadIfNotInFrameset

boolean

If set, then the current page will check if the page object name (e.g. "page" or "frameset") exists as "parent.[name]" (e.g. "parent.page") and if not the page will be reloaded in top frame. This secures that links from search engines to pages inside a frameset will load the frameset.

Works only with type-values different from zero.

jumpurl_enable

boolean

jumpUrl is a concept where external links are redirected from the index_ts.php script, which first logs the URL. This feature is only interesting if "config.sys_stat" is used.

0

jumpurl_mailto_disable

boolean

Disables the use of jumpUrl when linking to email-adresses.

0

compensateFieldWidth

double

this floating point value will be used by the FORMS cObject to compensate the length of the form fields text and input.

This feature is useful, if the page-option "smallFormFields" is set. In that case Netscape renders form fields much longer than IE. If you want the two browsers to display the same size form fields, use a value of approx "0.6" for netscape-browsers.

Example:

[browser = netscape]

  config.compensateFieldWidth = 0.6

[global]

This option may be overridden in the FORMS-cObject.

includeLibrary

resource

This includes a PHP file.

incT3Lib_htmlmail

boolean

Include t3lib/class.t3lib_htmlmail.php

lockFilePath

string

This is used to lock paths to be "inside" this path.

Used by "filelist" in stdWrap

fileadmin/

noScaleUp

boolean

Normally images are scaled to the size specified via TypoScript. This also forces small images to be scaled to a larger size. This is not always a good thing.

If this property is set, images are not allowed to be scaled up in size. This parameter clears the $this->mayScaleUp var of the class t3lib_stdgraphics (often "gifbuilder").

USERNAME_substToken

string

The is the token used on the page, which should be substituted with the current username IF a front-end user is logged in! If no login, the substitution will not happen.

<!--###USERNAME###-->

USERUID_substToken

string

The is the token used on the page, which should be substituted with the current users UID IF a front-end user is logged in! If no login, the substitution will not happen.

This value has no default value and only if you specify a value for this token will a substitution process take place.

cache_period

int, seconds

The number of second a page may remain in cache.

This value is overridden by the value set in the page-record (field="cache_timeout") if this value is greater than zero.

86400 (=24H)

cache_clearAtMidnight

boolean

With this setting the cache always expires at midnight of the day, the page is scheduled to expire.

false

no_cache

boolean

If this is set to true, the page will not be cached. If set to false, it's ignored. Other parameters may have set it to true of other reasons.

-

disableAllHeaderCode

boolean

If this is set, none of the features of the PAGE-object is processed and the content of the page will be the result of the cObject array (1,2,3,4...) of the PAGE-object. This means that the result of the cObject should include everything from the <HTML> .... to the </HTML> tag!

Use this feature in templates supplying other content-types than HTML. That could be an image or a WAP-page!

false

disablePageExternalUrl

boolean

If set, pages with doktype "External Url" will not trigger jumpUrl in TSFE. This may help you to have external urls open inside you framesets.

stat

boolean

Enable stat logging at all.

true

stat_typeNumList

int/list

List of pagetypes that should be registered in the statistics table, sys_stat.

If no types are listed, all types are logged.

Default is "0,1" which normally logs all hits on framesets and hits on content keeping pages. Of course this depends on the template design.

0,1

stat_excludeBEuserHits

boolean

If set a page hit is not logged if a user is logged in into TYPO3.

false

stat_excludeIPList

list of strings

If the REMOTE_ADDR is in the list of IP-addresses, it's also not logged.

Can use wildcard, e.g. "192.168.1.*"

stat_mysql

boolean

Enable logging to the MySQL table sys_stat.

false

stat_apache

boolean

Enable logging to the log file "stat_apache_logfile"

false

stat_apache_logfile

filename

This defines the name of the log file where TYPO3 writes an Apache-style logfile to. The location of the directory is defined by $TYPO3_CONF_VARS['FE']['logfile_dir'] which must exist and be writable. It can be relative (to PATH_site) or absolute, but in any case it must be within the regular allowed paths of TYPO3 (meaning for absolute paths that it must be within the "lockRootPath" set up in $TYPO3_CONF_VARS).

It is also possible to use date markers in the filename as they are provided by the PHP function strftime(). This will enable a natural rotation of the log files.

Example:

config.stat_apache_logfile = typo3_%Y%m%d.log

This will create daily log files (e.g. typo3_20060321.log).

stat_apache_pagenames

string

The "pagename" simulated for apache.

Default: "[path][title]--[uid].html"

Codes:

[title] = inserts title, no special characters and shortened to 30 chars.

[uid] = the id

[alias] = any alias

[type] = the type (typeNum)

[path] = the path of the page

[request_uri] = inserts the REQUEST_URI server value (useful with RealUrl for example)

stat_apache_notExtended

boolean

If true the log file is NOT written in Apache extended format

stat_apache_noHost

boolean

If true the HTTP_HOST is - if available - NOT inserted instead of the IP-address

stat_apache_niceTitle

boolean / string

If set, the URL will be transliterated from the renderCharset to ASCII (e.g ä => ae, à => a, &#945; "alpha" => a), which yields nice and readable page titles in the log. All non-ASCII characters that cannot be converted will be changed to underscores.

If set to "utf-8", the page title will be converted to UTF-8 which results

in even more readable titles, if your log analyzing software supports it.

stat_apache_noRoot

boolean

If set, the root part (level 0) of the path will be removed from the path. This makes a shorter name in case you have only a redundant part like "home" or "my site".

stat_titleLen

int 1-100

The length of the page names in the path written to log file/database

20

stat_pageLen

int 1-100

The length of the page name (at the end of the path) written to the log file/database.

30

simulateStaticDocuments

boolean /

string

If set TYPO3 makes all links in another way than usual. This can be used with Apache compiled with mod_rewrite and configured in httpd.conf for use of this in the ".htaccess"-files.

Include this in the .htaccess file

RewriteEngine On

RewriteRule   ^[^/]*\.html$  index.php

This means that any "*.html"-documents should be handled by index.php.

Now if is done, TYPO3 will interpret the url of the html-document like this:

[title].[id].[type].html

Title is optional and only useful for the entries in the apache log-files. You may omit both [title] and [type] but if title is present, type must also be there!.

Example:

TYPO3 will interpret this as page with uid=23 and type=1 :

Startpage.23.1.html

TYPO3 will interpret this as the page with alias = "start" and the type is zero (default):

start.html

Alternative option (PATH_INFO):

Instead of using the rewrite-module in apache (eg. if you're running Windows!) you can use the PATH_INFO variable from PHP.

It's very simple. Just set simulateStaticDocuments to "PATH_INFO" and you're up and running!

Also: See below, .absRefPrefix

Example (put in Setup-field of your template):

config.simulateStaticDocuments = PATH_INFO

default is defined by a configuration option in localconf.php. It's

$TYPO3_CONF_VARS['FE']['simulateStaticDocuments'] = 1;

This affects all sites in the database.

You can also set this value to the string  "PATH_INFO"

simulateStaticDocuments_addTitle

int

If not zero, TYPO3 generates urls with the title in, limited to the first [simulateStaticDocuments_addTitle] number of chars.

Example:

Startpage.23.1.html

instead of the default, "23.1.html", without the title.

simulateStaticDocuments_noTypeIfNoTitle

boolean

If set, then the type-value will not be set in the simulated filename if the type value is zero anyways. However the filename must be without a title.

Example:

"Startpage.23.0.html" would still be "Startpage.23.0.html"

"23.0.html" would be "23.html" (that is without the zero)

"23.1.html" would still be "23.1.html"

simulateStaticDocuments_replacementChar

string

Word separator for URLs generated by simulateStaticDocuments. If set to

hyphen, this option allows search engines to index keywords in URLs. Before TYPO3 4.0 this character was hard-coded to underscore.

Depends on the compatibility mode (see Tools>Install>Update wizard):

compatibility mode < 4.0:   underscore "_"

compatibility mode >= 4.0:   hyphen "-"

simulateStaticDocuments_dontRedirectPathInfoError

boolean

Regarding PATH_INFO mode:

When a page is requested by "PATH_INFO" method it must be configured in order to work properly. If PATH_INFO is not configured, the index_ts.php script sends a location header to the correct page. However if you better like an error message outputted, just set this option.

simulateStaticDocuments_pEnc

string

Allows you to also encode additional parameters into the simulated filename.

Example:

You have a news-plugin. The main page has the url "Page_1.228.0.html" but when one clicks on a news item the url will be "Page_1.228.0.html?&tx_mininews_pi1[showUid]=2&cHash=b8d239c224" instead.

Now, this URL will not be indexed by external search-engines because of the query-string (everything after the "?" mark). This property avoids this problem by encoding the parameters. These are the options:

Value set to "base64":

This will transform the filename used to this value: "Page_1.228+B6JnR4X21pbmluZXdzX3BpMVtzaG93VWlkXT0yJmNIYXNoPWI4ZDIzOWMyMjQ_.0.html". The query string has simply been base64-encoded (and some more...) and added to the HTML-filename (so now external search-engines will find this!). The really great thing about this that the filename is self-reliant because the filename contains the parameters. The downside to it is the very very long filename.

Value set to "md5":

This will transform the filename used to this value:

"Page_1.228+M57867201f4a.0.html". Now, what a lovely, short filename! Now all the parameters has been hashed into a 10-char string inserted into the filename. At the same time an entry has been added to a cache table in the database so when a request for this filename reaches the frontend, then the REAL parameter string is found in the database! The really great thing about this is that the filename is very short (opposite to the base64-method). The downside to this is that IF you clear the database cache table at any time, the URL here does NOT work until a page with the link has been generated again (re-inserting the parameter list into the database).

NOTICE: From TYPO3 3.6.0 the encoding will work only on parameters that are manually entered in the list set by .simulateStaticDocuments_pEnc_onlyP (see right below) or those parameters that various plugins might allow in addition. This is to limit the run-away risk when many parameters gets combined.

simulateStaticDocuments_pEnc_onlyP

string

A list of variables that may be a part of the md5/base64 encoded part of a simulate_static_document virtual filename (see property in the row above).

Example:

simulateStaticDocuments_pEnc_onlyP = tx_maillisttofaq_pi1[pointer], L, print

-> this will allow the "pointer" parameter for the extension "maillisttofaq" to be included (in addition to whatever vars the extension sets itself) and further the parameter "L" (could be language selection) and "print" (could be print-version).

content_from_pid_allowOutsideDomain

boolean

Using the "Show content from this page instead" feature allows you to insert content from the current domain only. Setting this option will allow content included from anywhere in the page tree!

absRefPrefix

string

If this value is set, then all relative links in TypoScript are prepended with this string. Used to convert relative paths to absolute paths.

Note: This values is automatically set to the dirname of the index.php script in case simulateStaticDocuments is set to "PATH_INFO".

If you're working on a server where you have both internal and external access, you might do yourself a favor and set the absRefPrefix to the url and path of you site, e.g. http://www.typo3.com/. If you do not, you risk to render pages to cache from the internal network and thereby prefix image-references and links with a non-accessible path from outside.

pageRendererTemplateFile

string

Sets the template for page renderer class (t3lib_PageRenderer).

Example:

pageRendererTemplateFile = fileadmin/test_pagerender.html

noPageTitle

integer

If you only want to have the site name (from the template record) in your <title> tag, set this to 1. If the value is 2 then the <title> tag is not printed at all.

Please take note that this tag is required for XHTML compliant output, so you should only disable this tag if you generate it manually already.

0

pageTitleFirst

boolean

TYPO3 by default prints a title tag in the format "website: page title".

If pageTitleFirst is set (and if the page title is printed), then the page title will be printed IN FRONT OF the template title. So it will look like "page title: website".

0

titleTagFunction

function name

Passes the default <title> tag content to this function. No TypoScript parameters are passed though.

moveJsFromHeaderToFooter

boolean

If set, all JavaScript (includes and inline) will be moved to the bottom of the HTML document, which is after the content and before the closing body tag.

headerComment

string

The content is added before the "TYPO3 Content Management Framework" comment in the <head> section of the page. Use this to insert a note like that "Programmed by My-Agency".

language

string

Language key. See stdWrap.lang for more information.

Select between:

English  (default) = [empty]

Danish = dk

German = de

Norwegian = no

Italian = it

etc...

Value must correspond with the key used for backend system language if there is one. See inside config_default.php or look at the translation page on TYPO3.org for the official 2-byte key for a given language. Notice that selecting the official key is important if you want labels in the correct language from "locallang" files.

If the language you need is not yet a system language in TYPO3 you can use an artificial string of your choice and provide values for it via the TypoScript template where the property "_LOCAL_LANG" for most plugins will provide a way to override/add values for labels. The keys to use must be looked up in the locallang-file used by the plugin of course.

language_alt

string

If "config.language" (above) is used, this can be set to another language key which will be used for labels if a label was not found for the main language. For instance a brazil portuguese website might specify "pt" as alternative language which means the portuguese label will be shown if none was available in the main language, brazil portuguese. This feature makes sense if one language is incompletely translated and close to another language.

sys_language_uid

int

This value points to the uid of a record from the "sys_language" table and if set, this means that various parts of the frontend display code will select records which are assigned to this language. See ->SELECT

Internally, the value is depending on whether an Alternative Page Language record can be found with that language. If not, the value will default to zero (default language) except if "sys_language_mode" is set to a value like "content_fallback".

sys_language_mode

string

Setting various modes of handling localization.

The syntax is "[keyword] ; [value]".

Possible keywords are:

[default] - The system will look for a translation of the page (from "Alternative Page Language" table) and if it is not found it will fall back to the default language and display that.

content_fallback - [ Recommended ] The system will always operate with the selected language even if the page is not translated with a page overlay record. This will keep menus etc. translated. However, the content on the page can still fall back to another language, defined by the value of this keyword, e.g. "content_fallback ; 1,0" to fall back to the content of sys_language_uid 1 and if that is not present either, to default (0)

strict - The system will report an error if the requested translation does not exist. Basically this means that all pages with gray background in the Web>Info / Localization overview module will fail (they would otherwise fall back to default language in one or another way)

ignore - The system will stay with the selected language even if the page is not translated and there's no content available in this language, so you can handle that situation on your own then.

sys_language_overlay

boolean / keyword

If set, records from certain tables selected by the CONTENT cObject using the "languageField" setting will select the default language (0) instead of any language set by sys_language_uid / sys_language_mode. In addition the system will look for a translation of the selected record and overlay configured fields.

The requirements for this is that the table is configured with "languageField" and "transOrigPointerField" in the [ctrl] section of $TCA. Also, exclusion of certain fields can be done with the "l10n_mode" directive in the field-configuration of $TCA.

For backend administration this requires that you configure the "Web>Page" module to display content elements accordingly; That each default element is shown and next to it any translation found. This configuration can be done with Page TSconfig for a section of the website using the object path "mod.web_layout.defLangBinding = 1".

Keyword:

hideNonTranslated : If this keyword is used a record that has no translation will not be shown. The default is that records with no translation will show up in the default language.

sys_language_softMergeIfNotBlank

string

Setting additional "mergeIfNotBlank" fields from TypoScript.

Background:

In TCA you can configure "l10n_mode" - localization mode - for each field. Two of the options affect how the frontend displays content; The values "exclude" and "mergeIfNotBlank" (see "TYPO3 Core API" document for details). The first ("exclude") simply means that the field when found in a translation of a record will not be overlaid the default records field value. The second ("mergeIfNotBlank") means that it will be overlaid only if it has a non-blank value.

Since it might be practical to set up fields for "mergeIfNotBlank" on a per-site basis this options allows you to override additional fields from tables.

Syntax:

 [table]:[field],  [table]:[field],  [table]:[field], ...

Example:

config.sys_language_softMergeIfNotBlank = tt_content:image , tt_content:header

This setting means that the header and image field of content elements will be used from the translation only if they had a non-blank value. For the image field this might be very practical because it means that the image(s) from the default translation will be used unless other images are inserted!

sys_language_softExclude

string

Setting additional "exclude" flags for l10n_mode in TCA for frontend rendering. Works exactly like sys_language_softMergeIfNotBlank (see that for details - same Syntax!).

Fields set in this property will override if the same field is set for "sys_language_softMergeIfNotBlank".

typolinkCheckRootline

boolean

If set, then every "typolink" is checked whether it's linking to a page within the current rootline of the site.

If not, then TYPO3 searches for the first found domain record (without redirect) in that rootline from out to in.

If found (another domain), then that domain is prepended the link, the external target is used instead and thus the link jumps to the page in the correct domain.

typolinkEnableLinksAcrossDomains

boolean

This option enables to create links across domains using current domain's linking scheme.

If this option is not set, then all cross-domain links will be generated as

"http://domain.tld/index.php?id=12345" (where 12345 is page id). If this option is set and current site uses, for example, simulateStatic, then links will be generated as "http://domain.tld/PageTitle.12345.html" (includes RTE links too). Setting this option requires that domains, where pages are linked, have the same configuration for:

- linking scheme (i.e. all use simulateStatic or RealURL or CoolURI but not any mixture)

- all domains have identical localization settings (config.sys_language_XXX directives)

- all domains have the same set of languages defined

This option implies "config.typolinkCheckRootline=1", which will be activated automatically. Setting value of "config. typolinkCheckRootline" inside TS template will have no effect.

Disclaimer: it must be understood that while link is generated to another domain, it is still generated in the context of current domain. No side effects are known at the time of writing of this documentation but they may exist. If any side effects are found, this documentation will be updated to include them.

0

typolinkLinkAccessRestrictedPages

integer (page id) / keyword "NONE"

If set, typolinks pointing to access restricted pages will still link to the page even though the page cannot be accessed. If the value of this setting is an integer it will be interpreted as a page id to which the link will be directed.

If the value is "NONE" the original link to the page will be kept although it will generate a page-not-found situation (which can of course be picked up properly by the page-not-found handler and present a nice login form).

See "showAccessRestrictedPages" for menu objects as well (similar feature for menus)

Example:

config.typolinkLinkAccessRestrictedPages = 29

config.typolinkLinkAccessRestrictedPages_addParams = &return_url=###RETURN_URL###&pageId=###PAGE_ID###

Will create a link to page with id 29 and add GET parameters where the return URL and original page id is a part of it.

typolinkLinkAccessRestrictedPages_addParams

string

See "typolinkLinkAccessRestrictedPages" above

notification_email_urlmode

string

This option allows you to handle URL's in plain text emails so long URLS of more than 76 chars are not broken. This option can be either empty or "76" or "all".

If the string is blank, all links in plaintext emails are untouched.

If it's set to 76 then all links longer then 76 characters are stored in the database and a hash is sent in the GET-var ?RDCT=[md5/20] to the index.php script which finds the proper link in the database and issues a location header (redirection).

If the value is "all" then ALL "http://" links in the message are converted.

notification_email_encoding

string

This sets the encoding of plaintext emails (notification messages). The default encoding is "quoted-printable". But setting this to eg. "base64" will encode the content with base64 encoding.

Values possible:

base64

quoted-printable

8bit

notification_email_charset

string

Alternative charset for the notification mails.

ISO-8859-1

admPanel

boolean

If set, the admin panel appears in the bottom of pages.

NOTE: In addition the panel must be enabled for the user as well, using the TSconfig for the user! See the TSconfig reference about additional admin panel properties.

beLoginLinkIPList

[IP-number]

If set and REMOTE_ADDR matches one of the listed IP-numbers (Wild-card, *, allowed) then a link to the typo3/ login scrip with redirect pointing back to the page is shown.

NOTE: beLoginLinkIPList_login and/or beLoginLinkIPList_logout (see below) must be defined if the link should show up!

beLoginLinkIPList_login

HTML

HTML code wrapped with the login link, see 'beLoginLinkIPList'

Example:

<hr /><b>LOGIN</b>

beLoginLinkIPList_logout

HTML

HTML code wrapped with the logout link, see above

index_enable

boolean

Enables cached pages to be indexed.

index_externals

boolean

If set, external media linked to on the pages is indexed as well.

index_descrLgd

int

This indicates how many chars to preserve as description for an indexed page. This may be used in the search result display.

200

index_metatags

boolean

This allows to turn on or off the indexing of metatags. It is turned on by default.

true

xhtml_cleaning

string

Tries to clean up the output to make it XHTML compliant and a bit more. THIS IS NOT COMPLETE YET, but a "pilot" to see if it makes sense anyways. For now this is what is done:

What it does at this point:

- All tags (img,br,hr) is ended with "/>" - others?

- Lowercase for elements and attributes

- All attributes in quotes

- Add "alt" attribute to img-tags if it's not there already.

What it does NOT do (yet) according to XHTML specs.:

- Wellformedness: Nesting is NOT checked

- name/id attribute issue is not observed at this point.

- Certain nesting of elements not allowed. Most interesting, <PRE> cannot contain img, big,small,sub,sup ...

- Wrapping scripts and style element contents in CDATA - or alternatively they should have entities converted.

- Setting charsets may put some special requirements on both XML declaration/ meta-http-equiv. (C.9)

- UTF-8 encoding is in fact expected by XML!!

- stylesheet element and attribute names are NOT converted to lowercase

- ampersands (and entities in general I think) MUST be converted to an entity reference! (&amps;). This may mean further conversion of non-tag content before output to page. May be related to the charset issue as a whole.

- Minimized values not allowed: Must do this: selected="selected"

Please see the class t3lib_parsehtml for details.

You can enable this function by the following values:

all = the content is always processed before it may be stored in cache.

cached = only if the page is put into the cache,

output = only the output code just before it's echoed out.

prefixLocalAnchors

string keyword

If set to one of the keywords, the content will have all local anchors in links prefixed with the path of the script. Basically this means that <a href="#"> will be transformed to <a href="path/path/script?params#">. This procedure is necessary if the <base> tag is set in the script (eg. if "realurl" extension is used to produce Speaking URLs).

Keywords are the same as for "xhtml_cleaning", see above.

disablePrefixComment

boolean

If set, the stdWrap property "prefixComment" will be disabled, thus preventing any revealing and space-consuming comments in the HTML source code.

baseURL

string

This writes the <base> tag in the header of the document. Set this to the value that is expected to be the URL and append a "/" to the end of the string.

Example:

config.baseURL = http://typo3.org/sub_dir/

tx_[extension key with no underscores]_[*]

-

Configuration space for extensions. This can be used – for example – by plugins that need some TypoScript configuration, but that don't actually display anything in the frontend (i.e. don't receive their configuration as an argument  from the frontend rendering process).

Example:

config.tx_realurl_enable = 1

[tsref:config/->CONFIG]

"CONSTANTS"

Property:

Data type:

Description:

Default:

Array...

string

Constants.

Examples:

.EMAIL = email@email.com

Now if parseFunc anywhere is configured with constants=1 then all cases of the string ###EMAIL### will be substituted in the text.

see ->parseFunc

[tsref:constants]

"PAGE"

Pages are referenced by two main values. The "id" and "type".

The "id" points to the uid of the page (or the alias). Thus the page is found.

The "type" is used to define how the page should be rendered. This is primarily used with framesets. Here the frameset normally has the type=0 (or not set) and the documents in the frameset would be defined with another type, e.g. type=1 for the content-page.

You should explore the framesets of the TYPO3-sites around. Also look in the standard-templates for framesets.

It's a good habit to use type=1 for the main-page of a website with frames. With no-frames sites type is normally zero.

Another good habit is to use "page" as the top-level object name for the content-page on a website.

Most of this codes is executed in the PHP-script typo3/sysext/cms/tslib/class.tslib_pagegen.php.

Property:

Data type:

Description:

Default:

typeNum

int

This decides the the typeId of the page. The value defaults to 0 for the first found PAGE object, but it MUST be set and be unique as soon you use more than one such object (watch this if you use frames on your page)!

0

1,2,3,4...

cObject

wrap

wrap

Wraps the content of the the cObject array

stdWrap

->stdWrap

Wraps the content of the the cObject array with stdWrap options

bodyTagCObject

cObject

This is default bodytag overridden by ".bodyTag" if that is set.

bodyTag

<tag>

Body tag on the page

Example:

<body bgcolor="{$bgCol}">

<body bgcolor="#FFFFFF">

headTag

<tag>

Head-tag if alternatives are wanted

<head>

bodyTagMargins

int

margins in the body tag.

Property:

.useCSS = 1 (boolean) - will set a "BODY {margin: ...}" line in the in-document style declaration - for XHTML compliance.

Example:

value 4

adds leftmargin="4" topmargin="4" marginwidth="4" marginheight="4"  to the bodyTag.

bodyTagAdd

string

This content is added to the end of the bodyTag.

bgImg

imgResource

Background image on the page. This is automatically added to the body-tag.

frameSet

->FRAMESET

if any properties is set to this property, the page is made into a frameset.

meta

->META

shortcutIcon

resource

Favicon of the page. Create a reference to an icon here!

Browsers that support favicons display them in the browser's address bar, next to the site's name in lists of bookmarks, and next to the page's title in the tab.

Note:

This must be a valid ".ico"-file (iconfile)

headerData

->CARRAY

Inserts content in the header-section. Could be JavaScripts, meta-tags, other stylesheet references.

By default, gets inserted after all the style definitions.

footerData

->CARRAY

Same as headerData above, except that this block gets included at the bottom of the page (just before the closing body tag).

config

->CONFIG

configuration for the page. Any entries override the same entries in the toplevel-object "config".

includeLibs

array of strings

With this you may include php-files. This does the same as "includeLibrary" in ->CONFIG but this can include more than one file. These files are included after the file of includeLibrary.

NOTE:

The toplevel object "includeLibs" and the scripts defined with this property is added to each other. Script-keys (that is the "array of strings"-value, like below "tx_myext") from this property of the page overrides any scripts-keys from the toplevel "includeLibs" property!

The script-filenames are of the datatype "resource".

Example:

includeLibs.tx_myext = lib_filename.php

JavaScript:

   

javascriptLibs

array of strings

This allows to include the JavaScript libraries that are shipped with the TYPO3 Core.

javascriptLibs {

     # include prototype

   Prototype = 1

     # include Scriptaculous

   Scriptaculous = 1

     # adds modules dragdrop and controls to Scriptaculous

   Scriptaculous.modules = dragdrop,controls

     # include ExtCore

   ExtCore = 1

     # include ExtCore debug file (uncompressed)

   ExtCore.debug = 1

     # includes ExtJS

   ExtJs = 1

     # include ext-all.css

   ExtJs.css = 1

     # include default theme

   ExtJs.theme = 1

    # load specific adapter (jquery|prototype|yui)

   ExtJs.adapter = …

     # initialize QuickTips

   ExtJs.quickTips = 1

     # includes ExtJS debug file (uncompressed)

   ExtJs.debug = 1

     # include SVG library

   SVG = 1

     # include SVG debug file

   SVG.debug = 1

     #force rendering with flash

   SVG.forceFlash = 1

}

Note: If both ExtCore and ExtJS are requested, the only superset ExtJS will be loaded. This will also affect any options set. They will only come from ExtJS.

Note: In TYPO3 4.5.2 and older you should either request ExtJS or ExtCore, but not both together. Requesting both at the same time will lead to errors.

inlineLanguageLabel

array of strings

ExtJS specific, adds language labels to the page.

Example:

inlineLanguageLabel {

   label1 = 123

   label2 = 456

}

will produce following source:

TYPO3.lang = {"label1":"123","label2":"456"};

inlineSettings

array of strings

ExtJS specific, adds settings to the page.

Example:

page.inlineSettings {

   setting1 = Hello

   setting2 = GoOnTop

}

will produce following source:

TYPO3.settings = {"TS":{"setting1":"Hello","setting2":"GoOnTop"}};

extOnReady

->CARRAY

ExtJS specific, adds inline javascript, wrapped in Ext.onReady.

Example:

page.extOnReady {

   10 = TEXT

   10.value = Ext.Msg.alert("TypoScript Message","Hello World!");

}

will produce following source:

Ext.onReady(function() {Ext.Msg.alert("TypoScript Message","Hello World!"); });

includeJSlibs.[array]

resource

Adds JS library files to head of page.

The file definition must be a valid "resource" datatype, otherwise nothing is inserted. This means that remote files cannot be referenced (i.e. using "http://..."), except by using the ".external" property.

Each file has optional properties:

.allWrap - wraps the complete tag, useful for conditional comments.

.external - If set, there is no file existence check. Useful for inclusion of external files.

Example:

includeJSlibs.twitter = http://twitter.com/javascripts/blogger.js

includeJSlibs.twitter.external = 1

includeJSFooterlibs.[array]

resource

Same as includeJSlibs above, except that this block gets included at the bottom of the page (just before the closing body tag).

includeJS.[array]

resource

Inserts one or more (Java)Scripts in <script> tags.

The file definition must be a valid "resource" datatype, otherwise nothing is inserted. This means that remote files cannot be referenced (i.e. using "http://..."), except by using the ".external" property.

Each file has optional properties:

.type - setting the MIME type of the script (default: text/javascript)

.compressed - boolean flag. This will be used by external compressors to see if the file is already compressed.

.forceOnTop - boolean flag. If set, this file will be added on top of all other files.

.allWrap - wraps the complete tag, useful for conditional comments.

.external - If set, there is no file existence check. Useful for inclusion of external files.

Example:

includeJS {

  file1 = fileadmin/helloworld.js

  file1.type = application/x-javascript

  file2 = javascript_uploaded_to_template*.js

}

includeJSFooter.[array]

resource

Same as includeJS above, except that this block gets included at the bottom of the page (just before the closing body tag).

jsInline

->CARRAY

Use cObjects for creating inline JavaScript

Example:

page.jsInline {

10 = TEXT

10.dataWrap = var pageId = {TSFE:id};

}

Note:

with config.removeDefaultJS = external, the inlineJS is moved to external file.

with config.minifyJS = 1, the jsInline will be minified as well.

jsFooterInline

->CARRAY

Same jsInline above, except that the JavaScript gets inserted at the bottom of the page (just before the closing body tag).

inlineJS

->CARRAY

Inserts inline JavaScript in the header-section. Don't use script-tags as they are added by TYPO3.

Example:

page.inlineJS.10 = TEXT

page.inlineJS.10.value = function a(val) { alert(val); }

with config.removeDefaultJS = external the inlineJS is moved to external file.

with config.minifyJS = 1 the inlineJS will be minified as well.

Note: This option was deprecated and has been removed in TYPO3 4.3. Use jsInline instead.

CSS Stylesheets:

   

stylesheet

resource

Inserts a stylesheet in the <HEAD>-section of the page;

<link rel="stylesheet" href="[resource]">

includeCSS.[array]

resource

Inserts a stylesheet (just like the .stylesheet property) by allows to setting up more than a single stylesheet, because you can enter files in an array.

The file definition must be a valid "resource" datatype, otherwise nothing is inserted.

Each file has optional properties:

.media - setting the media attribute of the <style> tag.

.title - setting the title of the <style> tag.

.alternate - If set (boolean) then the rel-attribute will be "alternate stylesheet"

.import - If set (boolean) then the @import way of including a stylesheet is used instead of <link>

.allWrap - wraps the complete tag, useful for conditional comments.

.external - If set, there is no file existence check. Useful for inclusion of external files.

Example:

includeCSS {

  file1 = fileadmin/mystylesheet1.css

  file2 = stylesheet_uploaded_to_template*.css

  file2.title = High contrast

  file2.media = print

  ie6Style = fileadmin/css/style3.css

  ie6Style.allWrap = <!--[if lte IE 7]>|<![endif]-->

  cooliris = http://www.cooliris.com/shared/             resources/css/global.css

  cooliris.external = 1

}

cssInline

->CARRAY

Use cObjects for creating inline CSS

Example:

cssInline {

    10 = TEXT

    10.value = h1 {margin:15px;}

   

    20 = TEXT

    20.value = h1 span {color: blue;}

}

CSS_inlineStyle

string

This value is just passed on as inline css (in-document css encapsulated in <style>-tags)

Other:

   

insertClassesFromRTE

boolean

If set, the classes for the Rich Text Editor configured in Page TSconfig is inserted in as the first thing in the Style-section right after the setting of the stylesheet.

.add_mainStyleOverrideDefs = [* / list of tags ] - will add all the "RTE.default. mainStyleOverride_add" - tags configured as well.

Might be deprecated soon. Most likely the RTE should be configured by the stylesheet instead. Stay tuned...

noLinkUnderline

boolean

Disables link-underlining. Uses in-document stylesheet.

Deprecated. Use stylesheet instead.

hover

HTML-color

The color of a link when the mouse moves over it! (only MSIE). Uses in-document stylesheet.

Deprecated. Use stylesheet instead.

hoverStyle

string

Additional style information to the hover-color.

Example:

page.hoverStyle = font: bold; text-decoration: none;

Deprecated. Use stylesheet instead.

smallFormFields

boolean

Renders formfields like textarea, input and select-boxes small with "verdana size 1" font.

Uses in-document stylesheet.

Tip:

Use this together with the config-option "compensateFieldWidth" set to "0.6" for netscape-browsers in order to render the small form fields in the same width!

Deprecated. Use stylesheet instead.

adminPanelStyles

boolean

Will include CSS styles for the Admin Panel.

[tsref:(page)]

"FE_DATA"

Property:

Data type:

Description:

Default:

array of tableNames

->FE_TABLE

[tsref:FEData]

"FE_TABLE"

Property:

Data type:

Description:

Default:

default.[field]

string

This property is in charge of which default-values is used for the table:

Example:

This defines the default values used for new records. These values will be overridden with any value submitted instead (as long as the submitted fields are allowed due to "allowNew")

default {

  subject = This is the default subject value!

  hidden = 1

  parent = 0

}

allowNew.[field]

string

This property is in charge of which fields that may be written from the frontend.

Example:

This defines that subject is a field, that may be submitted from the frontend. If a value is not submitted, subject is filled with the default value (see above).

The field "hidden" on the other hand cannot be changed from the frontend. "hidden" will gain the value from the default definition (see above). If fields are set to "0" (zero) it's the same as if they were not defined in this array.

allowNew {

  subject = 1

  hidden = 0

}

allowEdit.[field]

string

Same as above ("allowNew") but this controls which fields that may be written in case of an update of a record (and not a new submission)

Please pay attention to the property below!  ("overrideEdit")

overrideEdit.[field]

string

This works like default-values above but is values inserted after the submitted values have been processed. This means that opposite to default-values overwritten by the submitted values, these values override the submitted values.

Example:

In this case overrideEdit secures that if a user updates his record (if he "own" it) the "hidden"-field will be set no matter what.

overrideEdit {

  hidden = 1

}

userIdColumn

string (field)

This is a string that points to the column of a record where the user-id of the current fe_user should be inserted. This fe_user-uid is inserted/updated both by "new" and "edit"

autoInsertPID

boolean

Works with new records: Insert automatically the PID of the page, where the submitted data is sent to. Any "pid" supplied from the submitted data will override. This is for convenience.

processScript

resource

Include-script to be used for processing of incoming data to the table. The script is included from a function in the class tslib_fetce

This is the really important option, because whether or not you are going to utilize the "cleaning"/"authorization" features of the properties above depend on how you write your script to process data and put it in the database.

A very good example is to look at "media/scripts/guest_submit.inc", included from static_template "plugin.tt_guest" (Used for the default guestbook feature)

separator

string

Separator character used when the submitted data is an array from eg. a multiple selector box.

chr(10) (linebreak)

doublePostCheck

string (field name)

Specifies a field name (integer) into which an integer-hash compiled of the submitted data is inserted. If the field is set, then submissions are checked whether another record with this value already exists. If so, the record is NOT inserted, because it's expected to be a "double post" (posting the same data more than once)

[tsref:FEData.(tablename)/->FE_TABLE]

"FRAMESET"

Property:

Data type:

Description:

Default:

1,2,3,4...

frameObj

Configuration of frames and nested framesets.

cols

<frameset>-data:cols

Cols

rows

<frameset>-data:rows

Rows

params

<frameset>-params

Example:

border="0" framespacing="0" frameborder="NO"

[tsref:(page).frameSet/->FRAMESET]

"FRAME"

Property:

Data type:

Description:

Default:

obj

pointer to top-level object-name

top-level object-name of a PAGE / FRAMESET

Example:

"left", "page", "frameset"

options

url-parameters

Example:

print=1&othervar=anotherthing

would add '&print=1&othervar=anotherthing' to the ".src"-content (if not ".src" is set manually!!)

params

<frame>-params

Example:

scrolling="AUTO" noresize frameborder="NO"

name

<frame>-data:name

Manually set name of frame

NOTE: Is set automatically and should not be overridden under normal conditions!

value of ".obj"

src

<frame>-data:src /stdWrap

Instead of using the "obj" destination, you can define a specific src for your frame with this setting. This overrides the default behavior of using the "obj" parameter!

typolink to id=[currentId]&type=[obj->typeNum]

[tsref:(page).frameSet.(number)/->FRAMESET.(number)]

Example of a simple frameset with a topframe and content-frame:

frameset = PAGE
frameset.typeNum = 0
page = PAGE
page.typeNum = 1
top = PAGE
top.typeNum = 3
frameset.frameSet.rows = 150,*
frameset.frameSet.params = border="0" framespacing="0" frameborder="NO"
frameset.frameSet {
  1 = FRAME
  1.obj = top
  1.params = scrolling="NO" noresize frameborder="NO" marginwidth="0" marginheight="0"
  2 = FRAME
  2.obj = page
  2.params = scrolling="AUTO" noresize frameborder="NO"
}

"META"

Property:

Data type:

Description:

Default:

Array...

string /stdWrap

Metatags

If value is empty (after trimming) the metatag is not generated.

If the "key" (eg. "REFRESH" or "DESCRIPTION") is "REFRESH" (caseinsensitive), then the "http-equiv"-attribute is used in the metatag instead of "name".

Examples:

.REFRESH = [sec]; [url, leave blank for same page]

.DESCRIPTION = This is the description of the content in this document

.KEYWORDS = These are the keywords...

[tsref:->META]

"CARRAY"

Property:

Data type:

Description:

Default:

1,2,3,4...

cObject

This is a numerical "array" of content-objects (cObjects). The order by which you specific the objects is not important as the array will be sorted before it's parsed!

Occasional properties:

   

(stdWrap properties...)

NOTE: This applies ONLY if "CARRAY /stdWrap" is set to be data type

If you specify any non-integer properties to a CARRAY, stdWrap will be invoked with all properties of the CARRAY.

Example:

This will return '<B>This will be rendered before "10"testing</B>'

10 = TEXT

10.value = testing

5 = HTML

5.value = This will be rendered before "10"

wrap = <B> |</B>

(TDParams)

<TD>-params

NOTE: This applies ONLY if "CARRAY +TDParams" is set to be data type

This property is used only in some cases where CARRAY is used. Please look out for a note about that in the various cases.

[tsref:->CARRAY]