Typo3 – Bar54 http://www.bar54.de Software Engineering, Web Technologies, eCommerce and some more Wed, 29 Oct 2014 16:13:14 +0000 en-US hourly 1 https://wordpress.org/?v=5.9.4 Typo3: Filelist context menu does not work http://www.bar54.de/2014/03/typo3-filelist-context-menu-work/ Tue, 04 Mar 2014 18:54:33 +0000 http://www.bar54.de/?p=670 If the context menu of your typo3 file list does not work anymore and you use templavoilá, you might hit a known bug in one of templavoilá’s functions.
http://forge.typo3.org/issues/43554

To check if this is the case:

  • Use a browser developer tool such as chrome developer console (hit F12 in your browser), and check for an 500 internal error response for a url similar to …./alt_clickmenu.php?…
  • Next, check your templavoila version. If this is 1.8.0: there you go

There is already a patch provided for this issue:
http://forge.typo3.org/attachments/23132/

To fix this manually, edit the file typo3conf/ext/templavoila/classes/class.tx_templavoila_file.php

In the method public static function is_xmlFile($filename), adapt the following lines:

public static function is_xmlFile($filename) {
  if (!self::includesFal()) {
    // fix file list context menu according to http://forge.typo3.org/attachments/23132/43554.patch
    // return self::is_xmlFile($filename);
    return self::is_xmlFile_finfo($filename);
}
]]>
Typo3 logs out users or does not log them in http://www.bar54.de/2014/02/typo3-logs-out-some-users-or-even-does-not-log-in/ Mon, 17 Feb 2014 10:04:30 +0000 http://www.bar54.de/?p=659 Some Typo3 installations do not allow all your users to log in to the backend or users are logged out from time to time. For the same installation, you might have users without any issue and working as usual.
This can happen if your users use an internet connection that switchs the IP address during the same session. By Default, Typo3 has a security feature that detects an IP change during the same backend sessions. This is done to ensure sessions to not be stolen by any bad boys.

However, many internet providers started to switch IP addresses for their customers to serve more customers with smaller IP pools. Especially if you use a mobile or a hotels or conferences internet connection, you get a new client-side IP address quite often.

Typo3 lockIP Configuration
Typo3 provides a configuration to let you slightly reduce this security check and to enable such users to still access your system.
If you log into your install tool and browse to “all configurations” you will find a configuration named lockIP.

This configuration allows for a value between 0 and 4. This integer specifies the number of IP positions to be checked by this security feature. Typically, your internet provides switches only the last or the two last positions of your IP adresse (0.0.0.0). By default, all 4 positions are checked. If you modify this configuration, you should reduce it only step-wise (4-3-2-1-0) to keep the highest number your users are happy with.

]]>
Typo3: SQL Error during Page Create http://www.bar54.de/2014/02/typo3-sql-error-during-page-create/ Tue, 04 Feb 2014 06:05:46 +0000 http://www.bar54.de/blog/?p=572 If you try to create a new page, using either the drag’n’drop feature or the page action from context menu and getting an error such as:

SQL error: 'Incorrect integer value: '' for column 'backend_layout' at row 1' (pages:NEW12345)

You should check your MySQL configuration. More specific the sql-mode you have configured.
Typo3 is not compatible with the MySQL strict model. Check the example below to see how the configuration must be adapted (based on the default my.ini settings)

# Set the SQL mode to strict
# disable strict mode for typo3
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 
]]>
Powermail Datepicker Date Format Fix http://www.bar54.de/2013/10/powermail-datepicker-date-format-fix/ http://www.bar54.de/2013/10/powermail-datepicker-date-format-fix/#respond Wed, 02 Oct 2013 13:38:00 +0000 http://www.bar54.de/blog/?p=476 The powermail Typo3 extension provides a feature to have a date picker for your date input field. With the jquery option of powermail this is generated using the jquery ui date picker plugin.

Depending on the language you use, you might run into the problem of an invalid date format produced by the date picker. For example, with a German locale you might get a 02.10.YY instead of 02.10.2013.

wrong-dateformat

The reason for this is the powermail extension’s language file. It specifies the date format with a capital YY, not supported by the jQuery UI date picker.

