1.4. User TSconfig

You can enter TSconfig for both backend users and groups. The resulting TSconfig for a certain backend user is the accumulated TSconfig for all the backend groups he is a member of. Thus you can override formerly set options from the user groups by entering another configuration in the TSconfig field of the user himself.

The "TSconfig" field

This is how the TSconfig for users is entered in the backend user records:

Verifying the final configuration

It's vital to check the resulting configuration of the users. You can do that in the Tools > User Admin module (which is provided by the extension "beuser") by clicking a username. Then you'll see the TSconfig tree among other information. Here's an example:

Overriding previously set options

Now, lets say the user is a member of a usergroup with this configuration:

TCAdefaults.tt_content {
  hidden = 1
  header = Hello!

}

Then setting these values in the TSconfig field of the user himself, would override the default value of the header (marked red) and add the clear cache option (marked blue). The default value of the hidden field is not changed and simply inherited directly from the group:

TCAdefaults.tt_content.header = 234

options.clearCache.all = 1

Setting default User TSconfig

User TSconfig is designed to be individual for users or groups of users. However it can be very handy to set global values that will be initialized for all users.

In extensions this is easily done by the extension API function, t3lib_extMgm::addUserTSConfig(). In the (ext_)localconf.php file you can call it like this to set default configuration:

/**

 * Adding the admin panel to users by default and forcing the display of the edit-icons

 */

