[TYPO3-german] cObject data an ein plugin senden

Stephan Schuler Stephan.Schuler at netlogix.de
Mon Oct 21 22:51:24 CEST 2013


Hallo zusammen.

Beide Probleme würden sich mit einem Register lösen lassen.

> temp.plugincall = COA
> temp.plugincall.10 = LOAD_REGISTER
> temp.plugincall.10.registervalue = USER
> temp.plugincall.10.registervalue.userFunc = EXT:wasauchimmerdenwertbereichnet
> temp.plugincall.20 = USER
> temp.plugincall.20.userFunc = ExtbaseBootstrapZumPlugin
> temp.plugincall.30 = RESTORE_REGISTER

Innerhalb des Plugins kann man dann sicherlich auf das Register zugreifen. Je nachdem wo der Inhalt hin soll wahlweise in PHP, getContentObject()->cObjGetSingle() oder sowas, oder im TypoScript-ViewHelper. In beiden Fällen wäre die einfachste Variante:
> 10 = TEXT
> 10.data = register : registervalue

Allerdings lassen sich Extbase-Plugins und TypoScript-Processing nicht so von außen verheiraten. Es ist in jedem Fall notwendig, dass innerhalb der Extbase-Login das "Oldscool-TypoScript" von Hand abgearbeitet wird. Das wird sofort klar wenn auffällt, dass der "Trailing Dot" der TypoScript-Notation in Extbase wegfällt.

Beispiel:
> foo.bar.baz = test

Daraus wird laut regulärem TypoScript:
> array('foo.' => array('bar.' => array('baz' => 'test')))

In Extbase dagegen wird daraus:
> array('foo' => array('bar' => array('baz' => 'test')))

Beachte dabei: Ohne Extbase erhalten diejenigen TypoScript-Nodes die selbst ein Array beinhalten einen Punkt hintenangestelt. Bei Extbase fehlt der.

Das ist zwar für Settings ganz wunerbar, aber offensichtlich ist hier für ein wichtiges Element des regulären TypoScripts kein Platz mehr.

Beispiel von regulärem TypoScript in beiden Darstellungen:
> 10 = TEXT
> 10.value = test

Reguläres TypoScript:
> array(10 => 'TEXT', '10. => array('value' => 'test'))

Extbase:
> array('10 => array('value' => 'test', '_typoScriptNodeValue' => 'TEXT'))

http://typo3.org/api/typo3cms/class_t_y_p_o3_1_1_c_m_s_1_1_extbase_1_1_service_1_1_typo_script_service.html

Jedenfalls wird klar: Einfach TypoScript-Anweisungscode nach Extbase zu schieben hilft nur, wenn der Extbase-PHP-Code auch drauf gefasst ist, hier zurückzukonvertieren und anschließend auszuführen.

Gruß,


Stephan Schuler
Web-Entwickler

Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Website: media.netlogix.de



--
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Neuwieder Straße 10 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: info at netlogix.de | Internet: http://www.netlogix.de

netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338)
Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt



________________________________________
Von: typo3-german-bounces at lists.typo3.org [typo3-german-bounces at lists.typo3.org]" im Auftrag von "jobee [mail at beck-j.de]
Gesendet: Samstag, 19. Oktober 2013 01:46
An: typo3-german at lists.typo3.org
Betreff: Re: [TYPO3-german] cObject data an ein plugin senden

Hallo Oliver,

stehe gerade vor einem ähnlichen Problem.
Ich lese zunächst die ID der News Kategorie anhand des Seitennamens aus und
möchte diese dann dem Plugin übergeben.

Ich habe die Hoffnung mein Problem durch die von dir angesprochene
TYPO3\CMS\Extbase\Service\TypoScriptService lösen zu können.

Kann dazu jedoch keine Infos finden.
Wie und wo muss ich diese einbinden?


Hier noch mein TS:

temp.categoryUid = CONTENT
temp.categoryUid {
  table = tx_news_domain_model_category
  select {
    # PID des News Ordners
    pidInList = 53
    selectFields = uid,pid,title
    where = (hidden = 0)
    andWhere = (deleted = 0)
    andWhere = (title LIKE ###PAGETITLE###)
    markers {
      PAGETITLE.data = page:title
    }
    max = 1
  }
  renderObj = COA
  renderObj {
    10 = TEXT
    10.field = uid
    10.wrap = 45,|
  }
}

lib.tscontent.20 = USER
lib.tscontent.20 {
    userFunc = tx_extbase_core_bootstrap->run
    extensionName = News
    pluginName = Pi1

    switchableControllerActions {
      News {
        1 = list
      }
    }

    view < plugin.tx_news.view

    settings < plugin.tx_news.settings
    settings {
      # funktioniert nicht
      categories < temp.categoryUid

      # funktioniert
      # categories = 45,12
      # categories = {$konstante}
    }
  }
}

Grüße,
Joachim



--
View this message in context: http://typo3.3.n7.nabble.com/cObject-data-an-ein-plugin-senden-tp246595p251292.html
Sent from the TYPO3 German mailing list archive at Nabble.com.
_______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


More information about the TYPO3-german mailing list