To fix this issue, you must modify the language specific translation setting of the date format to use lower case letters: “dd.mm.yy”. You can do this by modifying the extension translation file.
However, a much easier way is to add the language setting as typo script to the setup section of your template. The example above shows the fix for the German language (‘de’). For other languages use the according language id.

# POWERMAIL
# Datumsformat im Datepixker
plugin.tx_powermail_pi1._LOCAL_LANG {
  de {
    datepicker_dateformat = dd.mm.yy
  }
}
]]>
http://www.bar54.de/2013/10/powermail-datepicker-date-format-fix/feed/ 0
Typo3: tt_news setup cheat sheet http://www.bar54.de/2013/09/typo3-tt_news-setup-cheat-sheet/ http://www.bar54.de/2013/09/typo3-tt_news-setup-cheat-sheet/#respond Fri, 27 Sep 2013 08:12:24 +0000 http://www.bar54.de/blog/?p=409 First of all: Sorry for the lack of documentation due to time constraints!

I know it’s just a bunch of typoscript in this post, but it’s more a reminder for myself and maybe helpful for others.


/ ----------------------------------------------
/ News konfigurieren
/ ----------------------------------------------

plugin.tt_news {

_LOCAL_LANG.de {
more = Mehr lesen
backToList = zurück zur Nachrichtenübersicht
}

singlePid = {$plugin.tt_news.singlePid}
pid_list = {$plugin.tt_news.pid_list}
usePagesRelations = 1
usePiBasePagebrowser = 1
defaultCode = LIST
excludeAlreadyDisplayedNews = 0

templateFile = {$plugin.tt_news.file.templateFile}
# dontUseBackPid = 1

enableArchiveDate = 1
datetimeDaysToArchive = 0

useHRDates = 1
useHRDatesSingle = 1

// Change news-files icon for pre-defined file-types
newsFiles {
icon_image_ext_list = jpg,pdf,doc,zip
iconCObject = COA
iconCObject {
10 = TEXT
10.value =
}
}
}

