Programmgesteuertes Setzen von Werten im Backend

  • helge helge
    Padawan
    0 x
    53 Beiträge
    0 Hilfreiche Beiträge
    20. 09. 2006, 13:53

    Ich muss für mein Projekt Daten aus einem externen Redaktionssystem einlesen. Dazu schreibe ich an einem Plugin.

    Nun habe ich das Problem, die eingelesenen Daten im Backend darzustellen, zu ändern und wieder abzuspeichern.

    $TCA['my_plugin']['columns'] bietet dafür anscheinend keine Möglichkeit. Einem Eingabefeld vom Typ "text" oder "input" bietet nur die Möglichkeit, einen Defaultwert zu setzen, aber nicht den Wert zu überschreiben (zumindest nicht [url=http://typo3.org/documentation/document-library/core-documentation/doc_core_api/current/view/4/2/]dokumentiert[/url]). Man kann ein [url=http://typo3.org/documentation/document-library/core-documentation/doc_core_api/current/view/4/2/#id2818640]"user"-Feld[/url] definieren, mit dem man die Funktion zur Darstellung des Feldes selbst schreibt. Aber die Dokumentation dazu ist sehr spärlich, und ich schaffe es nicht, den eingegebenen Wert auch zu speichern.

    Hier ein wenig Code zur Verdeutlichung des Vorgangs:

    1. // Uebernehmen eines Artikels aus dem Redaktionssystem
    2. $article = getArticle();
    3.  
    4. // Hier vermute ich das Problem beim Speichern: der Name des
    5. // input's wird von typo3 vermutlich nicht erkannt.
    6. function wrapInput($PA, $text) {
    7. return '<input name="'.$PA['itemFormElName'].
    8. '" value="'.$text.'" disabled="disabled" />';
    9. }
    10.  
    11. // Die selbst geschriebene User-Funktion
    12. function user_printArticleID($PA, $fobj) {
    13. global $article;
    14. return wrapInput($PA, $article['article_id']);
    15. }
    16.  
    17. $TCA["my_plugin"] = Array (
    18. // ...
    19. "columns" => Array (
    20. // ...
    21. "article_id" => Array (
    22. "exclude" => 1,
    23. "label" => "LLL:EXT:my_plugin/locallang_db.xml:my_plugin_list.article_id",
    24. "config" => Array (
    25. 'type' => 'user',
    26. 'userFunc' => 'user_printArticleID'
    27. )
    28. )
    29. )
    30. );

    Wie kriege ich typo3 dazu, den Wert in meinem selbst erzeugten Input-Feld zu lesen (das heisst vermutlich, welchen Namen muss ich diesem Input wirklich geben)? Oder gibt es eine andere Möglichkeit?

    Danke

    Helge


  • 1
  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    24. 09. 2006, 12:37

    ich versthe Deine Problematik nicht so ganz.
    Wie liest Du die Fremddaten ein ? Hast Du eine Tabelle, in der die Daten gespeichert werden ? Dann kannst D diese doch auch ändern.
    Brauchst Du eine Importfunktion ? Dann mach Dir doch ein BE-Modul.

    vorbelegen kann man übrigens im pageTS.

  • 1