Probleme mit LOCAL_LANG in FE Extension

  • monti monti
    R2-D2
    0 x
    69 Beiträge
    0 Hilfreiche Beiträge
    07. 02. 2006, 10:22

    Hallo,

    ich bastele gerade an einer FE Extension, die eigentlich bloß Daten aus einer DB ausliest und im FE wieder gibt. Die Label der einzelnen Felder (z.B. Checkbox) sind, wie immer, in der locallang_db.php gespeichert. Um das in der lacallang_db.php beschriebene Array nutzen zu können, hab ich

    $LOCAL_LANG->includeLLFile("EXT:my_extension/locallang_db.php");

    eingebunden. Das hat am Anfang auch wunderbar funktioniert, doch wenn ich jetzt die Extension aufrufe kommt folgende Fehlermeldung:

    "Call to a member function on a non-object"

    Kann mir jemand sagen woran das liegen kann? Ich zerbeiße mir an dem Prob. schon seit Tagen die Zähne!

    Danke für die Hilfe, Monti.


  • 1
  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    07. 02. 2006, 11:28

    die Angaben werden normalerweise nur für die Formulare ausgelesen und passieren in der tca.php.
    Dort ist der Syntax dieser:

    1. "label" => "LLL:EXT:extension/locallang_db.php:labelname"

    Alles andere holt man sich aus der pi1/locallang.php. Ausgelesen wird das so:

    1. $this->pi_loadLL();
    2. $label=$this->pi_getLL('labelname')

  • monti monti
    R2-D2
    0 x
    69 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2006, 07:26

    Hallo steffenk,

    danke für deine Antwort! So ganz komme ich aber noch nicht damit klar! Den Syntax für die tca.php kenne ich. Mein Problem ist, das Array aus der extension/locallang_db richtig auszulesen!
    Ein Feld meiner Tabelle ist z.B. eine Selectorbox, mit drei von mir vordefinierten Werten. In der Tabelle selber wird nur die ID für einen bestimmten Wert der Selectorbox z.B. 0 gespeichert, je nach dem was im BE deklariert wird. Der dazu gehörige Klartext z.b. "Item1" ist in der locallang_db gespeichert.

    'tabelle.field.I.ID' => 'label'

    Die ID aus der Tabelle auszulesen ist leicht! Aber das Label der dazugehörigen ID auzulesen klappt nur sporadisch!

    Gruß Monti

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2006, 13:00

    hi monti,

    das ist so garnicht vorgesehen. Ich rate Dir, um nicht solche Klimmzüge machen zu müssen, einfach die benötigten Labels aus der locallang_db.php in die pi1/locallang.php zu kopieren, damit Du den einfachen Zugriff hast.

  • monti monti
    R2-D2
    0 x
    69 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2006, 13:15

    Oh Mann,

    darauf hätte ich auch selber kommen können! #angry# Das behebt zumindest mein Problem! Was mach ich aber wenn ich die Extension veröffentlichen möchte? Ich kann ja nicht in der Beschreibung schreiben. "Kopiert fogende Arrays von locallang_db.php zu pi2/locallang.php.
    Kann ich vielleicht schon im Kickstarter festlegen, wo er die Felder definiert?

    Gruß Monti

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    09. 02. 2006, 13:47

    naja, Du musst halt alle in der Extension verwendeten Sprachbegriffe in der locallang.php haben. Die User müssen das nicht machen, die Extension gibt ja die Labels aus, dadurch erübrigt sich das.

    Der Kickstarter schreibt nur die von ihm verwendeten Labels in die Sprachdateien, alles weitere muss man manuell machen, das ist der gewohnte Arbeitsvorgang.

  • 1