plugin.tt_news {
archiveTitleCObject {
10.strftime = %B - %Y
}

# Build the list of related news:
getRelatedCObject = COA
getRelatedCObject {
# groupBy =
orderBy = datetime desc

10=CASE
10.key.field=type
# settings for 'normal' related news
10.default=COA
10.default {
wrap =

|

5 < plugin.tt_news.tmp.5 10 = TEXT 10.field = title 10.typolink.parameter = {$plugin.tt_news.singlePid} 10.typolink.additionalParams.data=register:newsAddParams 10.typolink.useCacheHash = 1 20 < plugin.tt_news.tmp.20 } # settings for related news, that point to internal pages 10.1=COA 10.1 { wrap =

|

5 < plugin.tt_news.tmp.5 5.file=EXT:gov_localconfig/res/templates/extensions/tt_news/icons/int_link.gif 10 = TEXT 10.field = title 10.typolink.parameter.field = page 20 < plugin.tt_news.tmp.20 } # settings for related news, that point to external URLs 10.2=COA 10.2 { wrap =

|

5 < plugin.tt_news.tmp.5 5.file=EXT:gov_localconfig/res/templates/extensions/tt_news/icons/ext_link.gif 10 = TEXT 10.field = title 10.typolink.parameter.field = ext_url 20 < plugin.tt_news.tmp.20 } } getRelatedCObject { 10.1.20.strftime = %d.%m.%y %H:%M 10.2.20.strftime = %d.%m.%y %H:%M 10.default.20.strftime = %d.%m.%y %H:%M 10.1 { 5.file=EXT:gov_localconfig/res/templates/extensions/tt_news/icons/int_news.gif } 10.2 { 5.file=EXT:gov_localconfig/res/templates/extensions/tt_news/icons/ext_link.gif } } } / ---------------------------------------------- / SINGLE / ---------------------------------------------- plugin.tt_news { // divide the singleview to multiple pages useMultiPageSingleView = {$plugin.tt_news.useMultiPageSingleView} // insert pagebreaks to the singleview after a certain number of words maxWordsInSingleView = 0 // append page browser to news content appendSViewPBtoContent = 0 useParagraphAsPagebreak = 0 newsFiles.size.wrap = [ | ]

displaySingle {
age_stdWrap.age = 0
age_stdWrap.wrap = |
age_stdWrap.age = Minute(n) | Stunde(n) | Tag(e) | Jahr(e)
textNewsAge_stdWrap.wrap =
date_stdWrap.strftime= %d.%m.%Y
time_stdWrap.strftime= %H:%M
title_stdWrap.wrap =

author_stdWrap.typolink.parameter.field = author_email
author_stdWrap.wrap = |
preAuthor_stdWrap.noTrimWrap = || |
author_stdWrap.required = 1

category_stdWrap.wrap = |
email_stdWrap.setContentToCurrent = 1
email_stdWrap.typolink.parameter.current = 1

subheader_stdWrap {
wrap =

|

trim = 1
required = 1
parseFunc < lib.parseFunc_RTE parseFunc.nonTypoTagStdWrap.encapsLines.nonWrappedTag >
#outerWrap =

|

#stripHtml = 1
}

content_stdWrap.parseFunc < lib.parseFunc_RTE content_stdWrap.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes.P >

# stdWrap for "additional info" (links, files, related news)
addInfo_stdWrap.wrap =

|

links_stdWrap.wrap =

linksHeader_stdWrap.wrap =

|

linksItem_stdWrap >
linksItem_stdWrap {
parseFunc < lib.parseFunc_RTE parseFunc.nonTypoTagStdWrap.encapsLines { nonWrappedTag >
innerStdWrap_all.wrap =

|

}
}

nextPrevRecSortingField = datetime
reversePrevNextOrder = 0

showTitleAsPrevNextLink = {$plugin.tt_news.showTitleAsPrevNextLink}

prevLinkTitle_stdWrap.wrap =
prevLinkLabel_stdWrap.wrap = < |
prevLink_stdWrap.wrap =

nextLinkTitle_stdWrap.wrap =
nextLinkLabel_stdWrap.wrap = | >
# nextLink_stdWrap.wrap =

|

nextLink_stdWrap.wrap =

author_stdWrap.wrap = [ | ]

addInfo_stdWrap.wrap =

|

imageCount = 10
imgAltTextField = imagecaption
imageWrapIfAny =

|

imageMarkerOptionSplit =

caption_stdWrap {
trim = 1
required =
wrap =
dataWrap =

|

}
image {
file.maxW = 225m
file.maxH >

# altText = TEXT
# altText {
# field = imagealttext
# stripHtml = 1
# split.token.char = 10
# split.token.if.isTrue = {$styles.content.imgtext.imageTextSplit}
# split.returnKey.data = register : IMAGE_NUM_CURRENT
# }

# titleText < .altText # titleText.field = imagetitletext wrap = imageLinkWrap = 1 imageLinkWrap { enable = 1 bodyTag =
wrap = |
width = 800m
height = 600
JSwindow = 1
JSwindow.newWindow = 1
JSwindow.expand = 0,0
}
}
}
}

/ ----------------------------------------------
/ LIST
/ ----------------------------------------------

plugin.tt_news {
displayList {
subheader_stdWrap {
crop = 300 | ... | 1
stripHtml = 1
ifEmpty.field = bodytext
outerWrap = |

// More-Link innerhalb des Feldes Subheader der LIST-Ansicht anzeigen
append = COA
append {
10 = TEXT
10.data = register:newsMoreLink
10.wrap =

|

if.isTrue.field = bodytext
}
append >
}
date_stdWrap.strftime= %d.%m.%Y
time_stdWrap.strftime= %d.%m.%y %H:%M
age_stdWrap.age = 1
textNewsAge_stdWrap.wrap =
}
}

/ ----------------------------------------------
/ LATEST
/ ----------------------------------------------
/ Latest news Teasertext auf der ersten Seite nach xxx Buchstaben abschneiden

plugin.tt_news {
displayLatest {
subheader_stdWrap.crop = 1000 | ... | 1
date_stdWrap.strftime= %d.%m.%y
time_stdWrap.strftime= %H:%M
}
}
/ ----------------------------------------------
/ MORE-Links
/ ----------------------------------------------

plugin.tt_news {
// More-Link innerhalb des Feldes Subheader der LATEST-Ansicht anzeigen
displayLatest.subheader_stdWrap {
append = COA
append {
10 = TEXT

10.data = register:newsMoreLink
10.wrap =  |
stdWrap.fieldRequired = bodytext
}
}
}

