Hallo zusammen,
leider komm ich nicht weiter.
Ich habe die Extension wie folgt eingebunden. Aber bekomme leider nichts angezeigt. Es wir nicht mal das <h1>-Tag Ausgeben. Kann es sein das ich die Sidebar.html noch einbinden muss?
Wie im Code beschrieben funktioniert es wenn ich als return ein string einsetze wunderbar, aber mit dem Inhalt der Repo bzw. View als return erscheint nichts.
Vielen Dank im voraus!
Template/Bus/Sidebar.html:
<h1>Ausgabe</h1>
<f:layout name="Default" />
f:section name="main">
<f:for each="{buses}" as="bus">
<f:link.action action="show" arguments="{bus : bus}">
<div>{bus.bus}</div>
</f:for>
</f:section>
Controller:
public function sidebarAction() {
$buses = $this->busRepository->findAll();
$this->view->assign('buses', $buses);
return $this->view->render();;
## Wenn ich an dieser stelle ->return "xy"; < setze
## wird xy auch zurück geben, also schließe ich daraus
## dass ich bei der Rückgabe der View noch einen Fehler habe
}
Setup:
#Sidebar
lib.sidebar=COA
lib.sidebar {
bar = USER
bar {
userFunc = tx_extbase_core_bootstrap->run
# TYPO3 6.0 / Namespaces Kompatibilität
vendorName = TYPO3
pluginName = Busext
extensionName = BusExt
##controller = Bus
##action = sidebar
switchableControllerActions {
Bus {
1 = sidebar
2 = list
3 = show
# aber eigentlich möchte ich nur die sidebar action ausführen
}
}
settings =< plugin.tx_busext.settings
persistence =< plugin.tx_busext.persistence
view =< plugin.tx_busext.view
}
}
page.10.marks.CAT=< lib.sidebar.bar
[...]
ext_localconf.php
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'TYPO3.' . $_EXTKEY,
'Busext',
array(
'Bus' => 'list, show, sidebar',
),
[...]
Gehört das Template nicht unter Resources/Private/[...]? Was steht in den Kostanten? Werden die Kostanten eingebunden?
Hallo Schweriner,
danke für deine Unterschützung.
Mein Template Pfad Resources/Private/Templates/Bus (sorry hab ich nicht dran gedacht).
constants.txt
plugin.tx_busext {
view {
# cat=plugin.tx_busext/file; type=string; label=Path to template root (FE)
templateRootPath = EXT:bus_ext/Resources/Private/Templates/
# cat=plugin.tx_busext/file; type=string; label=Path to template partials (FE)
partialRootPath = EXT:bus_ext/Resources/Private/Partials/
# cat=plugin.tx_busext/file; type=string; label=Path to template layouts (FE)
layoutRootPath = EXT:bus_ext/Resources/Private/Layouts/
}
persistence {
# cat=plugin.tx_busext//a; type=string; label=Default storage PID
storagePid =
}
}
Also der Switcher funktioniert, wenn ich in meine list.html gehe und ein Record auswähle wird mir die Show doppelt angezeigt. Ein mal ander stelle wo ich über das Backend die Extension eingesetzt habe, und der stelle wo ich die Extension über die Typoscript(sidebar) eingebunden habe
aber nur die showaction wird angezeigt, list und sidebar gehen nicht
Die diversen Caches hast Du zwischenzeitlich sicherlich schon mehrfach gelöscht/geleert, oder? z.B. auch typo3temp/Cache/
warum hast du in dem Typoscript die Action für die Sidebar nicht vorgegeben? das wolltest du doch oder ? oder verstehe ich das Problem nur nicht?
denn wenn du eh in der Sidebar nur die Action sidebar anziegen willst, dann wäre in meinen Augen das richtig
##action = sidebar
controller = Bus
action = sidebar
switchableControllerActions {
Bus {
1 = sidebar
}
}
vllt kommen wir der sacher näher.
wenn ich das scirpt wie folgt ab ändere gibt er nichts zurück
lib.sidebar=COA
lib.sidebar {
bar = USER
bar {
userFunc = tx_extbase_core_bootstrap->run
#tx_extbase_core_bootstrap->run
# TYPO3 6.0 / Namespaces Kompatibilität
vendorName = TYPO3
pluginName = Busext
extensionName = BusExt
controller = Bus
action = sidebar
settings =< plugin.tx_busext.settings
persistence =< plugin.tx_busext.persistence
view =< plugin.tx_busext.view
}
}
}
public function sidebarAction() {
$buses = $this->busRepository->findAll();
$this->view->assign('buses', $buses);
return "test";
##return $this->view->render();
}
aber wenn ich den code wie folgt angebe(switchableControllerActions)....
lib.sidebar=COA
lib.sidebar {
bar = USER
bar {
userFunc = tx_extbase_core_bootstrap->run
#tx_extbase_core_bootstrap->run
# TYPO3 6.0 / Namespaces Kompatibilität
vendorName = TYPO3
pluginName = Busext
extensionName = BusExt
switchableControllerActions {
Bus {
1 = sidebar
}
}
settings =< plugin.tx_busext.settings
persistence =< plugin.tx_busext.persistence
view =< plugin.tx_busext.view
}
}
}
....bekomme auch ich "test" als return züruck, aber sobald ich den return so setze......
"return $this->view->render();"
...wird wieder nichts angezeigt 🙁
Hm, nachdem der Templatename/-pfade laut Deinem ersten/dritten Post zu passen scheint, würde mir hier noch eines auffallen: die nicht korrekt geöffnete "f:section" im geposteten Template. Da fehlt eine spitze Klammer.
Vielleicht ist es auch nur ein copy&paste-Fehler, aber zuoft sieht man den Wald vor lauter Bäumen nicht.
Ansonsten würd eich evtl. mal eine eigene View-Klasse einbauen und mittels Debugs Stück für Stück prüfen, wo es hängt.
Ja ist ein Copy&Past fehler.
Habe es mal mit den Fluid debugger probiert.
Sidebar.html
<f:debug title="Sidebar">{buses}</f:debug>
Controller:
/**
* action sidebar
*
* @return array $this
*/
public function sidebarAction() {
$buses = $this->busRepository->findAll();
$this->view->assign('buses', $buses);
return $this->view->render();
}
Debug output
Sidebar
TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (empty)
Das Ergebnis sagt das das Array leer ist?! Ist die phpDoc angabe richtig ( * @return array $this)?
Fehler gefunden! 🙂 aber...
...Jetzt habe ich das problem ;( -> ist auch hier im forum beschrieben ->
#114607
persistence {
# geht nicht -> storagePid = {$plugin.tx_busext.persistence.storagePid}
storagePid = 8
}
The action "show" (controller "Bus") is not allowed by this plugin. Please check TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() in your ext_localconf.php.
Habe die Lösung dann so umgesetzt. Funktioniert leider nicht
#Sidebar
lib.sidebar=COA
lib.sidebar {
bar = USER
bar {
userFunc = tx_extbase_core_bootstrap->run
#tx_extbase_core_bootstrap->run
# TYPO3 6.0 / Namespaces Kompatibilität
vendorName = TYPO3
pluginName = Busext
extensionName = BusExt
# controller = Bus
switchableControllerActions {
Bus {
1 = sidebar
}
}
#action = sidebar
settings =< plugin.tx_busext.settings
persistence =< plugin.tx_busext.persistence
view =< plugin.tx_busext.view
}
}
config.tx_busext {
mvc {
callDefaultActionIfActionCantBeResolved = 1
}
}
Also wenn ich auf meine liste gehe ist bis dahin soweit alles ok(sidebar und list werden ausgeführt), aber wenn dann auf die show-action gehe.... bekomme ich die Fehlermeldung