Das heute Türchen wird den Extension-Entwicklern gewidmet, die den sinnfreien Text „Code:“ im Seitenmodul Leid sind und den gerne ersetzen würden.
Das Feature habe ich in der neuen tt_news 3.0 entdeckt und werde das wohl künftig in jeder Extension verwenden. Statt der Zeile „Code: “ zeigt tt_news bereits im Seitenmodul an, welche Darstellung gewählt wurde, also zB. List, Latest oder Singleanzeige. Das ist nicht nur für den Entwickler, sondern auch für den Redakteur extrem sinnvoll.
Vorgehensweise
Der Artikel geht auf die Extension rgslideshow ein, der ich dieses Feature gegönnt habe (die Version ist aber noch nicht im TER). In der ext_localconf.php brauchts lediglich 1 Zeile, die den Hook aufruft.
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['list_type_Info']['rgslideshow_pi1']['rgslideshow'] = 'EXT:rgslideshow/lib/class.tx_rgslideshow_cms_layout.php:tx_rgslideshow_cms_layout->getExtensionSummary'; |
Wichtig ist dabei die Anpassung der Stellen, wo rgslideshow vorkommt. Die Stelle im Array nach list_type_info gibt das Plugin an, das konfiguriert wird.
Anschließend muss die entsprechende Datei mit folgendem Inhalt angelegt werden:
/** * Page module * * @author Ringer Georg * @package TYPO3 * @subpackage tx_rgslideshow */ class tx_rgslideshow_cms_layout { /** * Returns information about this extension's pi1 plugin * * @param array $params Parameters to the hook * @param object $pObj A reference to calling object * @return string Information about pi1 plugin */ function getExtensionSummary($params, &$pObj) { if ($params['row']['list_type'] == 'rgslideshow_pi1') { $data = t3lib_div::xml2array($params['row']['pi_flexform']); if (is_array($data) && $data['data']['sDEF']['lDEF']['mode']['vDEF']) { $key = strtolower($data['data']['sDEF']['lDEF']['mode']['vDEF']); $result = sprintf( $GLOBALS['LANG']->sL('LLL:EXT:rgslideshow/locallang_db.xml:cms_layout.mode'), $GLOBALS['LANG']->sL('LLL:EXT:rgslideshow/locallang_db.xml:flex_general.mode.' . $key) ); //flex_general.mode } if (!$result) { $result = $GLOBALS['LANG']->sL('LLL:EXT:rgslideshow/locallang_db.xml:cms_layout.not_configured'); } } return $result; } } if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rgslideshow/lib/class.tx_rgslideshow_cms_layout.php']) { include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/rgslideshow/lib/class.tx_rgslideshow_cms_layout.php']); } |
In der Funktion getExtensionSummary kann man nun die Zeile festlegen, die ausgegeben werden soll. Hier ist man vollkommen frei. In diesem Beispiel wird die Flexform-Konfiguration ausgelesen und dargestellt.
Am Ende noch den Cache löschen und das ganze sollte funktionieren.
Was hast du noch für Ideen was man mit diesem Hook machen kann, um die Usability und das Wohlfühlen von Redakteuren zu verbessern?