Page ID und Content ID in Tabelle speichern
| Autor | Nachricht |
|---|---|
|
Verfasst am: 16. 01. 2012 [16:04]
|
|
|
Rey
Themenersteller
Dabei seit: 14.01.2010
Beiträge: 33
|
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. |
|
Verfasst am: 16. 01. 2012 [16:17]
|
|
|
aemka
Dabei seit: 23.07.2009
Beiträge: 255
|
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. |
|
Verfasst am: 16. 01. 2012 [16:19]
|
|
|
Rey
Themenersteller
Dabei seit: 14.01.2010
Beiträge: 33
|
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 [Dieser Beitrag wurde 3mal bearbeitet, zuletzt am 16.01.2012 um 16:33.] |
|
Verfasst am: 16. 01. 2012 [16:39]
|
|
|
aemka
Dabei seit: 23.07.2009
Beiträge: 255
|
Nein, du brauchst kein Backend-Modul, nur das was in dem Link beschrieben ist + ext_emconf.php. |
|
Verfasst am: 16. 01. 2012 [17:02]
|
|
|
Rey
Themenersteller
Dabei seit: 14.01.2010
Beiträge: 33
|
also ich habe in die ext_emconf das eingetragen PHP $EM_CONF[$_EXTKEY] = array( '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 PHP class tx_extkey_hooks_tce {
function hook_processDatamap_afterDatabaseOperations(&$hookObjectsArr, &$status, &$table, &$id, &$fieldArray) {
// Process hook directly:
ob_start();
echo "<pre>INCOME FIELD ARR ";
var_dump($fieldArray);
file_put_contents('log.txt', file_get_contents('log.txt') . "\n" . ob_get_contents());
echo "</pre>";
echo "<pre>TABLE ";
var_dump($table);
echo "</pre>";
echo "<pre>ID ";
var_dump($id);
file_put_contents('log2.txt', file_get_contents('log2.txt') . "\n" . ob_get_contents());
echo "</pre>";
echo "<pre> TECE MAIN ";
var_dump($hookObjectsArr);
file_put_contents('log3.txt', file_get_contents('log3.txt') . "\n" . ob_get_contents());
echo "</pre>";
echo "<pre> status ";
var_dump($status);
file_put_contents('log3.txt', file_get_contents('log3.txt') . "\n" . ob_get_contents());
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 [Dieser Beitrag wurde 7mal bearbeitet, zuletzt am 16.01.2012 um 17:50.] |
|
Verfasst am: 16. 01. 2012 [17:51]
|
|
|
aemka
Dabei seit: 23.07.2009
Beiträge: 255
|
die hook-registrierung kommt nicht in die ext_emconf, sondern ext_localconf, so wie in dem Link beschrieben und dann sollte es passen. |
|
Verfasst am: 16. 01. 2012 [17:55]
|
|
|
Rey
Themenersteller
Dabei seit: 14.01.2010
Beiträge: 33
|
Das habe ich schon aber macht eben dennoch nichts |
|
Verfasst am: 16. 01. 2012 [17:56]
|
|
|
aemka
Dabei seit: 23.07.2009
Beiträge: 255
|
Conf-Cache hast du auch gelöscht? Ansonsten muss man sich das am lebenden Objekt mal ansehen. [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 16.01.2012 um 17:57.] |
|
Verfasst am: 16. 01. 2012 [18:00]
|
|
|
Rey
Themenersteller
Dabei seit: 14.01.2010
Beiträge: 33
|
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 ich bekomme die Meldung "hook_processDatamap_afterDatabaseOperations' was not prepended with user_" [Dieser Beitrag wurde 4mal bearbeitet, zuletzt am 17.01.2012 um 09:02.] |
|
Verfasst am: 17. 01. 2012 [15:54]
|
|
|
Rey
Themenersteller
Dabei seit: 14.01.2010
Beiträge: 33
|
In dem Tcemain stehen viele PageIDs drinnen wie kann ich die der aktuellen ermitteln? |



