Page ID und Content ID in Tabelle speichern

  • Rey Rey
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    16. 01. 2012, 16:04

    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.


  • 1
  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    16. 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.

    http://www.aemka.de/

  • Rey Rey
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    16. 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

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    16. 01. 2012, 16:39

    Nein, du brauchst kein Backend-Modul, nur das was in dem Link beschrieben ist + ext_emconf.php.

    http://www.aemka.de/

  • Rey Rey
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    16. 01. 2012, 17:02

    also ich habe in die ext_emconf das eingetragen

    1. $EM_CONF[$_EXTKEY] = array(
    2. 'title' => 'pages_content',
    3. .
    4. .
    5. .
    6. );
    7. $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
    1. class tx_extkey_hooks_tce {
    2. function hook_processDatamap_afterDatabaseOperations(&$hookObjectsArr, &$status, &$table, &$id, &$fieldArray) {
    3. // Process hook directly:
    4.  
    5. echo "<pre>INCOME FIELD ARR ";
    6. var_dump($fieldArray);
    7. file_put_contents('log.txt', file_get_contents('log.txt') . "\n" . ob_get_contents());
    8. echo "</pre>";
    9.  
    10. echo "<pre>TABLE ";
    11. var_dump($table);
    12. echo "</pre>";
    13.  
    14. echo "<pre>ID ";
    15. var_dump($id);
    16. file_put_contents('log2.txt', file_get_contents('log2.txt') . "\n" . ob_get_contents());
    17. echo "</pre>";
    18.  
    19. echo "<pre> TECE MAIN ";
    20. var_dump($hookObjectsArr);
    21. file_put_contents('log3.txt', file_get_contents('log3.txt') . "\n" . ob_get_contents());
    22. echo "</pre>";
    23.  
    24. echo "<pre> status ";
    25. var_dump($status);
    26. file_put_contents('log3.txt', file_get_contents('log3.txt') . "\n" . ob_get_contents());
    27. echo "</pre>";
    28. ob_end_close();
    29.  
    30.  
    31. }
    32.  
    33. }

    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

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    16. 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.

    http://www.aemka.de/

  • Rey Rey
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    16. 01. 2012, 17:55

    Das habe ich schon aber macht eben dennoch nichts

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    16. 01. 2012, 17:56

    Conf-Cache hast du auch gelöscht? Ansonsten muss man sich das am lebenden Objekt mal ansehen.

    http://www.aemka.de/

  • Rey Rey
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    16. 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]

    Anhänge (1)
    hfu_pages_content.zip application/octet-stream 0,00 B 127 heruntergeladen
  • Rey Rey
    Padawan
    0 x
    43 Beiträge
    0 Hilfreiche Beiträge
    17. 01. 2012, 15:54

    In dem Tcemain stehen viele PageIDs drinnen wie kann ich die der aktuellen ermitteln?

  • 1