Hallo, zusammen,
ich habe auf einer Website einen merkwürdigen Effekt: Ein Hook wird nicht aufgerufen. Monatelang wurde er - jetzt nicht mehr. Und ich habe m.E. nichts am (sehr übersichtlichen) Code geändert:
Setzen des Hooks:
Entsprechende Funktion:PHP-Code:$GLOBALS['TL_DCA']['tl_partner'] = [
'config' => [
'dataContainer' => DC_Table::class ,
'switchToEdit' => true ,
'sql' => [
'keys' => ['id' => 'primary'] ,
'engine' => 'InnoDB'
] ,
'onsubmit_callback' => [
['tl_partner' , 'createPartnerFile']
]
]
Als die Datei "partner.json" nicht (mehr) entstand dachte ich zuerst an irgendwelche Datei-Probleme (Rechte, Pfad etc.) aber dann habe ich als erste Zeile in der Funktion mal testweise "die ('???')" eingesetzt und Contao lief ganz normal weiter. Also wird offensichtlich der Hook nicht aufgerufen.PHP-Code:public function createPartnerFile()
{
$myLines = array();
$connection = System::getContainer()->get( 'database_connection' );
$rows = $connection->fetchAllAssociative( "SELECT * FROM tl_partner" );
foreach ( $rows as $iRow )
{
$bildFile = \Contao\FilesModel::findById( $iRow['image'] );
if ( $bildFile != null )
$bildURL = Environment::get( 'base' ) . $bildFile->path;
else
$bildURL = "";
$myLines[] = [
'Name' => $iRow['name'] ,
'Info' => $iRow['anschrift'] ,
'WWW' => $iRow['url'] ,
'Email' => $iRow['email'] ,
'Position' => $iRow['position'] ,
'Bild' => $bildURL ,
'Status' => $iRow['status']];
};
$filename = "files/intern/partner.json";
file_put_contents( $filename , json_encode( $myLines , JSON_PRETTY_PRINT ) );
}
Hat jemand eine Idee, wo es klemmen könnte?
Vielen Dank im Voraus!

Zitieren
