Seiten im Browser neuladen – verschiedene Arten und ihre Wirkung

Wenn ein Neuladen der Seite Formulareingaben nicht zurücksetzt, was hat dann der Browser gerade getan??? Warum nutzt mein Browser trotz Neuladens der Seite noch die alte Version der CSS-Datei??? Schnell merkt man, dass „Neuladen“ nicht gleich „Neuladen“ ist. Peter Joras hat eine schöne Zusammenfassung der verschiedenen Möglichkeiten des Neuladens und der jeweiligen Auswirkungen zusammengestellt:
How does hitting enter on the address bar versus using the browser refresh button versus using F5 differ as far as what happens to reload a page?

(als PDF-Backup)

TCA erweitern

Das TCA von TYPO3 lässt sich seit Langem via ext_table.php erweitern und/oder manipulieren. Das Ganze funktioniert seit TYPO3 6.2 aber auch strukturierter und obendrein dann auch performanter (weil gecacht). Das erklärt Maddy in ihrem Beitrag „TCA manipulation in TYPO3 6.2″ (englisch) recht schön.

Dennoch wollte es bei mir nicht immer klappen. Im speziellen Fall wollte ich in einem betagteren Projekt mit TYPO3 6.2.29 und tt_news 3.6.0 die News-Artikel um ein paar Felder erweitern. War die Erweiterung des TCA in der ext_tables.php eingetragen, lief alles. Sobald ich sie in Configuration/TCA/Overrides/tt_news.php auslagerte, wurde sie ignoriert.

Lösung

Via Configuration/TCA/Overrides/ lassen sich offenbar nur Tabellen verändern, die auf gleichem Weg (also via Configuration/TCA/) definiert wurden.

 

Quelle

Query debuggen mit Extbase

Eine Abfrage ans Repository bleibt leer? Aber warum? Welcher Parameter in der Abfrage führte zum leeren Ergebnis?

Leider erhält man nicht so rasch die SQL-Query, die hier abgefeuert wurde. Aber mit einem kleinen Eingriff wird man doch schlauer: folgenden Schnipsel vor dem $query->execute(); einfügen:

/** @var Typo3DbQueryParser $queryParser */
$queryParser = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\Storage\\Typo3DbQueryParser');
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($queryParser->parseQuery($query));

Update 2017-12-06

In TYPO3 8.x ist durch die Integration von Doctrine der Aufruf etwas anders

$queryParser = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\Storage\Typo3DbQueryParser::class);
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($queryParser->convertQueryToDoctrineQueryBuilder($query)->getSQL());

 

Quellen:

Senfnudeln

Der verrückte Koch hat mal wieder eine Idee aufgeschnappt: Nudeln mit Gurken und Senf.

Eigentlich fing es ganz harmlos an: letzte Woche blieben vom Pasta-Tag Nudeln übrig, was freitags dann im Firmenchat kommuniziert wurde – mit der Bemerkung, man möge sich dran bedienen, und es sei auch noch Ketchup auffindbar, ebenso wie Senf und Gurken. Ein leichter Aufschrei des Entsetzens kam als Antwort: wie könne man nur Nudeln mit Senf kombinieren?!? Man kann!

Weiterlesen

„Broken pipe“ – Verbindungsabbruch von SSH-Sitzungen

Verbindungsabbrüche von SSH-Sitzungen aufgrund von Inaktivität sind oftmals ärgerlich. Sie lassen sich aber leicht umgehen.

Es ist durchaus verständlich, dass serverseitig versucht wird, nicht mehr benötigte bzw. inaktive SSH-Sitzungen zu beenden.  Ärgerlich wird es aber, falls die Zeiteinstellung etwas knapp bemessen ist. So wird beispielsweise bei mittwald eine SSH-Sitzung sehr rasch beendet. Hantiert man aber gerade mit TYPO3 und den Tücken des Cachings, so möchte man immer wieder Caches löschen und dann wieder weiterarbeiten – und ggf. erneut löschen.

