Eigene Extension: Werte aus locallang_db.xml werden nicht angezeigt

  • schmidtsmikey schmidtsm...
    Jedi-Ritter
    0 x
    145 Beiträge
    0 Hilfreiche Beiträge
    03. 09. 2008, 12:22

    Hallo,

    ich habe mit Kickstarter eine eigene Extension erstellt, um vier neue Felder in die fe_users Tabelle zu installieren. Das funktioniert auch, ich kann in sr_feuser_register die neuen Felder benutzen.

    Die vier Felder waren 2x text und 2x int(11). Int deswegen, weil es sich hier bei sr_feuser_register um eine Auswahlbox handelt. Die anderen beiden sind normale Textfelder.

    Jetzt habe ich in cwt_community den Custom-Marker gesetzt, damit die Extension die Werte aus der DB liest.

    ...
    <tr>
    <td align="left">Position:</td>
    <td>###__CUSTOM__TX_FEUSERERWEITERUNG_POSITION###</td>
    </tr>
    <tr>

    <td align="left">Wir suchen:</td>
    <td><i>###__CUSTOM__TX_FEUSERERWEITERUNG_SUCHE###</i></td>

    </tr> <tr>
    <td align="left">Branche:</td>
    <td>###__CUSTOM__TX_FEUSERERWEITERUNG_BRANCHE###</td>
    </tr>
    <tr>
    <td align="left">Schwerpunkte:</td>
    <td>###__CUSTOM__TX_FEUSERERWEITERUNG_SCHWERPUNKTE###</td>
    </tr>

    Die beiden Textfelder werden korrekt ausgelesen, bei den Auswahlboxen steht lediglich eine Zahl. Nämlich genau die Zahl, welche als Referenz auf das entsprechende Array in der locallang_db.xml zeigt.

    Wie bekomme ich nun hin, dass cwt_community nicht die Zahl, sondern den passenden String aus der locallang_db.xml liest?

    # Auszug ext_tables.php

    <?php
    if (!defined ('TYPO3_MODE')) die ('Access denied.');
    $tempColumns = Array (
    "tx_feusererweiterung_branche" => Array (
    "exclude" => 0,
    "label" => "LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche",
    "config" => Array (
    "type" => "select",
    'items' => Array (
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche.I.0', '0'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche.I.1', '1'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche.I.2', '2'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche.I.3', '3'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche.I.4', '4'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche.I.5', '5'),
    ),
    "default" => 0
    )
    ),
    "tx_feusererweiterung_schwerpunkte" => Array (
    "exclude" => 0,
    "label" => "LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_schwerpunkte",
    "config" => Array (
    "type" => "text",
    "size" => "4",
    "max" => "4",
    "eval" => "int",
    "checkbox" => "0",
    "range" => Array (
    "upper" => "1000",
    "lower" => "10"
    ),
    "default" => 0
    )
    ),
    "tx_feusererweiterung_position" => Array (
    "exclude" => 0,
    "label" => "LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_position",
    "config" => Array (
    "type" => "select",
    'items' => Array (
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_position.I.0', '0'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_position.I.1', '1'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_position.I.2', '2'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_position.I.3', '3'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_position.I.4', '4'),
    Array('LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_position.I.5', '5'),
    ),
    "default" => 0
    )
    ),
    "tx_feusererweiterung_suche" => Array (
    "exclude" => 1,
    "label" => "LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_suche",
    "config" => Array (
    "type" => "text",
    "cols" => "30",
    "rows" => "5",
    )
    ),
    );

    t3lib_div::loadTCA("fe_users");
    t3lib_extMgm::addTCAcolumns("fe_users",$tempColumns,1);
    t3lib_extMgm::addToAllTCAtypes("fe_users","tx_feusererweiterung_branche;;;;1-1-1, tx_feusererweiterung_schwerpunkte, tx_feusererweiterung_position, tx_feusererweiterung_suche");
    ?>

    # Auszug locallang_db.xml

    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <t3locallang>
    <meta type="array" />
    <type>database</type>
    <description>Language labels for database tables/fields belonging to extension 'fe_user_erweiterung'</description>
    </meta>
    <data type="array">
    <languagekey index="default" type="array">
    <label index="fe_users.tx_feusererweiterung_branche">Branche:</label>
    <label index="fe_users.tx_feusererweiterung_branche.I.1">Kommunikation und Werbung</label>
    <label index="fe_users.tx_feusererweiterung_branche.I.2">Baubranche</label>
    <label index="fe_users.tx_feusererweiterung_branche.I.3">Horizontales Gewerbe</label>
    <label index="fe_users.tx_feusererweiterung_branche.I.4">IT-Technologie</label>
    <label index="fe_users.tx_feusererweiterung_branche.I.5">Sonstiges</label>
    <label index="fe_users.tx_feusererweiterung_schwerpunkte">Schwerpunkte:</label>
    <label index="fe_users.tx_feusererweiterung_position">Position:</label>
    <label index="fe_users.tx_feusererweiterung_position.I.1">Geschäftsführer</label>
    <label index="fe_users.tx_feusererweiterung_position.I.2">Abteilungsleiter</label>
    <label index="fe_users.tx_feusererweiterung_position.I.3">Angestellter</label>
    <label index="fe_users.tx_feusererweiterung_position.I.4">Auszubildender</label>
    <label index="fe_users.tx_feusererweiterung_position.I.5">Sonstiges</label>
    <label index="fe_users.tx_feusererweiterung_suche">Wir suchen:</label>
    </languagekey>
    </data>
    </t3locallang>

    Vielen Dank im Voraus!


  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    03. 09. 2008, 12:52

    in der lib_common wird die Ersetzung vorgenommen.
    Dort sollte folgendes stehen:

    substituteCustomMarkers

    1. $markerArray["###".$prefix.strtoupper($feRecordKeys[$i])."###"] = tslib_cObj::stdWrap(self::getLLFromString($TCA['config']['items'][$feRecord[$feRecordKeys[$i]]][0]), "");

    Hier musst Du ansetzen, debuggen und ev. modifizieren.

  • schmidtsmikey schmidtsm...
    Jedi-Ritter
    0 x
    145 Beiträge
    0 Hilfreiche Beiträge
    03. 09. 2008, 13:16

    Der von Dir gezeigte Quellcode exisistiert bei mir auch.

    Boah, so fit bin ich in PHP nicht, dass ich die Extension im Code anpasse. Das komische ist, dass es mal funktioniert hat, ich aber in der Zwischenzeit nichts an der CWT-Extension geändert habe.

    so wie ich das verstehe, müssen die neuen Felder bzw. die locallang_db.xml global registriert sein. Ich denke mal, dass hier das Problem liegt, denn ich habe folgendes in der lib_common gelesen:

    /**

    * This function substitutes all markers of type '###CUSTOM_<fe_users_db_field>###' with the corresponding value from the
    * T3 fe_users table. Therefore administrators may include custom markers in their templates without changing the
    * code of cwt_community. Example: If you include a marker like '###CUSTOM_CR_USER_ID###' in your template, the value of the fe_users database
    * column 'cr_user_id' will be displayed in the frontend.
    *
    * @param String HTML content.
    * @param Integer $fe_user_uid
    * @return String The substituted content.
    */
    public function substituteCustomMarkersForUser($content, $fe_user_uid) {
    return self::substituteCustomMarkers("__CUSTOM__", $content, $fe_user_uid);
    }

    Habe gerade keine Ahnung, wo ich ansetzen soll.

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    03. 09. 2008, 13:31

    das Entscheidene ist was hier drin steht:
    $TCA['config']['items'][$feRecord[$feRecordKeys[$i]]][0]

    daher einfach mal debuggen

    1. t3lib_div::debug($TCA['config']['items'][$feRecord[$feRecordKeys[$i]]][0]);

    Inhalt sollte dann sowas sein:
    LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche.I.0

  • schmidtsmikey schmidtsm...
    Jedi-Ritter
    0 x
    145 Beiträge
    0 Hilfreiche Beiträge
    03. 09. 2008, 13:45

    Ok, ich habe den "Debug-Befehl" unter der oben genannten Stelle positioniert und die Seite erneut aufgerufen.

    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_sex.I.0|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_gallery_activated.I.1|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.0|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.status.I.4|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_sex.I.0|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_gallery_activated.I.1|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.0|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.status.I.0|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_sex.I.0|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_gallery_activated.I.1|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.0|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.status.I.2|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_sex.I.0|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_gallery_activated.I.1|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.0|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.status.I.2|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_sex.I.0|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_gallery_activated.I.1|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.0|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.status.I.2|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_sex.I.0|
    |LLL:EXT:cwt_community_user/locallang_db.xml:fe_users.tx_cwtcommunityuser_gallery_activated.I.1|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.gender.I.0|
    |LLL:EXT:sr_feuser_register/locallang_db.xml:fe_users.status.I.2|

    Er zeigt mir alles an, nur nicht meine eigenen Felder, sprich LLL:EXT:fe_user_erweiterung/locallang_db.xml:fe_users.tx_feusererweiterung_branche.I.0 . Das heißt, meine Felder bzw. Werte aus der eigenen locallang_db.xml sind nicht vorhanden. Richtig? Was nun?

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    03. 09. 2008, 13:51

    danach sieht es aus, bzw Dein TCA ist nicht korrekt.

    Du kannst das im BE -> Konfiguration -> TCA überprüfen

  • schmidtsmikey schmidtsm...
    Jedi-Ritter
    0 x
    145 Beiträge
    0 Hilfreiche Beiträge
    03. 09. 2008, 17:00

    Vielen Dank, steffenk, durch Deine Hilfe konnte ich das Problem beheben:

    Ich habe unter Konfiguration gesehen, dass die Felder aus meiner Extension nicht geladen wurden. Daraufhin habe ich die Datei typo3conf/temp_CACHED_ps5464_ext_tables.php geöffnet und gesehen, dass dort ein ganz anderer Inhalt bezüglich meiner Extension steht als in der ext_tables.php im Extension-Verzeichnis.

    Ich habe das Gefühl, dass in der ext_tables.php ein Syntax-Fehler vorhanden war, denn ich habe den Eintrag aus typo3conf/temp_CACHED_ps5464_ext_tables.php übernommen und erweitert.

    Jetzt landen meine Werte auch in der typo3conf/temp_CACHED_ps5464_ext_tables.php und die Werte werden richtig angezeigt.

  • schmidtsmikey schmidtsm...
    Jedi-Ritter
    0 x
    145 Beiträge
    0 Hilfreiche Beiträge
    04. 09. 2008, 10:27

    Zu früh gefreut!

    Ich entwickle auf nem lokalen Webserver. Dort hat es funktioniert. Gestern Abend hatte ich die Änderungen auf dem Online-Web durchgeführt und hier ist mir schon aufgefallen, dass wieder nur die Zahlen angezeigt werden. Nach Aktivierung des Debug-Modus fehlten wieder die TCA-Felder meiner Extension.

    Und heute morgen, nachdem ich mein Notebook wieder gestartet und das lokal installierte Web (welches gestern noch funktionierte und KEINE Änderungen seitdem erfahren hatte) aufgerufen habe, musste ich feststellen, dass auch die Problematik auftritt.

    Komischerweise wird im Backend unter "Konfiguration" meine Extension nicht bei [b]$TCA tables.php[/b] angezeigt, nur unter [b]$TYPO3_LODED_EXT[/b]. So wie ich das sehe, liegt hier auch das Problem, denn unter [b]$TCA tables.php[/b] stehen bei den anderen Extensions die TCA-Felder, die bei meiner Extension nicht zur Verfügung stehen.

    Woran kann das liegen? Ich habe es dann noch mal von vorne gemacht: Extension im Kickstarter angelegt ==> Extend existing Tables ==> Felder angelegt ==> Extension installiert und die Templates angepasst.

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    04. 09. 2008, 11:30

    Als erstes empfehle ich Dir die Einstellung extCache=0, damit Du nicht cache aufliegst.

    Du erweiterst doch das TCA der fe_users? Dann steht das auch unter fe_users in der Konfiguration.

    Wenn nicht, stimmt Deine extTables.php nicht.

  • schmidtsmikey schmidtsm...
    Jedi-Ritter
    0 x
    145 Beiträge
    0 Hilfreiche Beiträge
    04. 09. 2008, 12:13

    1. $TYPO3_CONF_VARS["EXT"]["extCache"] = 0;

    Das hat nicht geholfen :(

    Nein, ich erweitere nicht das TCA von fe_users, sondern habe (gemäß diverser Hinweise in diesem Forum) eine eigene Extension mit dem Kickstarter erstellt.

    [b]Hinweis bezüglich dieses Threads:[/b] Ich habe noch mal eine neue Extension erstellt, um noch mal alles in Ruhe von vorne zu machen.

    Das ist die erstellte ext_tables.php, dessen Inhalt übrigens auch in der temp_CACHED_PS5464_ext_tables.php erscheint. Das war im ersten Beispiel ja nicht der Fall:

    1. <?php
    2. if (!defined ('TYPO3_MODE')) die ('Access denied.');
    3. $tempColumns = Array (
    4. "tx_srfeusererweitert_branche" => Array (
    5. "exclude" => 0,
    6. "label" => "LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_branche",
    7. "config" => Array (
    8. "type" => "select",
    9. "items" => Array (
    10. Array("LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_branche.I.0", "0"),
    11. Array("LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_branche.I.1", "1"),
    12. Array("LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_branche.I.2", "2"),
    13. Array("LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_branche.I.3", "3"),
    14. ),
    15. "size" => 1,
    16. "maxitems" => 1,
    17. )
    18. ),
    19. "tx_srfeusererweitert_position" => Array (
    20. "exclude" => 0,
    21. "label" => "LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_position",
    22. "config" => Array (
    23. "type" => "select",
    24. "items" => Array (
    25. Array("LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_position.I.0", "0"),
    26. Array("LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_position.I.1", "1"),
    27. Array("LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_position.I.2", "2"),
    28. Array("LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_position.I.3", "3"),
    29. ),
    30. "size" => 1,
    31. "maxitems" => 1,
    32. )
    33. ),
    34. "tx_srfeusererweitert_schwerpunkte" => Array (
    35. "exclude" => 0,
    36. "label" => "LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_schwerpunkte",
    37. "config" => Array (
    38. "type" => "text",
    39. "cols" => "30",
    40. "rows" => "5",
    41. )
    42. ),
    43. "tx_srfeusererweitert_gesucht" => Array (
    44. "exclude" => 0,
    45. "label" => "LLL:EXT:sr_feuser_erweitert/locallang_db.xml:fe_users.tx_srfeusererweitert_gesucht",
    46. "config" => Array (
    47. "type" => "text",
    48. "cols" => "30",
    49. "rows" => "5",
    50. )
    51. ),
    52. );
    53.  
    54.  
    55. t3lib_div::loadTCA("fe_users");
    56. t3lib_extMgm::addTCAcolumns("fe_users",$tempColumns,1);
    57. t3lib_extMgm::addToAllTCAtypes("fe_users","tx_srfeusererweitert_branche;;;;1-1-1, tx_srfeusererweitert_position, tx_srfeusererweitert_schwerpunkte, tx_srfeusererweitert_gesucht");
    58. ?>