Die schönsten Weihnachtsgeschenke macht man sich manchmal doch selbst. Mit den nächsten Releases von 4-5, 4-6, 4-7 ist der Suggestwizard auch in Flexform-Feldern möglich.
Weiterlesen "Suggestwizard nun auch in Flexforms möglich – Türchen 8"
TYPO3 News, Development & Insider Infos
Die schönsten Weihnachtsgeschenke macht man sich manchmal doch selbst. Mit den nächsten Releases von 4-5, 4-6, 4-7 ist der Suggestwizard auch in Flexform-Feldern möglich.
Weiterlesen "Suggestwizard nun auch in Flexforms möglich – Türchen 8"
Heute möchte ich ein nützliches kleines Helferlein vorstellen, dass Entwicklern die Arbeit erleichtert. Die Extension abz_developer sorgt dafür, dass der TYPO3 Cache immer leer bleibt. Das ist vor allem dann hilfreich, wenn man das TypoScript in externe Dateien auslagert. Denn hier hilft config.no_cache=1 auch nicht. Über den Hook $TYPO3_CONF_VARS['SC_OPTIONS']['tslib/index_ts.php']['preBeUser'] sorgt die Extension dafür, dass die Caching Tabellen vor dem Rendern der Seite immer geleert werden. Wenn die Extension RealURL installiert ist, werden auch deren Caching Tabellen geleert.
Aber Achtung: die Extension ist nur für die Entwicklung und nicht für den Live Betrieb gedacht! Am Besten konfiguriert man das TYPO3 für den Live Betrieb und muss dann nur noch die Extension abz_developer deinstallieren, um auch das Verhalten mit aktiviertem Cache testen zu können.
Vor ein paar Tagen ist eine mit TYPO3 4.6 kompatible Version veröffentlicht worden. Bei der Installation kann übrigens die Abhängigkeit zur Extension cc_debug problemlos ignoriert werden.
Wünschenswert wäre vielleicht noch eine Integration ins Reporting Modul im Backend, damit man prominent darauf hingewiesen wird, dass die Extension noch deinstalliert werden muss.
Das TYPO3 Security Team hat in enger Zusammenarbeit mit dem Documentation Team einen Nachfolger des Security Cookbooks veröffentlicht. Der Sicherheits Leitfaden behandelt nicht nur technische Aspekte sondern soll Administratoren, Integratoren und Redakteuren generelle Richtlinien an die Hand geben. Besonders interessant sind auch die Hinweise, was zu tun ist, wenn die eigene Webseite kompromitiert wurde.
Die ganze Ankündigung zum neuen Security Guide kann hier nachgelesen werden.
Der Security Guide kann hier gelesen werden oder im OpenOffice Format runtergeladen werden.
Sobald man mehr als ein Dutzend TYPO3 Webseiten betreibt, wird man recht schnell den Wunsch verspüren, diese zentral überwachen zu können. Hier kommt die TYPO3 Extension Caretaker ins Spiel, die von einem zentralen Server aus beliebig viele TYPO3 Instanzen überwachen kann. Dabei wird nicht nur die Erreichbarkeit der Webseite geprüft, sondern auch die Sicherheit der verwendeten TYPO3 Version und Extensions.
Weiterlesen "TYPO3 Webseiten mit Caretaker überwachen – Türchen 6"
Erneut ein schönes Snippet, welches inzwischen in den meisten eigenen Extensions untergebracht ist. Die Funktion ist statisch und kann in diesem Beispiel mit Tx_ExtensionName_Utility_Helper::flexFormAutoLoader() aufgerufen werden. Dieser Aufruf kommt an das Ende eurer ext_tables.php Datei und sorgt dafür, dass eure FlexForms automatisch mit euren Plugins verknüpft werden. Sehr praktisch, wenn es viele Plugins gibt.
Habt ihr vielleicht Ideen für die Ergänzung oder weitere Ideen für ähnliche Funktionalitäten?!
<?php class Tx_ExtensionName_Utility_Helper { /** * Call this function at the end of your ext_tables.php to autoregister the flexforms * of the extension to the given plugins. */ public static function flexFormAutoLoader() { global $TCA, $_EXTKEY; $FlexFormPath = t3lib_extMgm::extPath($_EXTKEY) . 'Configuration/FlexForms/'; $extensionName = t3lib_div::underscoredToUpperCamelCase($_EXTKEY); $FlexForms = t3lib_div::getFilesInDir($FlexFormPath, 'xml'); foreach ($FlexForms as $FlexForm) { $fileKey = str_replace('.xml', '', $FlexForm); $pluginSignature = strtolower($extensionName . '_' . $fileKey); $TCA['tt_content']['types']['list']['subtypes_excludelist'][$pluginSignature] = 'layout,select_key,recursive'; $TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform'; t3lib_extMgm::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/' . $fileKey . '.xml'); } } }
Klein aber fein. Mit diesem Dreizeiler könnt ihr euch einen zufälligen Datensatz selektieren. Auch wenn zwei Queries ausgeführt werden, sind beide sehr performant. Die erste macht einen richtigen Count und selektiert nicht alle Daten. Die Zweite sorgt mit Offset und Limit für ein kleines Resultset (eine Zeile). Eine Query von Hand zu erstellen würde auch gehen (ORDER BY RAND()), diese würde jedoch nicht die QuerySettings und Einstellungen von Extbase berücksichtigen. Viel Spaß damit.
<?php class Tx_ExtensionKey_Domain_Repository_AbstractRepository extends Tx_Extbase_Persistence_Repository{ /** * Get a random object * @return Tx_Extbase_Persistence_QueryResultInterface|array */ public function findRandom() { $rows = $this->createQuery()->execute()->count(); $row_number = mt_rand(0, max(0, ($rows - 1))); return $this->createQuery()->setOffset($row_number)->setLimit(1)->execute(); } }