Mit folgenden Einstellungen am Mac in ~/.ssh/config gehören die Abbrüche der Vergangenheit an:

Host *
TCPKeepAlive yes
ServerAliveInterval 60

Tool für PDF-Verarbeitung

Bei der Verarbeitung von PDFs stehen wir immer wieder vor Problemchen, dass Dateien in unerwarteten Versionen geliefert werden, komprimiert sind, wir alle Feldnamen mühselig heraussuchen müssen,…

Schaut Euch mal PDFtk Server an.
Simpel zu bedienen (wenn man das Manual liest bzw. dort nachschlägt), und bisher wunderbare Ergebnisse.

Unter bei stackoverflow gibts auch eine Version für Mac OSX 10.11

Links

 

„Nächster Montag“ via TypoScript

Im TYPO3.net-Forum ist die Frage aufgetaucht, wie man denn „nächster Montag“ via TypoScript errechnen könne? Mich hat die Fragestellung gereizt…


Die eigentliche Schwierigkeit fand ich eher darin, eine Berechnungsformel zu finden. Nach etwas Nachdenken und Nachlesen, welche Werte die Datumsfunktionen date()/strftime() liefern können, stand die Berechnung fest:

Man nehme den aktuellen UNIX-Zeitstempel und addiere hierzu: acht minus den aktuellen Wochentag als Zahl, multipliziert mit den Sekunden eines Tages.

page.555 = COA
page.555 {
  stdWrap.prioriCalc = 1
  stdWrap.strftime = %A, %d.%m.%Y
  10 = TEXT
  10 {
    data = date: U
  }
  20 = TEXT
  20 {
    data = date: U
    strftime = %u
    wrap3 = +(8-|)*(24*60*60)
  }
}

Quellen

TYPO3_cliMode – Breaking Change in TYPO3 8.0

Mit TYPO3 8.0 hat sich bei CLI Skripten eine Kleinigkeit geändert. Die Konstante TYPO3_cliMode ist fortan undefiniert. Mich hatte es eine Weile gekostet, bis ich drauf kam, warum mein CLI-Aufruf stets mit einem „Access denied“ starb. Mit der richtigen Suche findet sich in der Changelog-Doku dann aber des Rätsels Lösung:

==========================================
Breaking: #72368 - TYPO3 Constants removed
==========================================

Description
===========

The PHP constants ``TYPO3_enterInstallScript`` and ``TYPO3_cliMode`` and the global variable ``$GLOBALS['TYPO3_AJAX']`` which were used when a TYPO3 Request was initialized have been removed. They have been replaced by an alternative to use the ``TYPO3_REQUESTTYPE`` constant at the very beginning of each TYPO3 request.


Impact
======

Checking for the mentioned constants and global variable have no effect anymore and may lead to unexpected behaviour.

If not checked if the constant even was defined, the application will stop immediately.


Affected Installations
======================

Any installation which uses a third-party extension using these constants.


Migration
=========

Use ``TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_CLI`` or ``TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL`` instead.

.. index:: php

Translate-ViewHelper und Fluid-Inline-Notation in Attributen

Eigentlich ganz simpler Fall: in ein Sprachlabel soll eine Variable eingesetzt werden, die wiederum per ViewHelper zuvor verändert werden soll. Ein typisches Beispiel ist eine Anzeige der letzten Aktualisierung.

Die einfache Variante des ViewHelpers ohne eine ViewHelper-Anwendung auf das Argument:

<f:translate key="last_updated" arguments="{0: update_timestamp}" />

Möchte man ViewHelper in Inline Notation innerhalb des arguments-Attributs anwenden, so sind die Array-Werte innerhalb des Arrays in Singlequotes zu fassen (und darin befindliche Singlequotes ggf. zu escapen):

<f:translate key="last_updated" extensionName="{extensionName}" arguments="{0: '{update_timestamp->f:format.date(format:\'d.m.Y H:i\')}'}" />