Hi Leute.
Ich bin grad etwas verwirrt.
Extension ist installiert, static template eingebunden, über ne flexform-auswahl wird die controllerAction angewählt, da gibt's auch noch ne Fehlermeldung, wenn die Templates fehlen. Aber wenn das alles vorhanden ist, dann gibt's weder Fehler noch Content.
Dabei ist es ganz seltsam, dass gar kein Code ankommt. Dadurch weiß ich auch nicht wie ich debuggen soll.
Das Template wird scheinbar aufgerufen, aber dann einfach nichts mehr gemacht. Sonst müssten ja die Tags rund herum zumindest noch angezeigt werden. Aber da ist absolut keine Ausgabe.
lg M.
Hallo,
es ist immer gut, wenn du uns noch sagst: Welche Extension? Welche Typo3 Version? und am besten vielleicht noch etwas Code zeigst. 🙂
Haha, sry.
Typo3 Version ist angegeben -> 8.7.8
Extension ist selbst geschrieben:
plugin.tx_mpmediasales_mediasales {
view {
templateRootPaths.0 = EXT:mp_mediasales/Resources/Private/Templates/
templateRootPaths.1 = plugin.tx_mpmediasales_mediasales.view.templateRootPath
partialRootPaths.0 = EXT:mp_mediasales/Resources/Private/Partials/
partialRootPaths.1 = plugin.tx_mpmediasales_mediasales.view.partialRootPath
layoutRootPaths.0 = EXT:mp_mediasales/Resources/Private/Layouts/
layoutRootPaths.1 = plugin.tx_mpmediasales_mediasales.view.layoutRootPath
}
persistence {
storagePid = plugin.tx_mpmediasales_mediasales.persistence.storagePid
#recursive = 1
}
features {
#skipDefaultArguments = 1
}
mvc {
callDefaultActionIfActionCantBeResolved = 1
}
}
Über die TS Konsonanten wird storagePid gesetzt.
CONTROLLER:
/**
* BannerController
*/
class BannerController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
/**
* bannerRepository
*
* @var \XXX\XXX\Domain\Repository\BannerRepository
* @inject
*/
protected $bannerRepository = null;
/**
* action topslider
*
* @return void
*/
public function topsliderAction()
{
$banners = $this->bannerRepository->findAll();
$this->view->assign('banners', $banners);
}
und FLUID:
<f:layout name="Default" />
<f:section name="main">
<div class="container" style="margin-top: 80px;">
<div class="row">
<div class="col-lg-12" style="padding:0px">
<div id="top-slider" class="carousel slide" data-ride="carousel">
<!-- Positionsanzeiger -->
<ol class="carousel-indicators">
<f:for each="{banners}" as="banner" iteration="bannerId">
<li data-target="#top-slider" data-slide-to="{bannerId.cycle}"{f:if(condition:'{bannerId.isFirst}',then:' class="active"',else:'')}></li>
</f:for>
</ol>
<!-- Verpackung für die Elemente -->
<div class="carousel-inner" role="listbox">
<f:for each="{banners}" as="banner" iteration="bannerId">
<div class="item{f:if(condition:'{bannerId.isFirst}',then:' active',else:'')}">
<img src="<f:uri.image src='{banner.cover.uid}' width='1200c' height='400c' treatIdAsReference='1' />" alt="{banner.titel}" title="{banner.titel}">
<div class="carousel-caption">
<span class="genre">{banner.vorTitel} | </span>
<span class="show">{banner.titel} </span>
<span class="info">{banner.zusatz}</span>
<span class="link"><a href="{f:render(partial: 'Links/Generator', arguments: {banner: banner})}">{banner.buttonText}</a></span>
</div>
</div>
</f:for>
</div>
</div>
</div>
</div>
</div>
<f:debug>{banners}</f:debug>
</f:section>
FLEXFORMS
<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Einstellungen</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<switchableControllerActions>
<TCEforms>
<label>Konfiguration der Ausgabe</label>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">TOP-SLIDER Hauptanzeige</numIndex>
<numIndex index="1">Banner->topslider</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">Testseite</numIndex>
<numIndex index="1">Banner->list</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</switchableControllerActions>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
Es klappt auch alles, keine Fehlermeldung, als wäre alles gut - aber das Plugin gibt gar nichts aus. Als wäre es nicht vorhanden. Wenn ich absichtlich nen Fehler einbaue, dann ist aber sofort ne Fehlermeldung zu sehen. Und das geht mir nicht ein.
Wenn da nichts über den Controller kommt, ok. Aber dann müssten die <div>s drum rum ja zumindest im Quellcode erscheinen. Da ist aber niente. :/
lg M.
Selbst gelöst...
Und dabei hab ich jetzt mal ne Frage...
Wie genau wird ein setup.ts einer extension erstellt um dann von den Konsonanten überschreiben zu lassen? Hab das jetzt einfach im Setup überschrieben, aber das ist nicht das was ich wollte. Möchte das verstehen.
Das war aber in meinem Fall nicht das Hauptproblem. Warum gar nichts aufgegeben wurde, war weil in den Layouts nicht auf die Fluid-Section verwiesen wurde.
lg M.
Hallo,
das geht so:
storagePid = {$plugin.tx_mpmediasales_mediasales.persistence.storagePid}
Lg
Hi Danke dir.
So war das dann zuletzt auch eingetragen. Da hat der Extension Builder nen falschen Code erzeugt. Hab das dann auch umgetragen, aber er hat dennoch die storagePid nicht aus den Konsonanten übernommen. Echt merkwürdig.
lg M.
Hi,
Typoscript wird von oben nach unten geparst. Es kann sein, dass durch die Reihung der Typoscripts deine Constant-Einstellungen durch nachfolgende Constants überschrieben werden.
Am Besten lässt sich das über den Typoscript Object Browser analysieren.
Lg