/ ----------------------------------------------
/ Pagebrowser konfigurieren (List und Archiv)
/ ----------------------------------------------

plugin.tt_news {
pageBrowser {
dontLinkActivePage = 1
maxPages = 20
showRange = 0
showPBrowserText = 1
#Displaying Results ausblenden
showResultCount = 0
showFirstLast = 0
}
}
/ ----------------------------------------------
/ aufraumen
/ ----------------------------------------------

plugin.tt_news {
// p class=bodytext in allen News-ContentElementen loswerden
general_stdWrap {
parseFunc.nonTypoTagStdWrap.encapsLines.nonWrappedTag >

_CSS_DEFAULT_STYLE >
#lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class = news
}
}

/ ----------------------------------------------
/ ARCHIV
/ ----------------------------------------------
// WEITERE KONFIGURATION IN DER SEITE ARCHIV
plugin.tt_news {
// das Feld Archivdate wird aktiviert fuer die Auswahl der News-Records
enableArchiveDate = 1
// Das Listenelement von Archiv ist zu Beginn leer und der User muss einen Monat auswaehlen
emptyArchListAtStart = 0
}

/ ----------------------------------------------
/ Konfiguration Cat-Menue
/ ----------------------------------------------
plugin.tt_news {
displayCatMenu {
# select root icon file
catmenuRootIconFile = EXT:tt_news/res/tt_news_cat.gif
# enable root icon
catmenuNoRootIcon = 0
# disable other icons
catmenuIconMode = -1
}
}

// ----------------------------------------------
// RSS-Feed(s) konfigurieren
// ----------------------------------------------
plugin.tt_news {
displayXML {
# rss091_tmplFile = EXT:tt_news/res/rss_0_91.tmpl
# rdf_tmplFile = EXT:tt_news/res/rdf.tmpl
# atom03_tmplFile = EXT:tt_news/res/atom_0_3.tmpl
# atom1_tmplFile = EXT:tt_news/res/atom_1_0.tmpl
rss2_tmplFile = EXT:tt_news/res/rss_2.tmpl
# possibile values: rss091 / rss2 / rdf / atom03 / atom1
xmlFormat = rss2
xmlTitle = example.com: Latest News
xmlLink = http://example.com/
xmlDesc = Latest News
xmlLang = en
xmlIcon = fileadmin/tt_news_article.gif
title_stdWrap.htmlSpecialChars = 1
title_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.stripHtml = 1
subheader_stdWrap.htmlSpecialChars = 1
subheader_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.crop = 100 | ... | 1
subheader_stdWrap.ifEmpty.field = bodytext
xmlLastBuildDate = 1
}
}

