Zum Inhalt springen

Eigene EXT - Kann mir denn keiner helfen? :-(

Erstellt am 21. März 2003 · 14 Antworten · letzte Antwort am 15. Oktober 2008

Tags: Frage

Shinji ·

Hallo !

Ich habe mir ja für eine Mitgliederliste mit dem Kickstarter eine Extension geschrieben. Jetzt würde ich das ganze ja gerne in ein Template parsen und habe mir einmal die automatisch erzeugte Datei "class.tx_members_pi1.php" angesehen. Ich versteh das Script aber nicht.

Dort stehen fünf unbekannte Funktion

1) pi_list_row($c)

Diese Funktion gibt per return() Reihe für Reihe den Inhalt der Tabelle zurück:

return '<tr'.($c%2 ? $this->pi_classParam("listrow-odd") : "").'>
    <td><P>'.$this->getFieldContent("uid").'</P></td>
    <td valign="top"><P>'.$this->getFieldContent("name").'</P></td>

usw.

2) pi_list_header()

Diese Funktion gibt per return() nur die Namen der Feldtitel zurück:

return '<tr bgcolor="#aaaaaa"'.$this->pi_classParam("listrow-header").'>				<td><P>'.$this->getFieldHeader_sortLink("uid").'</P></td>
	<td><P>'.$this->getFieldHeader_sortLink("name").'</P></td>

usw.

3) getFieldContent($fN)
4) getFieldHeader($fN)
5) getFieldHeader_sortLink($fN)

Aber diese Funktionen werden vorher nie aufgerufenn. Von wo werden die denn angesprochen? Ich versteh das einfach nicht.
Gibt es denn wirklich keine Anleitung für so etwas?

Vielen Dank für eure Hilfe!!!!!!!!!!

Gruß
Thorsten

via ·

In den nächsten Tagen wird ein Tutorial zur Verfügung stehen wie man eine basic Extension erstellt und einen output generieren kann.

Grüße,
Oliver

via ·

tutorial ist fertig und muss es nur noch online stellen.
die extension ist nur als beispiel gedacht und soll somit den einstieg erleichtern und das verständnis bringen.

bis bald,
oliver

via ·

Hi,

ist noch nicht online, da ich immer noch eine 130 KB große Datei habe, die ich nicht uploaden kann; weil das online repository nur 100 KB zulässt.

Hat jemand eine Idee wie das evtl. trotzdem geht?

Kasper habe ich schon gemailt, aber noch kein Feedback erhalten.

Grüße,
Oliver

via ·

habe vorhin die Nachricht von Kasper bekommen. sollte, wenn nichts weiter passiert, heute online sein.

grüße,
oliver

dj.​picasso ·

Hi @all,

erst einmal möchte ich betonen, dass ich es super finde, wenn sich jemand diesen Aufwand macht, um ein Tutorial zu schreiben ... und ich glaube alle wissen, dass es sich hierbei um eine Menge Arbeit handelt.

Hier aus meiner Sicht jedoch einige Anmerkungen:
1. Meiner Meinung nach wird mit dem Tutorial keine der hier angesprochenen Fragen beantwortet. (War ja auch nicht Sinn und Zweck des Tutorials, ich weiß! 😉 )

2. Ich sehe momentan keine weiteren neuen Kenntnisse, die man nicht schon mit dem Hachmeister-Tutorial hatte, daher die Frage: Warum wurde nicht das Hachmeister Tutorial eingebaut und dann ein "aufbauendes" Tutorial geschrieben.
Hier sieht es so aus, als wäre die "Funktionsweise des Rades" noch einmal erklärt worden, nur mit anderen Mitteln und Layout!