t3lib_extMgm::addUserTSConfig('

admPanel {

  enable.edit = 1

  module.edit.forceNoPopup = 1

  module.edit.forceDisplayFieldIcons = 1

  module.edit.forceDisplayIcons = 0

  hide = 1

}

options.enableBookmarks = 1

');

This API function simply adds the content to $TYPO3_CONF_VARS['BE']['defaultUserTSconfig'].

Top Level Objects

These are the User TSconfig Top Level Objects (TLOs):

Property:

Data type:

Description:

Default:

admPanel

->ADMPANEL

Options regarding the front-end admin panel

options

->OPTIONS

Options for the user, various

mod

(see ->MOD of Page TSconfig)

Overriding values for the backend modules

Deprecated. Use page.mod instead!

setup.default

setup.override

->SETUP

Default values and override values for the user settings known from the setup module.

Notice:

There is a tricky aspect to these settings; If first you have set a value by setup.override and then removes it again you will experience that the value persists to exist. This is because it is saved in the backend users profile. Therefore, if you have once set a value, do not remove it again by rather set it blank if you want to disable the effect again!

TCAdefaults.[tablename].[field]

string

Sets default values for records. The order of default values when creating new records in the backend is this:

1. Value from $TCA

2. Value from User TSconfig (these settings)

3. Value from Page TSconfig

4. Value from "defVals" GET vars (see alt_doc.php)

5. Value from previous record based on 'useColumnsForDefaultValues'

However the order for default values used by tcemain.php if a certain field is not granted access to for user will be:

1. Value from $TCA

2. Value from User TSconfig (these settings)

So these values will be authoritative if the user has no access to the field anyway.

Example:

This sets the default hidden flag for pages to "clear"

TCAdefaults.pages.hidden = 0

user

This is for custom purposes.

Deprecated, use "tx_*" below from extensions

auth

Configuration for authentication services. Currently these are the options:

auth.BE.redirectToURL

Specifies a URL to redirect to after login is performed in the backend login form.

page

all page TSconfig properties

You can override all page TSconfig properties by putting them into user TSconfig and prefixing them with page.

Example:

page.TCEMAIN.table.pages.disablePrependAtCopy = 1

tx_[extension key with no underscore]

This is reserved space for extensions.

[beuser]

->ADMPANEL

Configuration of the Admin Panel in the Frontend for the user.

Property:

Data type:

Description:

Default:

enable

[object]

Used to enable the various parts of the panel for users.

All values are 0/1 booleans.

General:

.all: enables all modules

Modules:

.preview

.cache

.publish

.edit

.tsdebug

.info

(For admin-users, all = 1 is default! Hardcoded in class)

hide

boolean

If set, the panel will not be displayed in the bottom of the page. This only has a visual effect.

override

[object]

Override all admin panel settings:

.[modulename].[propertyname]

Note:

You have to activate a module first by setting

.modulename = 1

Full reference:

To find out the name of a modulename/property, you can have a look at the HTML code of the admin panel and watch the names of the form elements. In this example, the module name is "tsdebug", and the property is called "displayTimes":

name="TSFE_ADMIN_PANEL[tsdebug_displayTimes]"

Most common options

.preview.showHiddenPages (boolean)

.preview.showHiddenRecords (boolean)

.preview.simulateDate (timestamp)

.preview.simulateUserGroup (integer)

.cache.noCache (boolean)

.cache.clearCacheLevels (integer)

.edit.displayFieldIcons (boolean)

.edit.displayIcons (boolean)

.edit.editFormsOnPage (boolean)

.edit.editNoPopup (boolean)

module.edit

[object]

DEPRECATED, use override.* instead (see above).

.forceDisplayIcons (boolean):

Forces edit-panels to appear regardless of the selectorbox.

.forceDisplayFieldIcons (boolean):

Forces edit-icons to appear regardless of the selectorbox.

.forceNoPopup (boolean):

Forces edit-forms to open in same window - not pop up window.

Example, that forces the display of the edit icons without displaying the admin-panel itself:

admPanel {

  enable.edit = 1

  module.edit.forceDisplayFieldIcons = 1

  hide = 1

}

[beuser:admPanel]

Tip

If you want to link to the login-screen of the backend, but wish that the user should return to the frontend for editing, you do that with this link, sending the "redirect_url" parameter to the login-screen. In that case the backend interface is not started.

<a href="typo3/index.php?redirect_url=../">
Backend login returning to frontend
</a>

This is what the admin panel looks like. Notice the fact that the visibility of the admin panel is ultimately depending on being configured in your TypoScript template for the website! This is easily done by inserting this string in the TypoScript Template:

config.admPanel = 1

Or if you use frames, this is probably better:

page.config.admPanel = 1

->OPTIONS

Various options for the user affecting the core at various points.

Property:

Data type:

Description:

Default:

dontMountAdminMounts

boolean

This options prevents the root to be mounted for an admin user.

NOTE: Only for admin-users. For other users it has no effect.

RTEkeyList

[list of keywords]

This is a list of the Rich Text Editor buttons the user may see displayed. The user will not see any buttons not listed here.

Either enter a comma list of button keywords (see "TYPO3 Core API / RTE section") or specify all with a wildcard "*" for everything.

*

(If value is not set at all, *, is default)

clearCache.pages

boolean

This will allow a user to clear the whole page cache.

clearCache.all

boolean

This will allow a user to clear all cache (that is everything including templates)

clearCache.clearRTECache

boolean

If set, the option «Clear RTE Cache» is enabled in the Clear Cache menu. Note that the option is always available to admin users.

0

lockToIP

string

List of IP-numbers with wildcards.

Note: This option is enabled only if the TYPO3_CONF_VARS['BE']['enabledBeUserIPLock'] configuration is true.

Examples:

192.168.*.*    

- will allow all from 192.168-network

192.168.*.*, 212.22.33.44    

- will allow all from 192.168-network plus all from REMOTE_ADDR  212.22.33.44

192.168, 212.22.33.44    

- the same as the previous. Leaving out parts of the IP address is the same as wild cards...

saveClipboard

boolean

If set, the clipboard content will be preserved for the next login. Normally the clipboard content lasts only during the session.

clipboardNumberPads

int (0-20)

This allows you to enter how many pads you want on the clipboard.

3

enableShowPalettes

boolean

If true, the checkbox "Show secondary options (palettes)" is displayed in content editing forms.

1

enableShortcuts

boolean

Enables the usage of bookmarks in the backend.

Note: This option is deprecated since TYPO3 4.5.

1

enableBookmarks

boolean

Enables the usage of bookmarks in the backend.

1

shortcutFrame

boolean

If set, the bookmark frame in the bottom of the window appears. This frame contains the bookmarks, the search field and the workspace selector.

Note: Only takes effect, if alt_main.php, the old backend from TYPO3 4.1, is used.

Note: This option has been removed in TYPO3 4.4.

shortcutGroups

Array of integers/ strings

Set groups of bookmarks that can be accessed by the user.

By default, 5 default groups will be defined globally (shared, can only be set by admins) and also for each user (personal bookmarks):

1. Pages

2. Records

3. Files

4. Tools

5. Miscellaneous

Set 0 to disable one of these group IDs, 1 to enable it (this is the

default) or "string" to change the label accordingly.

Example:

shortcutGroups {

  1=1

  2=My Group

  3=0

  4=

}

Bookmark group 1 is loaded with the default label (Pages), group 2 is loaded and labeled as "My Group" and groups 3 and 4 are disabled. Group 5 has not been set, so it will be displayed by default, just like group 1.

Note: This option is deprecated since TYPO3 4.5.

bookmarkGroups

Array of integers/ strings

Set groups of bookmarks that can be accessed by the user.

By default, 5 default groups will be defined globally (shared, can only be set by admins) and also for each user (personal bookmarks):

1. Pages

2. Records

3. Files

4. Tools

5. Miscellaneous

Set 0 to disable one of these group IDs, 1 to enable it (this is the

default) or "string" to change the label accordingly.

Example:

bookmarkGroups {

  1=1

  2=My Group

  3=0

  4=

}

Bookmark group 1 is loaded with the default label (Pages), group 2 is loaded and labeled as "My Group" and groups 3 and 4 are disabled. Group 5 has not been set, so it will be displayed by default, just like group 1.

shortcut_onEditId_dontSetPageTree

boolean

If set, the page tree is not opened to the page being edited when an id number is entered in the "Edit Id" box.

Note: This option is deprecated since TYPO3 4.5.

bookmark_onEditId_dontSetPageTree

boolean

If set, the page tree is not opened to the page being edited when an id number is entered in the "Edit Id" box.

shortcut_onEditId_keepExistingExpanded

boolean

If set, the existing expanded pages in the page tree are not collapsed when an id is entered in the "Edit Id" box.

(provided .shortcut_onEditId_dontSetPageTree is not set!)

Note: This option is deprecated since TYPO3 4.5.

bookmark_onEditId_keepExistingExpanded

boolean

If set, the existing expanded pages in the page tree are not collapsed when an id is entered in the "Edit Id" box.

(provided .bookmark_onEditId_dontSetPageTree is not set!)

mayNotCreateEditShortcuts

boolean

If set, the user cannot create or edit bookmarks.

Note: In TYPO3 4.3 and older depends on .shortcutFrame being set.

Note: This option is deprecated since TYPO3 4.5.

mayNotCreateEditBookmarks

boolean

If set, the user cannot create or edit bookmarks.

createFoldersInEB

boolean

If set, a createFolders option appears in the element browser (for admin-users this is always enabled).

noThumbsInEB

boolean

If set, then image thumbnails are not shown in the element browser.

noThumbsInRTEimageSelect

boolean

As .noThumbsInEB but for the Rich Text Editor image selector.

uploadFieldsInTopOfEB

boolean

If set, the upload-fields in the element browser are put in the top of the window.

saveDocNew

saveDocNew.[table]

boolean / "top"

If set, a button "Save and create new" will appear in TCEFORMs.

Any value set for a single table will override the default value set to the object "saveDocNew".

Example:

In this example the button is disabled for all tables, except tt_content where it will appear, and in addition create the records in the top of the page (default is after instead of top).

options.saveDocNew = 0

options.saveDocNew.tt_content = top

saveDocView

saveDocView.[table]

boolean

If set, a button "Save and view" will appear in TCEFORMs.

Any value set for a single table will override the default value set to the object "saveDocView".

1

disableDelete

disableDelete.[table]

boolean

Disables the "Delete" button in TCEFORMs.

Overriding for single tables works like "saveDocNew" above.

showHistory

showHistory.[table]

boolean

Shows link to the history for the record in TCEFORMs.

Overriding for single tables works like "saveDocNew" above.

pageTree.disableIconLinkToContextmenu

folderTree.disableIconLinkToContextmenu

boolean / "titlelink"

If set, the page/folder-icons in the page/folder tree will not activate the clickmenu.

If the value is set "titlelink" then the icon will instead be wrapped with the same link as the title.

pageTree.disableTitleHighlight

boolean

If set, the page titles in the page tree will not be highlighted when clicked.

pageTree.showPageIdWithTitle

boolean

If set, the titles in the page navigation tree will have their ID numbers printed before the clickable title.

pageTree.showDomainNameWithTitle

boolean

If set, the domain name will be appended to the page title for

pages that have "Is root of web site?" checked in the page properties.

Useful if there are several domains in one page tree.

pageTree.showNavTitle

boolean

If set, the navigation title is displayed in the page navigation tree instead of the normal page title. The page title is showed in a tooltip if the mouse hovers the navigation title.

pageTree.onlineWorkspaceInfo

boolean

If set, the workspace info box will also be shown in the page tree even in online mode. Recommended when working with workspaces a lot.

pageTree.hideFilter

boolean

If set, the filter-box in the top of the page tree will be hidden.

pageTree.separateNotinmenuPages

boolean

If set, not in menu and special pages are separated in the page tree from standard pages.

pageTree.alphasortNotinmenuPages

boolean

If set and pageTree.seperateNotinmenuPages=1, separated pages are sorted alphabetically.

pageTree.altElementBrowserMountPoints

list of integers

Sets alternative webmounts for use in the Element Browser. You separate page ids by a comma. Non-existing page ids are ignored. If you insert a non-integer it will evaluate to "0" (zero) and the root of the page tree is mounted. Effective in workspaces too.

These alternative webmounts replace configured DB Mountpoints.

Example:

options.pageTree.altElementBrowserMountPoints = 34,123

folderTree.altElementBrowserMountPoints

list of foldernames

Sets alternative filemounts for use in the Element Browser. The folders you specify here must exist within the fileadmin/ folder. You separate folders by a comma. If a folder you specify does not exist it will not get mounted. Effective in workspaces too.

The alternative filemounts are added to the existing Filemounts.

Example:

options.folderTree.altElementBrowserMountPoints = _temp_/, templates

folderTree.uploadFieldsInLinkBrowser

int

This value defines the number of upload fields in the element browser. Default value is 3, if set to 0, no upload form will be shown.

3

folderTree.hideCreateFolder

boolean

If set, the user can't create new folders.

false

contextMenu.[key].disableItems

list of items

List of context menu ("clickmenu") items to disable.

"key" points to which kind of icon that brings up the menu, and possible options are "pageTree", "pageList", "folderTree", "folderList". "page" and "folder" obviously point to either the Web or File main module. "Tree" and "List" points to whether the menu is activated from the page/folder tree or the listing of records/files.

Items to disable are (for "page" type - that is database records):

view,edit,hide,new,info,copy,cut,paste,delete,move_wizard,

history,perms,new_wizard,hide,edit_access,edit_pageheader,db_list,versioning,moreoptions

Items to disable are (for "folder" type - that is files/folders):

edit,upload,rename,new,info,copy,cut,paste,delete

contextMenu.options.leftIcons

boolean

If set, the icons in the clickmenu appear at the left side of the text instead of at the right side.

1

contextMenu.options.clickMenuTimeOut

int, 1-100

Number of seconds the click menu is visible in the top frame before it disappears by it self.

5

contextMenu.options.alwaysShowClickMenuInTopFrame

boolean

If set, then the clickmenu in the top frame is always shown. Default is that it's shown only if the pop-up menus are disabled by user or by browser.

overridePageModule

string

By this value you can substitute the default "Web > Page" module key ("web_layout") with another backend module key.

Example:

options.overridePageModule = web_txtemplavoilaM1

This will enable TemplaVoila page module as default page module.

moduleMenuCollapsable

boolean

If set, the user can collapse main modules in the left menu.

1

alertPopups

bitmask

Configure which Javascript popup alerts have to be displayed and which not:

1 – onTypeChange

2 – copy / move / paste

4 - delete

8 – FE editing

128 - other (not used yet)

255 (show all warnings)

defaultFileUploads

integer

Default number of file upload forms shown in the File->List module

hideRecords.[table]

list of record ids

This hides records in the backend user interface. It is not an access

restriction but makes defined records invisible. That means in principle

those records can still be edited if the rights allow. This makes sense if a specialized module should be used only to edit those records.

This option is currently implemented for pages only and has an effect in following places:

- Page tree navigation frame

- Web > List module

- New record wizard

Example:

options.hideRecords.pages = 12,45

workspaces.previewLinkTTLHours

integer

Number of hours for expiry of preview links to workspaces. Default is 48 hours.

workspaces.swapMode

string

Possible values are:

"any" - if page or element (meaning any record on the page) is published, all content elements on the page and page itself will be published regardless of the current editing stage.

"page" - if page is published, all content elements on the page will be published as well. If element is published, its publishing does not affect other elements or page.

normal behavior (same as in 4.0)

workspaces.changeStageMode

string

Possible values are:

"any" - if page or element (meaning any record on the page) stage is changed (for example, from "editing" to "review"), all content elements on the page and page will change to that new stage as well (possibly bypassing intermediate stages).

"page" - if page stage is changed (for example, from "editing" to "review"), all content elements on the page will change stage as well (possibly bypassing intermediate stages). If stage is changed for element, all other elements on the page and page itself remain in the previous stage.

normal behavior (same as in 4.0)

workspaces.considerReferences

boolean

If elements which are part of an interdependent structure (e.g. Inline Relational Record Editing) are swapped, published or sent to a stage alone, the whole related parent/child structure is taken into account automatically.

1

workspaces.allowed_languages.[workspaceId]

list of sys_language ids

This is a list of sys_language uids which will be allowed in a workspace. This list - if set - will override the allowed languages list in the BE user group configuration.

additionalPreviewLanguages

list of sys_language ids

The user will see these additional languages when localizing stuff in TCEforms. The list are uid numbers of sys_language records.

checkPageLanguageOverlay

boolean

If set, localized fields in flexforms are shown only for languages which the current page is translated to.

view.languageOrder

list of sys_language ids

When a backend user clicks a view-page link in the backend (magnifying glass) the first language uid in this list which the user has access to edit will be added as the parameter "&L=[UID]" to the view-link.

This is a useful setting for translators which primarily wish to see their translation when they click the view-links.

Example:

options.view.languageOrder = 2,1

file_list.enableDisplayBigControlPanel

list of keywords

Determines whether the checkbox "Extended view" in the filelist module is shown or hidden. If it is hidden, you can predefine it to be always activated or always deactivated.

The following values are possible:

- activated: The option is activated and the checkbox is hidden.

- deactivated: The option is deactivated and the checkbox is hidden.

- selectable: The checkbox is shown so that the option can be selected by the user.

selectable

file_list.enableDisplayThumbnails

list of keywords

Determines whether the checkbox "Display thumbnails" in the filelist module is shown or hidden. If it is hidden, you can predefine it to be always activated or always deactivated.

The following values are possible:

- activated: The option is activated and the checkbox is hidden.

- deactivated: The option is deactivated and the checkbox is hidden.

- selectable: The checkbox is shown so that the option can be selected by the user.

selectable

file_list.enableClipBoard

list of keywords

Determines whether the checkbox "Show clipboard" in the filelist module is shown or hidden. If it is hidden, you can predefine it to be always activated or always deactivated.

The following values are possible:

- activated: The option is activated and the checkbox is hidden.

- deactivated: The option is deactivated and the checkbox is hidden.

- selectable: The checkbox is shown so that the option can be selected by the user.

selectable

[beuser:options]

->SETUP

Default values and overriding values for the "User tools > User settings" module.

Notice: The "User tools > User settings" module only represents a subset of the options from the table below.

Default values are set by 'setup.default' while overriding values are set by 'setup.override'. Overriding values will be impossible for the user to change himself and no matter what the current value is, the overriding value will overrule it. The default values are used for new users or if the setup is re-initialized.

NOTICE: If you have first set a value (by override e.g.) and then REMOVE that value from being set, the value is NOT restored to the original default but is kept at the current value! Therefore setting a value and later removing that value would require the users preferences to be reset (you can do that from the Install Tool > Database Analyser > Reset user preferences) OR better, don't remove the value, just change the value of it! (e.g. to a blank string if you wish to "reset" the value).

This table shows the keys for both defaults and override values:

Property:

Data type:

Description:

Default:

thumbnailsByDefault

boolean

Show Thumbnails by default

emailMeAtLogin

boolean

Notify me by email, when somebody logs in from my account

startInTaskCenter

boolean

If set, then the backend will start up in the task center (task center should be enabled for the user).

This is an old property. Rather look at startModule below instead, as it provides more flexibility.

helpText

boolean

Show help text when applicable

titleLen

int+

Max. Title Length

edit_wideDocument

boolean

Wide document background

edit_RTE

boolean

Enable Rich Text Editor

edit_docModuleUpload

boolean

File upload directly in Doc. module

edit_showFieldHelp

string

Keywords: "" (empty string), "icon" or "text"

Determines the type of help text mode for TCA form fields.

navFrameWidth

int+

The width in pixels of the navigation frame in the Page and File main modules.

Note: This option became superfluous in TYPO3 4.5 and has been removed in TYPO3 4.5.

245

navFrameResizable

boolean

If set, the frameset modules will have the border between the navigation and list frame resizable.

Note: This option became superfluous in TYPO3 4.5 and has been removed in TYPO3 4.5.

lang

language-key

One of the language-keys. See t3lib/config_default.php for current options. E.g. "dk", "de", "es" etc.

copyLevels

int+

Recursive Copy: Enter the number of page sub-levels to include, when a page is copied

recursiveDelete

boolean

Recursive Delete(!): Allow ALL subpages to be deleted when deleting a page

allSaveFunctions

boolean

Display all save functions in Doc-module menu

neverHideAtCopy

boolean

If set, then the hideAtCopy feature for records in TCE will not be used.

condensedMode

boolean

If set, the backend will not load the Web-submodules and File-submodules in a frameset but allow the page and folder trees to load the submodule in its own frame. This allows for a better display on small screens.

startModule

string

Name of the module that is called when the user logs into the Backend

noMenuMode

boolean / string

If set, the backend will not load the left menu frame but rather put a selector-box menu in the top frame. This saves a lot of space on small screens. Also icons will not be displayed in the clickmenu panel in the top.

Value "icons":

Setting noMenuMode to "icons" will still remove the menu, but instead of the selector box menu you will have the whole clickmenu panel as a menu with the icons only as the hidden state of the clickmenu panel. This is extremely nice (in my opinion) for experienced users who know the icons of the modules.

classicPageEditMode

boolean

Setting this option will not open the Web>Page module but rather load the content elements (normal column/default language) together with the page header in one big form when a page is edited (clicking a page icon in the page tree). This simulates the old behaviour in Classic Backend

hideSubmoduleIcons

boolean

If set then submodule icons will not be shown in the left menu of the backend.

dontShowPalettesOnFocusInAB

boolean

If set, palettes are not activated in the TCEFORMs when focus is moved to a field.

disableCMlayers

boolean

Disable the context menu layers in the backend.

disableTabInTextarea

boolean

If you are using IE or Mozilla, TYPO3 will load a little JavaScript file that makes it possible to use the <tab> key in textareas. If you don't like the feature for some reason, you can disable it here.

resizeTextareas

boolean

This option makes textareas resizable. When moving towards the right or bottom border of the textarea, the mouse cursor changes to a resize cursor. This is active by default.

1

resizeTextareas_MaxHeight

int+

Defines the maximal height of textarea (in pixels).

600

resizeTextareas_Flexible

boolean

This option makes textareas flexible, which means that their height grows automatically while typing. Limit is the maximal height set. This is active by default.

1

enableFlashUploader

boolean

This option enables the Flash-based uploader in the File module, which allows to select multiple files at once when uploading files. It requires to have the Flash plugin installed (Flash 9 or higher).

[beuser:setup.default/setup.override]

Do not use any other properties than the ones listed in the table above.

On top of being able to set default values or override them as described above, it is also possible to hide fields in the module "User tools > User Settings". This is available since TYPO3 4.3.

The table below describes the related option:

Property:

Data type:

Description:

Default:

<fieldname>.disabled

boolean

This setting hides the option with the name <fieldname> in the module User Settings.

You can find the names of the fields in the Module "Configuration". Just browse through the "User Settings" array.

Example:

setup.fields.emailMeAtLogin.disabled = 1

With this example, we hide the "E-mail me when I login" checkbox.

You can also combine setup.fields.<fieldname>.disabled and setup.override.<fieldname>.

Example:

setup.fields.emailMeAtLogin.disabled = 1

setup.override.emailMeAtLogin = 1

Now the "Email me when i login" field is removed, but the user will still receive an email when he logs in.

0

[beuser:setup.fields]