TYPO3 6.1 Eigener Bildeffekt hinzufügen

In einem Projekt sollte der TYPO3-Redakteur die Bilder im Backend zurechtschneiden können.
Über das Feld „Höhe“ und „Breite“ wird die gewünschte Bildgröße definiert welche dann mittig aus dem Bild ausgeschnitten wird.
Es werden dabei nur Bilder beschnitten, die größer sind als die gewünschte Zielgröße.
Folgende Schritte sind für einen neuen Bildeffekt nötig:
Im TSConfig der Seiteneigenschaften muss folgender Eintrag hinzugefügt werden:

TCEFORM.tt_content.image_effects.addItems.30 = Zuschneiden

Dadurch wird im Auswahlmenü „Effekt“ im Tab „Erscheinungsbild“ ein weiterer Punkt namens „Zuschneiden“ hinzugefügt.
Damit dieser auch funktioniert, wenn er ausgewählt wird, muss noch folgender Code in das TypoScript-Template integriert werden:

# Bildeffekt "Zuschneiden"
temp.image < tt_content.image.20
tt_content.image.20 = CASE
tt_content.image.20 {
    key.field = image_effects
    default < temp.image
    30 < temp.image
    30 {
        equalH >
        1.file {
            width {
                append = TEXT
                append.value = c
            }
            height {
                append = TEXT
                append.value = c
                field = imageheight
            }
        }
    }
}
tt_content.textpic.20 >
tt_content.textpic.20 < tt_content.image.20
tt_content.textpic.20 {
    default {
        text.10 = COA
        text.10 {
            if.value = 24
            if.isGreaterThan.field = imageorient
            10 = < lib.stdheader
            10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
        }
        text.20 = < tt_content.text.20
        text.wrap = <div class="csc-textpic-text">|</div>
    }
    30 < tt_content.image.20.30
    30 {
        text.10 = COA
        text.10 {
            if.value = 24
            if.isGreaterThan.field = imageorient
            10 = < lib.stdheader
            10.stdWrap.dataWrap = <div class="csc-textpicHeader csc-textpicHeader-{field:imageorient}">|</div>
        }
        text.20 = < tt_content.text.20
        text.wrap = <div class="csc-textpic-text">|</div>
    }
}

Bei meiner Recherche zu diesem Thema bin ich auf verschiedene Foreneinträge und Snippets gestoßen, allerdings brachte keiner dieser Einträge den gewünschten Erfolg.
Von da her hoffe ich, dass dieser Artikel dem einen oder anderen weiter hilft.

[Update 11.02. 2014]
Der bisherige Code wurde erweitert und durch einen 6.2 kompatiblen Code ersetzt.

 

Gewähltes Layout in TYPO3 als CSS-Klasse rendern

Wird in einem TYPO3-Inhaltselement ein „Layout des Inhaltselements“ ausgewählt passiert in der Standardinstallation nichts weiter.
Mit folgendem Typoscript wird die ID des gewählten Layouts als CSS-Klasse in das umschließende Element gerendert:

# Layout bei Inhaltselement zusätzlich in div wrappen
tt_content.stdWrap.innerWrap.cObject.default {
 20.10.noTrimWrap = || layout-{field:layout} |
 20.10.insertData = 1
}

 

TYPO3 6.1 Erstellen von Inhalt nicht möglich

Heute bin ich auf folgendes Problem gestoßen:
Im TYPO3-Backend wollte ich in der Seiten-Ansicht ein neues Inhaltselement anlegen. Nach einem Klick auf das entsprechende Icon wurde die Seite jedoch leer und nichts weiter passierte.
Nach einer kurzen Recherche im Apache-Errorlog fand ich folgenden Fehler:

PHP Fatal error:  Call to undefined method TYPO3\\CMS\\Core\\Utility\\General
Utility::readLLXMLfile() in /srv/www/htdocs/typo3conf/ext/we_gmanfahrt/pi1/
class.tx_wegmanfahrt_pi1_wizicon.php on line 61, referer: ...

Es stellte sich heraus, dass die Extension „we_gmanfahrt“ eine veraltete Funktion namens „t3lib_div::readLLXMLfile()“ verwendete.
Diese Funktion ist seit TYPO3 4.6 veraltet und wurde in Version 6.0 entfernt. Seit dem sollte die Funktion „t3lib_l10n_parser_Llxml::getParsedData()“ verwendet werden.
Gesagt, getan.
Die Übergabeparameter sind gleich geblieben und somit sollte durch einen Tausch der Funktionen das Problem behoben sein.
Sollte…den das Phänomen beim Anlegen eines neuen Inhaltselements blieb.
Im Errorlog fand sich nun ein neuer Eintrag:

PHP Fatal error:  Call to undefined method tx_wegmanfahrt_pi1_wizicon::
getCharset() in /srv/www/typo3/typo3_src-6.1.0/typo3/sysext/core/Classes/
Localization/Parser/LocallangXmlParser.php on line 54, referer: ...

Wie sich herausstellte, hängt dies mit dem „neuen“ TYPO3 zusammen. Eine Lösung wurde von Thomas Dudzak im Bugtracker bereitgestellt:

/**
  * Reads the [extDir]/locallang.xml and returns the $LOCAL_LANG array found in that file.
  *
  * @return    The        array with language labels
  */
  function includeLocalLang()    {
    $llFile = t3lib_extMgm::extPath('td_calendar').'locallang.xml';
    $version =  class_exists('t3lib_utility_VersionNumber')
              ? t3lib_utility_VersionNumber::convertVersionNumberToInteger(TYPO3_version)
              : t3lib_div::int_from_ver(TYPO3_version);
    if ($version >= 4007000) {
      $object = t3lib_div::makeInstance('t3lib_l10n_parser_Llxml');
      $LOCAL_LANG =  $object->getParsedData($llFile, $GLOBALS['LANG']->lang);
    } else {
      $LOCAL_LANG =  t3lib_div::readLLXMLfile($llFile, $GLOBALS['LANG']->lang);
    }
    return $LOCAL_LANG;
  }

 

Mehr Zeichen im Dateinamen in der TYPO3 Dateiliste anzeigen

In der Dateiliste werden die Zeichen des Dateinamens standardmäßig nach 30 Zeichen abgeschnitten.
Existieren jedoch mehrer Dateien mit ähnlichem Namen, ist es nur über den Tooltip möglich, sich den ganzen Dateinamen anzeigen zu lassen.
Die Zeichenanzahl lässt sich glücklicherweise pro Backenuser individuell einstellen.
Dazu findet sich unter „Benutzerwerkzeuge“ -> „Einstellungen“ -> Reiter „Beim Start“ -> „Maximale Titellänge“ ein Feld, in dem die Titellänge angepasst werden kann.
Ändert man hier den Wert auf „50“, werden die Dateinamen nach 50 Zeichen gekürzt.

Zu beachten gilt:
Dadurch ändert sich auch die Titellänge der Seiten im Seitenbaum!