In diesem Zusammenhang hätte man auf verschiedene Punkte eingehen können, die aus meiner Sicht genau zu den Problemen führen, die in diesem Thema angesprochen wurden und bestimmt noch werden, wie:
a. Wo finde ich die aufgerufenen Funktionen/ Prozeduren?
Antwort: In dieser Datei, unter dem Verzeichnis: require_once(PATH_tslib."class.tslib_pibase.php");
b. Wie ändere ich die $items aus dem modeSelector?
c. Wie mache ich Cross-Referenzen zu anderen Tabellen, vor allem zur fe_users?
d. wie greife ich auf mehrere Tabellen zu?
e. wie ändere ich die Sortierreihenfolgen bzw. wie ergänze ich Sie?
f. Wie speichere ich Daten aus Feldern in die entsprechenden Datenbanktabellen?
g. Wie ändere ich die Funktion .._modeSelector, damit ich in den einzelnen Modes auch das Suchfeld für verschiedene Tabellen nutzen kann? Gerade dieser Punkt ist nicht unbedingt trivial!
h. Wie arbeite ich am besten mit den piVars[...]?
usw. usw. usw.
Mir würden da noch eine Menge mehr Fragen einfallen, da ich selbst in den letzten Tagen eine Extension geschrieben habe, wobei genau diese Thematiken eine Rolle spielten.

3. Ich weiß nicht mit welcher Version dieses Beispiel erstellt wurde, aber meine Extensions, die unter Typo350 erstellt wurden haben einen vollständig anderen Code in der "class.tx_meineextension_pi1.php".

Aus der ursprünglichen Frage von Shinji und den dargestellten Code-Beispielen sieht es so aus als würde dort auch die Version 350 eingesetzt ... und dieser "neuere" automatisch erzeugte Code ist weitaus besser als der der früheren Version, auch wenn es etwas mehr Aufwand ist, sich durch die functions() und Funktionsweisen zu kämpfen.

Bemerkung:
@via
Um Mißverständnissen vorzubeugen noch einmal: Die Extension ist echt gut, aber gerade "Typisten", die über mehr als ein Anfängerwissen verfügen, werden weiterhin an derselben Stelle hängenbleiben, an der sie auch vorher schon verzweifelt sind, daher ist diese Extension aus meiner Sicht eher etwas für den Anfänger.

Ciao
Der DJ

via ·
dj.picasso schrieb

Hi @all,

erst einmal möchte ich betonen, dass ich es super finde, wenn sich jemand diesen Aufwand macht, um ein Tutorial zu schreiben ... und ich glaube alle wissen, dass es sich hierbei um eine Menge Arbeit handelt.

Hier aus meiner Sicht jedoch einige Anmerkungen:
1. Meiner Meinung nach wird mit dem Tutorial keine der hier angesprochenen Fragen beantwortet. (War ja auch nicht Sinn und Zweck des Tutorials, ich weiß! 😉 )

wie du weiter unten richtig bemerkst, orientiert sich das tutorial, ich würde sagen ausnahmslos, an Anfänger bzw. derzeit noch programmierunfähige Newbees wie mir :-)

2. Ich sehe momentan keine weiteren neuen Kenntnisse, die man nicht schon mit dem Hachmeister-Tutorial hatte, daher die Frage: Warum wurde nicht das Hachmeister Tutorial eingebaut und dann ein "aufbauendes" Tutorial geschrieben.
Hier sieht es so aus, als wäre die "Funktionsweise des Rades" noch einmal erklärt worden, nur mit anderen Mitteln und Layout!

Da gebe ich Dir bedingt recht. Ich bin bei Karstens Tutorial auf das Problem gestossen, dass ich nicht verstanden hatte (aus mangelnden Programmierkenntnissen), wie ich beispielsweise ein weiteres Textfeld hinzufügen kann. Das war letztlich der Anlass warum ich das Tutorial erstellt habe.

