Hallo Forum,
ich habe gerade eine eigene kleine Extension geschrieben, die soweit auch funktioniert wie sie sollte. Mein Problem ist nun, dass alle erstellten Einträge per default im ListView angezeigt werden. Soweit ich das verstehe, bestimmt der Parameter conf['CMD'] in der main-funktion, welche Ansicht beim Aufruf der Seite angezeigt wird. Allerdings kann ich nicht nachvollziehen, von wo der Parameter gesetzt bzw. übergeben wird und wie ich typo so konfigurieren kann, dass die Seite per default im SingleView angezeigt wird.
Ich habe schon beim Extension Kickstarter die Optionen
Listing: Sections instead of table-rows
Singleview: Sections instead of table-rowsListing
aktiviert, leider ohne sichtbare Veränderung.
Konnte dazu weder hier im Forum noch bei Google hilfreiche Einträge finden und wäre daher für jede Anregung dankbar.
Hilde
das hat auch was mit php zu tun und findet in der main der Extension statt.
Nochmals: der Kickstarter erstellt keine fertigen Extensions sondern liefert das Framework. Die Auswertungen müssen dann im Code programmiert werden, d.h. ohne PHP-Kenntnisse ist dies nicht möglich.
hi steffen,
vielleicht habe ich mich falsch ausgedrückt. Mir ist schon klar, dass der Kickstarter keine fertigen Extensions liefert und man die FE Ausgabe selbst mit PHP konfigurieren muss. Es geht mir auch gar nicht um die Darstellung selbst sondern um die Steuerung der Darstellung durch den Parameter $conf['CMD']. Dieser wird an die Main-Funktion übergeben. Meine Frage ist deshalb eigentlich nur, von wo aus wird die main-Funktion meiner Klasse class.meineExtension_pi1.php aufgerufen und wie wird dort der Parameter $conf['CMD'] erzeugt bzw. wie kann ich Einfluss darauf nehmen?
Lg
Hilde
Hi,
Das sollte kein Vorwurf sein, lediglich ein Hinweis, da schon mehrere soetwas gedacht hatten und das aus Deinem Post nicht hervorging 😉
Alles was in $conf steht wird über Typoscript konfiguriert, also
plugin.tx_myext_pi1.CMD = single
Im günstigsten Fall baut man eine Flexform, in dem der User/Redakteur einfach die Parameter einstellen kann.
hi steffen,
danke für die Antwort. Wenn ich diese Zeile in mein Template einfüge, funktioniert das auch, dann aber natürlich für alle Seiten, was ich eigentlich nicht möchte. Okay, jetzt muss ich wohl doch noch mal weiter ausholen:
Also, ich möchte gerne folgendes realisieren: Mit meiner Extension kann der Redakteur Kurse anlegen, diese bestehen aus mehreren Kapiteln. Jeder Kurs ist auf einer eigenen Seite, die Kapitel sind jeweils auf Unterseiten des zugehörigen Kurses. Alle Kurse sollen auf einer übergeordneten Seite "Kursübersicht" aufgelistet werden (mit ListView). Diese enthält selbst keine Datensätze, sondern nur das FE Plugin und die Einstellung Rekursiv 2 Level durchsuchen. Aufgelistet werden also alle Kurse, die sich auf untergeordneten Seiten befinden. Beim Klick auf den entsprechende Kurs-Seite im Menü soll der Kurs aber im SingleView dargestellt werden.
hilde
Seitenstruktur:
Kursübersicht (listView) enthält FE Plugin
-->Kurs1 (singleView) enthält FE Plugin und Datensatz Kurs
---->Kapitel1 enthält FE Plugin und Datensatz Kapitel
---->Kapitel2 enthält FE Plugin und Datensatz Kapitel
-->Kurs2 (singleView) enthält FE Plugin und Datensatz Kurs
---->Kapitel1 enthält FE Plugin und Datensatz Kapitel
usw.
D.h., ich müsste auf den einzelnen Seiten steuern, welche Ausgabeform gewählt wird und nicht für den kompletten Seitenbaum. Mein Ansatz ist jetzt, den einzelnen Seiten einfach den Parameter showUID=aktuelleUID mitzugeben, welcher eine Ausgabe im SingleView bewirkt.
Dazu hatte ich überlegt, über die PageConfig einen Paramter mitzugeben. Habe aber im TypoScript Wizard nichts passendes gefunden. Dann bin ich auf das Attribut ATagParams im Template gestossen. Um dieses nutzen zu können müsste ich allerdings abfragen, ob es die aktuelle Seite einen Datensatz Kurs enthält, wenn ja, Parameter showUID übergeben, wenn nein, nichts machen. Meine Frage ist jetzt: Kann ich mit TypoScript abfragen, ob eine Seite einen bestimmten Datensatztyp enthält? Und wenn ja, wie? Konnte bis jetzt noch nichts hilfreiches in der TSRef finden. Aber vielleicht suche ich ja auch in der falschen Richtung 😉
Du liegst schon ganz richtig. i.d.R. legt man die Seite min SingleView über TS oder Flexform fest. Die Links dazu werden ja in der Ext selber gebildet.
Nun kannst Du in Deiner Ext eine einfache Weiche einbauen:
if($this->piVars['showUid']) {
$content=$this->renderSingleView();
else
$content=$this->renderListView();
}
hi steffen,
ok, das mit der Weiche ist einleuchtend, aber wie kann ich diesen Parameter auf der entsprechenden Seite erzeugen? D.h. wenn ich im Menü auf die Kapitel-Seite klicke, muss ja irgendwie der Parameter showUID=xx mitübergeben werden. Kann ich das mit ATagParams nur für bestimmte Seiten (alle, die einen Datensatz Kapitel enthalten) einstellen?
lg
hilde
dazu solltest Du Dich mit den Linkfunktionen der tslib_pibase beschäftigen. Hilfreiche Links findest Du im Sticky dieses Forums.
TIPP: installiere die Ext "extdeveval" dann hast Du eine Doku jederzeit griffbereit.