Zum Inhalt springen

Programmgesteuertes Setzen von Werten im Backend

Erstellt am 20. September 2006 · 1 Antwort · letzte Antwort am 24. September 2006

Tags: Frage

helge ·

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 dokumentiert). Man kann ein "user"-Feld 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:

// Uebernehmen eines Artikels aus dem Redaktionssystem
$article = getArticle();

//  Hier vermute ich das Problem beim Speichern: der Name des 
//  input's wird von typo3 vermutlich nicht erkannt. 
function wrapInput($PA, $text) {
  return '<input name="'.$PA['itemFormElName'].
         '" value="'.$text.'" disabled="disabled" />';
}

//  Die selbst geschriebene User-Funktion
function user_printArticleID($PA, $fobj) {
  global $article;
  return wrapInput($PA, $article['article_id']);
}

$TCA["my_plugin"] = Array (
  // ...
  "columns" => Array (
    // ...
    "article_id" => Array (		
      "exclude" => 1,		
      "label" => "LLL:EXT:my_plugin/locallang_db.xml:my_plugin_list.article_id",	
      "config" => Array (
        'type' => 'user',
        'userFunc' => 'user_printArticleID'
      )
    )
  )
);

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

steffenk ·

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.