Standard-Mailform

Minimales Setup für Standard-Mailformular sollte mitbringen:

  • Reply-To an Websitebesucher
  • fester From-Name…
  • …und From-Email (sonst ggf. falsch automatisiert ermittelt)

Konfiguration könnte somit etwa aussehen wie folgt:

 Name | *replyto_name=input
 E-Mail | *replyto_email=input
 Nachricht | *Nachricht=textarea
 
 | from_name=hidden | example.com
 | from_email=hidden | info@example.com
 | formtype_mail=submit | Absenden
 | html_enabled=hidden
 | subject=hidden | example.com Mailformular

Imagesize und Crop abhängig von der colPos

Um Bilder nicht nur eine feste Breite in Abhängigkeit von der colPos zuzuweisen, sondern auch noch zu croppen, bentötigt man folgendes Snippet:

temp.tt_content.image < tt_content.image
tt_content.image = CASE
tt_content.image {
  key.field=colPos

  0 < temp.tt_content.image
  1 < temp.tt_content.image
  2 < temp.tt_content.image  

  1.20.1.file.width >
  1.20.1.file.height >
  1.20.1.file {
    width = 698c
    height = 400c
  }

  2.20.1.file.width >
  2.20.1.file.height >
  2.20.1.file {
    width = 200c
    height= 150c
  }
}

TypoLinks auch in HTML-Elementen parsen

Um Links in HTML-Elementen zu parsen benötigt man folgende Zeilen im setup:

# Syntax:
# ausgelassene Parameter können hinten weggelassen oder durch "-" freigehalten werden
# <link PID/URL/Mail TARGET/WIDTHxHEIGHT CLASS "TITLE">LINKTEXT</link>
#
# Beispiele:
# <link 2>Zur Seite</link>
# <link 7 - a-link "zur Information">hier</link>
# <link http://www.google.de 300x400 myPopup-class "in neuem Fenster">Google</link>
# <link info@abc.de - myMail "E-Mail senden">Kontakt</link>
#
tt_content.html.parseFunc.tags.link < lib.parseFunc.tags.link

Das target kann dann noch über das setup folgendermaßen ändern:

tt_content.html.parseFunc.tags.link.typolink {
    extTarget >
    extTarget = _self
    target >
    target = _self
}

Hintergrundbild und Fallback auf Defaultsprache

Auf welche Weise die Sprachbehandlung und Fallbacks erfolgen sollen bzw. ob die Regelung auch für Bilder greifen soll, ist von Projekt zu Projekt verschieden.

Eine öfters anzutreffende Variante ist: Falls kein Bild in der Übersetzung der Seite vorhanden ist (pages_overlay), nimm das aus der Default-Sprache, falls dort auch keines ist, dann schau in der Rootline nach oben bis eines gefunden wird.

 

// 1. Idealerweise das Bild aus dem media-Feld der Sprache nehmen (override)
// 2. Falls leer, dann das aus der Default-Sprache (override.ifEmpty)
// 3. Falls da auch nix drin steht, dann levelmedia bis Root hochgucken
 
temp.dynamicImage = IMG_RESOURCE
temp.dynamicImage {
    file.import = uploads/media/
    file.import.data = levelmedia: -1,slide
    file.import.override.listNum = 0
    file.import.override.field = media
    file.import.override.ifEmpty.cObject = TEXT
    file.import.override.ifEmpty.cObject {
        data.dataWrap = DB:pages:{field:uid}:media
        insertData = 1
        if.isTrue.data = TSFE:sys_language_uid
    }
}

diverse userConfig Einstellungen

Hier einmal ein paar userConfig Einstellungen, die z.B. hilfreich sind, wenn der Redaktionsbenutzer nur seinen Namen oder Passwort ändern darf.

