![]() |
| | LinkBack | Themen-Optionen | Thema durchsuchen | Thema bewerten | Ansicht |
|
#1
| ||||
| ||||
Hallo Ich stehe gerade völlig auf dem Schlauch. Ich habe eine Extension im Kickstarter geschrieben (meine erste) und möchte jetzt ein HTML-Template einbinden. Folgende Fragen habe ich: 1. Wo finde ich die Marker? 2. Wo binde ich im Kickstarter das Template ein? 3. Ist <!-- ###LIST### begin --> und <!-- ###SINGLE### begin --> ein Default-Wert, den ich immer benutzen kann? Vielen Dank! Ganz lieben Gruss Junior |
|
#2
| |||
| |||
| Sofern ich da nicht irgendwas übersehe bindest du das Template selbst in deinem PHP-Code ein. z.B Code: $tmpl = $this->cObj->fileResource('relativer/Pfad/zu/fileadmin/tmpl.html'); und du kannst mit Code: $partTmpl = $this->cObj->getSubpart($tmpl,'###PART_SOMETHING###'); oder z.B. mit Code: $sub['###LABEL###'] = $this->pi_getLL('mylabel');
$tmpl = $this->cObj->substituteMarkerInObject($tmpl, $sub,'',''); Ich muss nach einiger Arbeit mit dem Typo-Templates übrigens sagen, dass ich eine bessere Template-Engine vorziehen würde, z.B. Smarty was es meines Wissens auch als Modul für Typo gibt. Dies aber nur als kleine Anregung |
|
#3
| ||||
| ||||
| Vielen Dank. Wenn ich die Extension update wird das aber ja wieder überschrieben. Mhm... Dann muss ich das jedesmal von Hand einbinden? Danke und lieben Gruss |
|
#4
| |||
| |||
| Der Code den ich gepostet habe gehört in das frontendplugin also wahrscheinlich pi1/class.deinextensioname.php. ich schätze du meinst mit updaten, wenn du im kickstarter was änderst und dort wieder sicherst. deswegen stehen im kickstarter auch haufenweise hinweise das dieser nicht zur bearbeitung bestehender module gedacht ist, sondern wirklich nur zur erstellugn eines initialen grundgerüstes. falls du ihn doch auf eine in der entwicklung befindliche extension extension anwendest, achte einfach darauf am ende wo du dann save oder so klickst die von dir geänderten dateien vom schreiben auszunehmen, dies kannst du erledigen, indem du die häckchen vor den von dir geänderten dateien entfernst. also pi1/class.deinextensioname.php nicht überschreiben lassen. |
|
#5
| ||||
| ||||
| Zitat:
Sorry, kannst du es mir bitte nochmals erklären. Vielen Dank!! Ganz lieben Gruss Junior |
|
#6
| |||
| |||
| template in variable holen: Code: $tmpl = $this->cObj->fileResource('relativer/Pfad/zu/fileadmin/tmpl.html'); Code: $sub['###LABEL1###'] = 'was auch immer für ein text'; $sub['###LABEL2###'] = 'was auch immer für ein text 2'; $tmpl = $this->cObj->substituteMarkerInObject($tmpl, $sub,'',''); Code: return $tmpl; und schon wird dein Template mit ersetzen labels, die du natürlich selbst definieren musst, an typo zur ausgabe übergeben. damit obiges funktioniert muss dein template etwa so aussehne Code: ###LABEL1### blablabla vllt noch mehr bla und ###LABEL2### es gibt keinerlei vordefinierten labels. nochmal zusammengefasst: pi1/class.deineextension.php Code: class tx_deineextension_pi1 extends tslib_pibase {
function main($content,$conf){
$this->conf=$conf;
$this->pi_setPiVarDefaults();
$this->pi_loadLL();
// Template in string-variable einlesen
$this->cObj->fileResource('rel/Pfad/zu/fileadmin/tmpl.html');
// array erstellen das die zu ersetzenden labels enthält
$sub['###LABEL1###'] = 'was auch immer für ein text';
$sub['###LABEL2###'] = 'was auch immer für ein text 2';
// Mittels typo-funktion labels aus array ersetzen lassen:
$tmpl = $this->cObj->substituteMarkerInObject($tmpl,$sub,'','');
// von deinem plugin erzeugten content an typo zurückliefern:
return $tmpl;
}
} um teile des Templates zu bearbeiten oder auszuschneiden musst du den bereich den du ausschneiden willst durch zweimal dasselbe label eingrenzen z.b. angenommen dein Template sieht so aus Code: ###PART_1### irgendein text eventuell auch mit ###LABEL### ###PART_1### Code: $partTmpl = $this->cObj->getSubpart($tmpl,'###PART_1###'); diese kannst du nun verändern und anschliessend durch Code: $tmpl = $this->cObj->substituteSubpart($tmpl,'###PART_1###',$partTmpl); ich weiss auch nicht so genau wie ich das genauer erklären soll ohne eine seitenweise abhandlung zu schreiben. vllt könntest du sonst deine probleme etwas genauer eingrenzen. Geändert von eucstyle (30.08.06 um 15:03 Uhr). |
|
#7
| ||||
| ||||
| Erstamals vielen Dank für deine ausfürhlichen Erklärungen, die mir weitergeholfen haben, jedoch im FE noch keine Ausgabe bringt :sad: Ich poste jetzt hier mal mein Zwischenergebnis: Fields Overview (Kickstarter) Code: hotelname Hotel Name String input contact Contact Person String input address Address Text area plz Zip-Code String input ort City String input country Country String input phone1 Phone 1 String input phone2 Phone 2 String input fax1 Fax 1 String input fax2 Fax 2 String input email E-Mail Link www WWW Link imagelist Image (LIST View) Files images, 1 files imagesingle Image (SINGLE View) Files images, 3 files priceez Price (Single Room) String input pricedouble Price (Double Room) String input about About the Hotel Text area with RTE Auszug aus der class.tx_t3fhotel_pi1.php PHP-Code: PHP-Code: Kann mir jemand auf die Sprünge helfen? Ich kenne mich in PHP nur rudimentär aus und dafür reichts schon nicht mehr. Ganz lieben Gruss Junior Geändert von Junior (31.08.06 um 08:29 Uhr). |
|
#8
| ||||
| ||||
| Vergleich mal folgendes mit Deinem Code: Code: // array erstellen das die zu ersetzenden labels enthält $sub['###LABEL1###'] = 'was auch immer für ein text'; $sub['###LABEL2###'] = 'was auch immer für ein text 2'; // Mittels typo-funktion labels aus array ersetzen lassen: $tmpl = $this->cObj->substituteMarkerInObject($tmpl,$sub,'','');
__________________ mfg Matthias TYPO3-Consultant -- TYPO3 Entwicklung TYPO3-HOST.DE -- Individuelles TYPO3-Hosting |
|
#9
| ||||
| ||||
| Mhm. Aber ich muss doch für jede DB-Feld ein LABEL erstellen!? Oder missverstehe ich etwas grundlegend? Ganz lieben Gruss Junior |
|
#10
| ||||
| ||||
| Zitat:
Code: $sub['###LABEL1###'] = 'TEXT1'; Code: // Tierisch komplizierte DB Abfragen deren Ergebniss z.B. in Variable $Feld1 gespeichert wurden: $sub['###LABEL1###'] = $Feld1;
__________________ mfg Matthias TYPO3-Consultant -- TYPO3 Entwicklung TYPO3-HOST.DE -- Individuelles TYPO3-Hosting |
![]() |
|