// This enables the xml news feed
xmlnews >
//RSS-Feed Allgemein
rss1 = PAGE
rss1 {
typeNum = 100
10 >
10 < plugin.tt_news 10.pid_list >
10.pid_list = 138
10.singlePid = {$plugin.tt_news.singlePid}
10.defaultCode = XML

config {
disableAllHeaderCode = 1
linkVars =
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}

//RSS-Feed Fahrplanaenderungen

//RSS-Feed Fahrplanänderungen
rss2 = PAGE
rss2 {
typeNum = 101
10 >
10 < plugin.tt_news 10.pid_list >
10.pid_list = 20
10.singlePid = {$plugin.tt_news.singlePid}
10.defaultCode = XML
config {
disableAllHeaderCode = 1
linkVars =
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}

//RSS-Feed Presseinformation

rss3 = PAGE
rss3 {
typeNum = 102
10 >
10 < plugin.tt_news 10.pid_list >
10.pid_list = 142
10.singlePid = 453
10.defaultCode = XML
config {
disableAllHeaderCode = 1
linkVars =
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}

// ----------------------------------------------
// RSS-Feed(s) konfigurieren
// ----------------------------------------------
plugin.tt_news {
displayXML {
# rss091_tmplFile = EXT:tt_news/res/rss_0_91.tmpl
# rdf_tmplFile = EXT:tt_news/res/rdf.tmpl
# atom03_tmplFile = EXT:tt_news/res/atom_0_3.tmpl
# atom1_tmplFile = EXT:tt_news/res/atom_1_0.tmpl
# rss2_tmplFile = EXT:tt_news/res/rss_2.tmpl
# possibile values: rss091 / rss2 / rdf / atom03 / atom1
#xmlFormat = rss2
#xmlTitle = example.com: Latest News
#xmlLink = http://www.genres.de/
#xmlDesc = Aktuelle News
#xmlLang = de
#xmlIcon = fileadmin/tt_news_article.gif
title_stdWrap.htmlSpecialChars = 1
title_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.stripHtml = 1
subheader_stdWrap.htmlSpecialChars = 1
subheader_stdWrap.htmlSpecialChars.preserveEntities = 1
subheader_stdWrap.crop = 700 | ... | 1
subheader_stdWrap.ifEmpty.field = bodytext
xmlLastBuildDate = 1
}
}

// This enables the xml news feed
xmlnews >
//RSS-Feed
rss1 = PAGE
rss1 {
typeNum = 100
10 >
10 < plugin.tt_news 10 { pid_list >
pid_list = {$plugin.tt_news.pid_list}
singlePid = {$plugin.tt_news.singlePid}
defaultCode = XML
limit = 99
}
config {
disableAllHeaderCode = 1
linkVars =
additionalHeaders = Content-type:text/xml
no_cache = 1
xhtml_cleaning = 0
}
}

]]>
http://www.bar54.de/2013/09/typo3-tt_news-setup-cheat-sheet/feed/ 0
Typo3: Alternative Navigation Title in Backend Page Tree http://www.bar54.de/2013/09/typo3-alternative-navigation-title-in-backend-page-tree/ http://www.bar54.de/2013/09/typo3-alternative-navigation-title-in-backend-page-tree/#respond Fri, 20 Sep 2013 11:39:35 +0000 http://www.bar54.de/blog/?p=404 Typo3 provides a nice feature, to specify a speaking page title, not only for search engine optimization, and a separate short and pregnant alternative navigation title.
As a result, one often ends up with page titles that do not fit in the page tree column of the Typo3 backend.

Since Typo3 4.2, there is a new configuration to fix this by using the alternative navigation title for the backend page tree as well.

Just add the following configuration to your backend users or — event better — backend user group TS Config:

# Use alternativ navigation titel in TYPO3 backend page tree
options.pageTree.showNavTitle = 1

There you go…

]]>
http://www.bar54.de/2013/09/typo3-alternative-navigation-title-in-backend-page-tree/feed/ 0
Typo3: No Images Recommended During Facebook Share / Like http://www.bar54.de/2013/06/typo3-no-images-recommended-during-facebook-share-like/ http://www.bar54.de/2013/06/typo3-no-images-recommended-during-facebook-share-like/#respond Tue, 11 Jun 2013 10:45:32 +0000 http://www.bar54.de/blog/?p=372 We have realized a couple of websites with integrated facebook share / like buttons. Once a while we noticed that the facebook share dialog did not recommend any thumbnail images extracted from the current site. Digging a little bit deeper into this issue, I found out, that facebook sometimes struggles if the images on the website are specified with relative paths. Even the base href specification on the site did not help (or is simply not considered in this case).

Facebook Share without image recomendation

More specific: If the current site is on level 2 or more (e.g. http://www.mydomain.com/level1/my-currentsite.html), the base href is http://www.mydomain.com/ and the image path is for example /fileadmin/news/images/myimage.jpg, the facebook share dialog might fail to extract any thumbnail images.

So how to solve this? Using an absolute url for the images supports facebook in extracting the images and producing the thumbnail recommendations.
So we have to force typo3 to produce absolute urls for the images etc. And as usual for Typo3, this is supported out of the box with a typoscript configuration (you just have to know it 😉 ):

Add the configuration:

config.absRefPrefix = http://www.mydomain.com/

in the setup of your template, clear your cache and you are done…

]]>
http://www.bar54.de/2013/06/typo3-no-images-recommended-during-facebook-share-like/feed/ 0
Typo3: RTE in Backend not loading for Non-Admin-Users http://www.bar54.de/2013/04/typo3-rte-in-backend-not-loading-for-non-admin-users/ http://www.bar54.de/2013/04/typo3-rte-in-backend-not-loading-for-non-admin-users/#respond Thu, 04 Apr 2013 14:30:51 +0000 http://www.bar54.de/blog/?p=362 Recently I found a nasty problem with Typo3’s richt text editor (RTE) when a non-admin user was logged in. (Typo3 version 4.5.25)

