[Frage] Backend Extension - $this->cObj->data liefert keine Ergebnisse [Gelöst] TYPO3-Version: 4.7.12

  • freeatweb freeatweb
    Jedi-Meister
    0 x
    267 Beiträge
    4 Hilfreiche Beiträge
    19. 11. 2013, 19:36

    Hallo,
    ich entwickle gerade eine TYPO3-Extension mit folgender Class

    1. class [classname] extends tslib_pibase {
    2. var $extKey = [extkey]';
    3. var $prefixId = [prefixID];
    4. var $scriptRelPath = [relPath];
    5. var $pi_checkCHash = true;
    6. var $conf = array();
    7. var $lang = array();
    8. var $extConf = array();
    9. var $feUsersTca = array();
    10. var $userId = 0;
    11. var $contentUid = 0;
    12. var $storagePid = 0;
    13.  
    14. public function main($content, $conf) {
    15. ...
    16. $contentID = $this->cObj->data['uid'];
    17. echo t3lib_div::debug($contentID);
    18. ....

    $contentID soll mir die UID des jeweiligen Backend-Datarecords (in diesem Falle FE-User)liefern.
    Leider klappt es nicht bzw. es wird keine UID zurückgegeben.

    Kann mir bei diesem Problem jemand weiterhelfen - wäre echt super!

    Beste Grüße

  • 0 x
    3273 Beiträge
    157 Hilfreiche Beiträge
    20. 11. 2013, 08:54 - Lösung

    Hallo.

    Du musst umdenken: Backend-Programmierung != Frontend-Programmierung
    Vieles, was aus der Frontend-Programmierung bekannt ist, ist im Backend (ganz) anders.

    Die Klasse tslib_pibase z.B. beschreibt sich selbst wie folgt: "This script contains the parent class, 'pibase', providing an API with the most basic methods for frontend plugins". Für ein BE-Plugin diese Klasse zu erweitern dürfte daher Stolpersteine mit sich bringen. Der erste ist hierbei sicherlich, dass Dir $GLOBALS['TSFE'] komplett fehlt.

    Viele Grüße
    Julian

    Kleiner Hinweis:
    das Forum hier ist leider nicht mehr so frequentiert :-(
    Für schnellere Hilfe und mehr Leser, guck mal
    - auf stackoverflow ( https://stackoverflow.com/questions/tagged/typo3 )
    - oder in die slack-Channels ( https://typo3.org/community/meet/chat-slack )


  • 1
  • 0 x
    3273 Beiträge
    157 Hilfreiche Beiträge
    20. 11. 2013, 08:54

    Hallo.

    Du musst umdenken: Backend-Programmierung != Frontend-Programmierung
    Vieles, was aus der Frontend-Programmierung bekannt ist, ist im Backend (ganz) anders.

    Die Klasse tslib_pibase z.B. beschreibt sich selbst wie folgt: "This script contains the parent class, 'pibase', providing an API with the most basic methods for frontend plugins". Für ein BE-Plugin diese Klasse zu erweitern dürfte daher Stolpersteine mit sich bringen. Der erste ist hierbei sicherlich, dass Dir $GLOBALS['TSFE'] komplett fehlt.

    Viele Grüße
    Julian

    Kleiner Hinweis:
    das Forum hier ist leider nicht mehr so frequentiert :-(
    Für schnellere Hilfe und mehr Leser, guck mal
    - auf stackoverflow ( https://stackoverflow.com/questions/tagged/typo3 )
    - oder in die slack-Channels ( https://typo3.org/community/meet/chat-slack )

  • freeatweb freeatweb
    Jedi-Meister
    0 x
    267 Beiträge
    4 Hilfreiche Beiträge
    20. 11. 2013, 10:20

    Hallo Julian,

    vielen Dank für deine rasche Antwort!

    Da hatte ich ja einen groben Denkfehler (tslib_pibase betreffend) :(

    Dank deines Denkanstosses habe ich die tsref erneut durchforstet und bin auf die schöne Dokumentation gestossen: [url]http://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/User/Index.html[/url].

    Für Leute die vor der selben oder ähnlichen Herausforderung stehen - so habe ich meine Class jetzt umgesetzt:

    Auszug aus der TCA:

    1. '[field_name]' => array (
    2. 'exclude' => 0,
    3. 'label' => '[path_to_label]',
    4. 'config' => array (
    5. 'type' => 'user',
    6. 'size' => '30',
    7. 'userFunc' => '[EXT:path]/[name_php_datei]:[name of class]->main',
    8. 'parameters' => array(
    9. '[parameter1]' => ...,
    10. )
    11. ),
    12. ),

    1. class [classname] {
    2. public function main($PA, $fObj) {
    3. ...
    4. $data_record = $PA['row'];
    5. $record_id = $data_record['uid'];

    Vielen Dank nochmal an Julian!

    Beste Grüße

  • 1