setup.override {
    # Persönliche Daten ein/ausblenden
    realName =
    ## Ihr Name
    email =
    ## Ihre E-Mail-Adresse
    emailMeAtLogin = 0
    ## Mich per E-Mail benachrichtigen, wenn sich jemand mit meinem Konto anmeldet
    password =
    ## Neues Passwort
    password2 =
    ## Neues Passwort (Wiederholung)
    lang = de
    ## Backend-Sprache    
    
    # Beim Start ein/ausblenden    
    startModule =
    ## Beim Start folgendes Modul aufrufen
    thumbnailsByDefault = 0
    ## Vorschaubilder standardmäßig anzeigen
    titleLen = 300
    ## Maximale Titellänge
    
    # Bearbeiten und erweiterte Funktionen ein/ausblenden
    edit_RTE = 0
    ## Rich-Text-Editor aktivieren
    edit_wideDocument = 0
    ## Breiten Hintergrund anzeigen
    edit_docModuleUpload = 0
    ## Hochladen von Dateien direkt im Web-Modul
    enableFlashUploader = 0
    ## Flash-Schnittstelle zum Hochladen aktivieren (erfordert Flash 9+)
    resizeTextareas = 0
    ## Größe von mehrzeiligen Textfeldern anpassbar machen
    resizeTextareas_MaxHeight = 0
    ## Maximale Höhe in der Größe anpassbarer, mehrzeiliger Textfelder in Pixel
    resizeTextareas_Flexible = 0
    ## Textfelder flexibel machen
    disableCMlayers = 0
    ## Inhaltskontextmenüs deaktivieren
    copyLevels = 0
    ## Rekursives Kopieren
    recursiveDelete = 0
    ## Rekursives Löschen
    
    # Adminfunktionen ein/ausblenden    
    simulate =
    ## Backend-Benutzer simulieren
    debugInWindow =
    ## Debug-Meldungen in neuem Browserfenster anzeigen        
    installToolEnableButton =
    ## Zugriff auf Installationsprogramm
    
    ## Rich-Text-Editor ein/ausblenden
    rteWidth =
    ## Breite des RTE in Pixel oder Prozent
    rteHeight =
    ## Höhe des RTE in Pixel oder Prozent
    rteResize =
    ## Größe des RTE veränderlich machen
    rteMaxHeight =
    ## Maximale Höhe des in der Größe veränderlichen RTE
    rteCleanPasteBehaviour =
    ## Modus für sauberes Einfügen
    
    # Weitere einstellungen ein/ausblenden    
    hideSubmoduleIcons = 1
    navFrameResizable = 1
    condensedMode = 0
    noMenuMode =
    startInTaskCenter = 0
    helpText = 1
    edit_showFieldHelp = icon
    ModuleIconSet =
    ModuleIconSetPath =
    ModuleIconSize =
    UsePNGModuleImages = 0
    UsePNGFix = 0
    styleSheetFile_post =
    edit_maxRecords = 2
    noOnChangeAlertInTypeFields = 1
    saveTreePositions = 1
    dontShowPalettesOnFocusInAB = 0
    deleteCmdInClipboard = 0
}

setup.fields{
    # Persönliche Daten ein/ausblenden
    realName.disabled = 1
    email.disabled = 1
    emailMeAtLogin.disabled = 1    
    password.disabled = 0
    password2.disabled = 0    
    lang.disabled = 0

    # Beim Start ein/ausblenden
    startModule.disabled = 1
    thumbnailsByDefault.disabled = 1
    titleLen.disabled = 1    

    # Bearbeiten und erweiterte Funktionen ein/ausblenden
    edit_RTE.disabled = 1
    edit_wideDocument.disabled = 1
    edit_docModuleUpload.disabled = 1
    enableFlashUploader.disabled = 1
    resizeTextareas.disabled = 1
    resizeTextareas_MaxHeight.disabled = 1
    resizeTextareas_Flexible.disabled = 1
    disableCMlayers.disabled = 1
    copyLevels.disabled = 1
    recursiveDelete.disabled = 1
    
    # Adminfunktionen ein/ausblenden    
    simulate.disabled = 
    debugInWindow.disabled = 
    installToolEnableButton = 
    
    # Rich-Text-Editor ein/ausblenden
    rteWidth.disabled = 1
    rteHeight.disabled = 1
    rteMaxHeight.disabled = 1
    rteResize.disabled = 1
    rteCleanPasteBehaviour.disabled = 1

    # Weitere einstellungen ein/ausblenden
    hideSubmoduleIcons.disabled = 
    navFrameResizable.disabled = 
    condensedMode.disabled = 
    noMenuMode.disabled = 
    startInTaskCenter.disabled = 
    helpText.disabled = 
    edit_showFieldHelp.disabled = 
    ModuleIconSet.disabled = 
    ModuleIconSetPath.disabled = 
    ModuleIconSize.disabled = 
    UsePNGModuleImages.disabled = 
    UsePNGFix.disabled = 
    styleSheetFile_post.disabled = 
    edit_maxRecords.disabled = 
    noOnChangeAlertInTypeFields.disabled = 
    saveTreePositions.disabled = 
    dontShowPalettesOnFocusInAB.disabled = 
    deleteCmdInClipboard.disabled = 
}

ACHTUNG: dies ist nur eine Ansammlung von diversen Möglichkeiten auf einen Blick. Diese müssen natürlich von jedem individuell und nach Bedarf angepasst werden.

Wer noch weitere Ergänzungen hat, kann sie uns gerne mitteilen!