In diesem Zusammenhang hätte man auf verschiedene Punkte eingehen können, die aus meiner Sicht genau zu den Problemen führen, die in diesem Thema angesprochen wurden und bestimmt noch werden, wie:
a. Wo finde ich die aufgerufenen Funktionen/ Prozeduren?
Antwort: In dieser Datei, unter dem Verzeichnis: require_once(PATH_tslib."class.tslib_pibase.php");
b. Wie ändere ich die $items aus dem modeSelector?
c. Wie mache ich Cross-Referenzen zu anderen Tabellen, vor allem zur fe_users?
d. wie greife ich auf mehrere Tabellen zu?
e. wie ändere ich die Sortierreihenfolgen bzw. wie ergänze ich Sie?
f. Wie speichere ich Daten aus Feldern in die entsprechenden Datenbanktabellen?
g. Wie ändere ich die Funktion .._modeSelector, damit ich in den einzelnen Modes auch das Suchfeld für verschiedene Tabellen nutzen kann? Gerade dieser Punkt ist nicht unbedingt trivial!
h. Wie arbeite ich am besten mit den piVars[...]?
usw. usw. usw.
Mir würden da noch eine Menge mehr Fragen einfallen, da ich selbst in den letzten Tagen eine Extension geschrieben habe, wobei genau diese Thematiken eine Rolle spielten.

Als, ich muß sagen, dass zu keinem der von dir eben genannten Punkte etwas sagen könnte (non-programming-Newbee). Klasse wäre es natürlich "man" könnte ein Tutorial schreiben, welches auf der baisc Version aufbaut und die von Dir genannten Punkte erläutert. Evtl. müsste/könnte man dieses sogar noch in 2 weitere Levels untergliedern - ganz der Strategie von Typo3 (newbee, advanced, developer). Das fände ich klasse!!! und ich würde auch wieder noch was dazulernen, so wie viele andere.

3. Ich weiß nicht mit welcher Version dieses Beispiel erstellt wurde, aber meine Extensions, die unter Typo350 erstellt wurden haben einen vollständig anderen Code in der "class.tx_meineextension_pi1.php".

Auf meiner Installation war 3.5.5b drauf. Ich hoffe, das stimmt - müsste ich zu Hause nachsehen.

Aus der ursprünglichen Frage von Shinji und den dargestellten Code-Beispielen sieht es so aus als würde dort auch die Version 350 eingesetzt ... und dieser "neuere" automatisch erzeugte Code ist weitaus besser als der der früheren Version, auch wenn es etwas mehr Aufwand ist, sich durch die functions() und Funktionsweisen zu kämpfen.

Bemerkung:
@via
Um Mißverständnissen vorzubeugen noch einmal: Die Extension ist echt gut, aber gerade "Typisten", die über mehr als ein Anfängerwissen verfügen, werden weiterhin an derselben Stelle hängenbleiben, an der sie auch vorher schon verzweifelt sind, daher ist diese Extension aus meiner Sicht eher etwas für den Anfänger.

fully agreed :-)

Ciao
Der DJ

Danke für Deine Message! Melde Dich, wenn ich einen weiteren Beitrag leisten könnte, um eine nächste Version des Tutorials online zu bekommen - vielleicht mit deiner Hilfe?! ;-) Ruhm und Ehre der typo3 community wären Dir sicher!!!

Grüße,
Oliver

Winteretti ·

Nach fünf Jahren krame ich diese Forumsleiche nochmal aus. Habe das gleiche Problem:

Extension mit Kickstarter geschrieben. Output in Tabelle funktioniert auch prächtig. Nun geht es darum die Tabelle barrierefrei zu machen. Hierfür muss ich an die Tabellenformatierung ran.

In ...typo3conf/ext/user_abfallkalender/pi1/class.user_abfallkalender_pi1.php habe ich auch den Tabellenkopf unter pi_list_header() und den Tabelleninhalt mit pi_list_row($c) gefunden. Die beiden Elemente sind auch mit <tr>´s und <td>´s formatiert.

Nun suche ich aber noch nach der großen <table>-Klammer, die beide Tabellenelemente zusammenbringt. Weiß vielleicht jemand hier mehr?

Grüße
M;ke