TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

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.
Profil
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.

ProfilWWWSkype
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.]
Profil
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.

ProfilWWWSkype
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.]
Profil
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.

ProfilWWWSkype
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
Profil
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.]

ProfilWWWSkype
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.]
Dateianhang

hfu_pages_content.zip (Typ: application/octet-stream, Größe: 12.53 Kilobyte) — 8 mal heruntergeladen
Profil
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?
Profil