[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