Hi,
ich möchte einen Plugin schreiben, der mir beim anlegen eines neuen Content Elements die dazugehörige PageId in eine Tabelle speichert oder diese direkt in tt_content einträgt als weiteres feld.
während ich im Kickstarter war ist mir jedoch aufgefallen was solch ein Plugin ja immer aufgerufen werden muss bzw. in tt_content eingebunden werden muss.
Weiß jemand einen Workaround? Schließlich soll dieser Plugin automatisiert die page id in das feld eintragen.
Der Ablauf wäre also so:
User legt ein tt_content element an
Speichert es ab
Die Page Id des Content elements wird in die erweiterte Spalte geschrieben.
Page ID und Content ID in Tabelle speichern
-
0 x16. 01. 2012, 16:04
-
0 x16. 01. 2012, 16:17
Du weißt schon, dass TYPO3 eh schon ein Logging dafür im Backend hat, auf das du zugreifen könntest?
Ansonsten würde ich mich in einen TCA Hook beim Speichern der Elemente einklinken und darüber deine eigene Tabelle befüllen.
-
-
0 x16. 01. 2012, 16:19
Nein weiß ich nicht.
Könntest du das mit dem hook etwas genauer erklären?
Also für ein hook benötige ich vermutlich ein Backend Modul oder?
Ich habe nämlich zwecks hook so etwas gefunden http://its7.de/tipps-tricks/einzelansicht/article/typo3-hook-und-tca/
bloß wenn ich es nur als backend oder Backendmodul anlege bekomme ich keine ext_localconf.php datei -
-
0 x16. 01. 2012, 16:39
Nein, du brauchst kein Backend-Modul, nur das was in dem Link beschrieben ist + ext_emconf.php.
-
-
0 x16. 01. 2012, 17:02
also ich habe in die ext_emconf das eingetragen
- 'title' => 'pages_content',
- .
- .
- .
- );
- $GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = 'EXT:' . $_EXTKEY . '/hooks/class.tx_extkey_hooks_tce.php:hook_processDatamap_afterDatabaseOperations';
und habe dann eine klasse angelegt in dem unterordner hooks
- class tx_extkey_hooks_tce {
- function hook_processDatamap_afterDatabaseOperations(&$hookObjectsArr, &$status, &$table, &$id, &$fieldArray) {
- // Process hook directly:
- echo "<pre>INCOME FIELD ARR ";
- echo "</pre>";
- echo "<pre>TABLE ";
- echo "</pre>";
- echo "<pre>ID ";
- echo "</pre>";
- echo "<pre> TECE MAIN ";
- echo "</pre>";
- echo "<pre> status ";
- echo "</pre>";
- ob_end_close();
- }
- }
habe extra ein paar text Dateien erstellt um zu sehen ob er da was rein schreibt tut er aber nicht.
was für mich bedeutet es wird nicht aufgerufen.ps: in extKey steht natürlich mein Extkey name
-
-
0 x16. 01. 2012, 17:51
die hook-registrierung kommt nicht in die ext_emconf, sondern ext_localconf, so wie in dem Link beschrieben und dann sollte es passen.
-
-
-
0 x16. 01. 2012, 17:56
Conf-Cache hast du auch gelöscht? Ansonsten muss man sich das am lebenden Objekt mal ansehen.
-
-
0 x16. 01. 2012, 18:00
Ja ich habe alle caches gelöscht. ich habe es mal als zip in den anhang gelegt.
ich hatte ex_localconf.php gehabt anstelle von ext_localconf.php
Es wird nun aufgerufen aber [b]ich bekomme die Meldung
"hook_processDatamap_afterDatabaseOperations' was not prepended with user_"[/b] -
-