Trying to open a content element with a rich text editor field, presented only the message “editor is being loaded” without any further information or progress.
When logging into the backend as an admin user, everything worked fine.

Checking with the firefox javacript console, the following error was provided:

ReferenceError: invalid assignment left-hand side
Line: 414, Row: 60
3);return('#'+hex(r)+hexHTMLArea.Editor.prototype.isEditable=function(){return(this._doc.designMode==="on");};HTMLArea.E

typo3-rte-javascript-error

Finally, the solution I found was to disable the javascript compression for the richt text editor scripts in the extensions overall configuration using the Extension Manager:
disable-compression

However, this was the first time I saw this problem and I was not able to reproduce it on any other of our typo3 installations.

]]>
http://www.bar54.de/2013/04/typo3-rte-in-backend-not-loading-for-non-admin-users/feed/ 0
Powermail 2.0.x: Enable Dynamic Sender Fields http://www.bar54.de/2013/04/powermail-2-0-x-enable-dynamic-sender-fields/ http://www.bar54.de/2013/04/powermail-2-0-x-enable-dynamic-sender-fields/#respond Mon, 01 Apr 2013 20:22:40 +0000 http://www.bar54.de/blog/?p=355 Starting with version 2.0, the powermail extension has a new concept to configure the email address used to send a feedback mail to the user who has submited an online form.

The documentation recommends to activate the “This field contains the Email of the sender” checkbox for the form field the user should put his email adress in. With the powermail version 2.0.6, this setting seems to have no effect and the user does not receive any confirmation mail.
Email Form Field

According to the document, another way to configure the field to be used as the form sender’s email adress is to put in the according form field variable in the configuration field of the form:
http://typo3.org/extension-manuals/powermail/2.0.6/view/1/48/
Trying to put in the variable referencing the email field (e.g. {e_mail}):
Sender E-Mail Variable Input
ends up with an error message (“errorinemail@tryagain.com”) because of an invalid e-mail format:

errorinemail@tryagain.com
errorinemail@tryagain.com

As a result, this configuration will not work out. Even worse: The field can not be cleared again.

The only way I figured out to fix the configuration was to overwrite the sender’s email and name in an extension template for the page setting them to the fluid variable referencing the according form fields:

plugin.tx_powermail.settings.sender.overwrite.senderEmail={e_mail}
plugin.tx_powermail.settings.sender.overwrite.senderName={name}

Template Constants to override powermail sender

]]>
http://www.bar54.de/2013/04/powermail-2-0-x-enable-dynamic-sender-fields/feed/ 0
Typo3 Templavoila Multilanguage FCEs http://www.bar54.de/2013/03/typo3-templavoila-multilanguage-fces/ http://www.bar54.de/2013/03/typo3-templavoila-multilanguage-fces/#respond Mon, 18 Mar 2013 21:46:52 +0000 http://www.bar54.de/blog/?p=350 The templavoilá template engine for Typo3 provides a feature named Flexible Content Elements (FCE) to build custom content elements for a website.
FCEs are very usefull to provide additional structures, such as different multi-column layouts the editor can choose from.

In case of a multi-language website with a single page tree, most websites provide the same content structure for a page in all languages. Translating regular content elements produces copies of the content elements configured for a specific language and linked to the default language. However, working with structuring FCEs, this concept would fail for translating nested “real” content elements.
To simplify this, one should configure the FCEs for “all” instead of the “default” or another specific language.

Addition:
If you already created a lot of FCEs for the default or another language and if you need to switch them to the “all” language setting, the following SQL statement can do this for you:
UPDATE tt_content SET sys_language_uid = -1 WHERE sys_language_uid = 0 AND CType = 'templavoila_pi1'

Warning: This sql is provided without any waranty and you should be familar with directly executing queries to your database. You should also back up your database before executing a query to not run into any data loss.

]]>
http://www.bar54.de/2013/03/typo3-templavoila-multilanguage-fces/feed/ 0