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.

 

Bilder automatisch verkleinern mit Mindestgröße

Mit nachfolgendem Befehl lassen sich alle jpg-Bilder im Verzeichnis auf eine maximale Höhe/Breite von 1024 Pixel verkleinern. Das Seitenverhältnis wird beibehalten und die größere Seite auf 1024 px reduziert. Ist ein Bild kleiner als 1024 px, wird dieses Bild nicht beeinflusst.

mogrify -resize '1024x1024>' *.jpg

Weitere Infos gibt auf der Seite von imagemagick

 

Browsercache leeren

Immer wieder wurde ich von Kunden gefragt wie sie diesen Browsercache löschen können.
Ich habe dann immer nachgefragt welchen Browser Sie verwenden, welche Browserversion und welches Betriebssystem. Schließlich läuft das Leeren des Browsercaches bei jedem Browser anders ab.
Manche Kunden waren dann mit den Rückfragen überfordert und hatten keine Lust mehr den Cache zu leeren.

Noch vor Ende des Jahres habe ich mich aufgemacht um dieses Chaos aus der Welt zu schaffen und die Seite Browsercache-leeren.de ins Leben gerufen.
Mit dieser Seite erhält der Kunde eine Seite zur Selbsthilfe 🙂
Die benötigten Infos werden per Javascript ermittelt und daraufhin die nötigen Schritte zum Löschen des Browsercaches aufgeführt.

Aktuell werden die gängigen Browser erkannt, ich freue mich natürlich über Lob und Kritik so wie über ergänzende Infos zu noch fehlenden Browsern.

 

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;
  }

 

TYPO3 Update Einzeiler

Mit folgendem Konsolenkommando kann ein vorhandenes TYPO3 6.0 auf 6.0.5 aktualisiert werden:

wget get.typo3.org/6.0 -O update.tgz && tar xzf update.tgz && rm update.tgz && chown -R wwwrun:www typo3_src-6.0.5 && rm typo3_src-6.0 && ln -s typo3_src-6.0.5 typo3_src-6.0

Voraussetzung hierfür ist, dass Sie in der Konsole über die entsprechenden Berechtigungen verfügen. Auch sollten Sie sich in dem Verzeichnis befinden, in dem sich der bisherige TYPO3-Sourcen Ordner befindet.
Bevor Ihr den Einzeiler ausführt, passt bitte die einzelnen Kommandos an eure Serverumgebung an! Ich übernehme keine Garantie, dass dieser Einzeiler bei jedem korrekt funktioniert!

 

„Seite anzeigen“ im News-Sysfolder funktioniert nicht

Wenn News in einem Newsartikel-Ordner erstellt werden, funktioniert die Vorschau-Funktion nicht. Klickt ein Redakteur auf „Dokument speichern und Webseite anzeigen“ wird die 404-Fehlerseite angezeigt, da es sich um einen Sysfolder und nicht um eine Seite handelt. Wird jedoch in den Seiteneigenschaften des Sysfolders, unter „Ressourcen“, „TypoScript-Konfiguration“ die nachfolgende Zeile integriert, wird beim Speichern und Anzeigen die entsprechende Seite angezeigt.

tx_ttnews.singlePid = XXX

XXX muss hierbei durch die UID der Seite ersetzt werden, auf der die Detailansicht der News hinterlegt ist.

 

TYPO3 RTE – cellpadding und cellspacing Attribut aus table-Tag entfernen

Wenn im RTE eine Tabelle erstellt wird, enthält diese nach dem Speichern die Attribute „cellpadding“ und „cellspacing“. Diese Attribute sind jedoch veraltet und sollten per CSS gesetzt werden.

Aus diesem Grund kann über die Seiten-TSConfig das Verhalten des RTE’s angepasst werden:

RTE.default.proc {
exitHTMLparser_db = 1
	exitHTMLparser_db {
		tags {
			table.fixAttrib.cellpadding.unset = 1
			table.fixAttrib.cellspacing.unset = 1
		}
	}
}

Mit diesem Eintrag wird beim Speichern einer RTE-Tabelle die Attribute cellpadding und cellspacing aus dem table-Tag entfernt und somit nicht in der Datenbank gespeichert.

 

TYPO3 RTE eigener CSS-Stil für Tabellen

Seit der TYPO3 Version 4.6 hat sich einiges an der RTE-Konfiguration geändert, manche Eigenschaften sind veraltet und werden in der Version 4.8 entfernt. Eine Liste findet sich unter http://forge.typo3.org/issues/28325

Um einen eigenen CSS-Stil für Tabellen im RTE festzulegen muss folgendes gesetzt werden:

im TSConfig der Hauptseite:

RTE.default.contentCSS = pfad/zur/rte.css
RTE.default.buttons.blockstyle.tags.table.allowedClasses := addToList(tabellenstil1)
RTE.default.proc.allowedClasses := addToList(tabellenstil1)
RTE.default.buttons.blockstyle.tags.table.allowedClasses := addToList(tabellenstil2)
RTE.default.proc.allowedClasses := addToList(tabellenstil2)

in der in Zeile 1 angegebenen CSS-Datei (als Beispiel):

table.tabellenstil1{border:none;border-collapse:collapse;margin:0 0 30px;width:100%;}
table.tabellenstil1 th{background:none;border:none;color:#272627;font-weight:700;padding:3px 7px;text-align:left;}
table.tabellenstil1 td{border:none;color:#272627;padding:3px 7px;}
table.tabellenstil2{border:1px solid #272627;border-collapse:collapse;margin:0 0 30px;width:100%;}
table.tabellenstil2 th{background:#272627;border:1px solid #272627;color:#fff;font-weight:700;padding:3px 7px;text-align:left;}
table.tabellenstil2 td{border:1px solid #272627;color:#272627;padding:3px 7px;}

 

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!