danke für die schnelle antwort... leider indexiert indexed search die seiten mit der extension immer noch nicht. vielleicht noch eine idee?
vg,
andi
Hallo,
ich möchte gerne die tt_content anhand einer extension um ein paar felder erweitern. mein problem ist, wenn ich das mache, dann habe ich diese felder immer und überall wo ich sie garnicht brauche. wie kann ich diese extension nur anwenden, wenn ich es brauche?
danke für die schnelle antwort... leider indexiert indexed search die seiten mit der extension immer noch nicht. vielleicht noch eine idee?
vg,
andi
überprüfe im Objectbrowser, ob die Ext auch USER ist. Ebenso darf die Seite kein no_cache haben. Dann cache löschen, im BE die indizierung öffnen, Seite besuchen und kontrollieren.
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Hallo Steffen,
ich bin noch ein ziemlicher Newbee in Typo3.
Nun habe ich diesen Workshop versucht nachzuvollziehen, aber scheitere an der Ausgabe.
In Teil 2 schriebst du
wo und wie soll ich denn nun was aufrufen?Die main-Funktion wird aufgerufen, wenn wir das Plugin in einer Seite haben - das wollen wir jetzt machen. Wenn wir die Seite uns anschauen, sollten wir folgende Ausgabe sehen:
Ich habe mittels des Plugins nen Datensatz auf einer ansonsten leeren Seite angelegt. Den kann ich auch jederzeit wiederfinden, aber leider kann ich den nicht anzeigen.
Vom Grundprinzip hast du mit diesem Workshop nämlich genau das gemacht was ich noch brauche - ne Funktion mit der ich Steckbriefen von Leuten eingeben und dann formatiert wieder ausgeben kann.
gruß andi
Hi,
Du musst nichts aufrufen - Die Aussage ist so zu verstehen:
Bindest Du das Plugin auf einer Seite ein, so wird von TYPO3 die main-Funktion Deines Plugins aufgerufen.
Die Datensätze alleine werden nicht angezeigt, das Plugin liest diese aus und zeigt sie an.
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Hallo Steffen,
erstmal Vielen Dank. Mit deinem Tip hat es nun geklappt.
Nun habe ich mich weiter durchgearbeitet und es funktionierte auch alles bis auf das letzte
Ich habe zum Schluss deine beiden Codes in die beiden jeweiligen Dateien gespeichert, und bekomme nun bei der Ausführung folgende Fehlermeldung:
Bislang hatte php keinerlei Probleme gemacht, aber in diesem Fall scheint er ja das ganze Script nicht abzuarbeiten.class tx_tptest_pi1 extends tslib_pibase { var $prefixId = 'tx_tptest_pi1'; // Same as class name var $scriptRelPath = 'pi1/class.tx_tptest_pi1.php'; // Path to this script relative to the extension dir. var $extKey = 'tp_test'; // The extension key. var $pi_checkCHash = true; var $template; var $id; /** * The main method of the PlugIn * * @param string $content: The PlugIn content * @param array $conf: The PlugIn configuration * @return The content that is displayed on the website */ function main($content,$conf) { $this->conf=$conf; $this->pi_setPiVarDefaults(); $this->pi_loadLL(); #ein paar Vorbelegungen $this->id=$GLOBALS['TSFE']->id; $this->template=$this->cObj->fileResource('EXT:tp_test/template.htm'); #welche Ansicht? if($this->piVars['item']) { $content = $this->detailView(); } else { $content = $this->listView(); } return $this->pi_wrapInBaseClass($content); } function listView() { #unser Subpart $subpart=$this->cObj->getSubpart($this->template,'###LISTVIEW###'); #eine einzelne Reihe $singlerow=$this->cObj->getSubpart($subpart,'###ROW###'); #Datensätze holen $res=$GLOBALS['TYPO3_DB']->exec_SELECTquery( '*', #select 'tx_tptest_items', #from 'hidden=0 and deleted=0 and pid='.$this->id, #where $groupBy='', $orderBy='', $limit=''); if($res) { $liste=''; while($row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { $markerArray['###LINK###']=$this->pi_linkTP($row['title'],array($this->prefixId.'[item]'=> $row['uid'])); $liste .= $this->cObj->substituteMarkerArrayCached($singlerow,$markerArray); } $subpartArray['###ROW###']=$liste; } else { return $this->pi_getLL('nodata'); } return $this->cObj->substituteMarkerArrayCached($subpart,$markerArray,$subpartArray,array()); } function detailView() { #unser Subpart $subpart=$this->cObj->getSubpart($this->template,'###DETAILVIEW###'); #Datensatz holen $record=$this->pi_getRecord('tx_tptest_items',$this->piVars['item']); #Marker füllen $markerArray['###TITLE###']=$record['title']; $markerArray['###DATUM###']=date('d.m.Y',$record['date']); $markerArray['###TEXT###']=$this->pi_RTEcssText($record['text']); $markerArray['###IMAGE###']=$this->cObj->IMAGE(array( 'file' => 'uploads/tx_tptest/'.$record['image'], 'file.maxW' => 140, )); $markerArray['###LINK###']=$this->cObj->typolink($record['link'],array( 'parameter' => $record['link'], 'extTarget' => '_blank', )); #backlink als einfachen Link ohne Parameter $markerArray['###BACKLINK###']=$this->pi_linkToPage($this->pi_getLL('back'),$this->id); return $this->cObj->substituteMarkerArrayCached($subpart,$markerArray,array(),array()); } }
Warning: Cannot modify header information - headers already sent by (output started at H:\_typo3\xampp\htdocs\blvn_karambol\typo3conf\ext\tp_test\pi1\class.tx_tptest_pi1.php:10) in H:\_typo3\xampp\htdocs\blvn_karambol\typo3\sysext\cms\tslib\class.tslib_fe.php on line 2767
Kann es evtl. an einer falschen php-Version liegen?
gruß Andi
ich denke eher, das bei Dir die php-tags fehlen:
<?php ... ?>
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
... das bringt mich schon wieder einen Schritt weiter.
Sorry, daß ich mich so dusselig anstelle, ich hatte halt die fertige Extension aus deinem Post kopiert.
Aber jetzt bekomme ich die neue Meldung:
Es scheint ja nun daran zu liegen, daß er die Klasse tslib_pibase nicht kennt.Fatal error: Class 'tslib_pibase' not found in H:\_typo3\xampp\htdocs\blvn_karambol\typo3conf\ext\tp_test\pi1\class.tx_tptest_pi1.php on line 3
Wo muss ich denn nun diesen Code reinkopieren?
In die class.tx_tptest_pi1.php oder in die typo3/sysext/cms/tslib/class.tslib_pibase.php?
Gruß Andi
irgendwas machst Du verkehrt - hast Du die Ext überhaupt im EM installiert und dann über insert plugin eingefügt?
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Hi Steffen, ja habe ich:
Ich habe es auch im Template der Seite unter "Include static (from extensions):" eingefügt.Frontend Plugins
Steckbriefe test neu tp_test 0.0.0 Local Alpha
Ich stelle es gleich mal ins Web. Evtl. ist ja irgendwas passiert was sich dadurch nun beheben lässt.
Gruß Andi
Hallo,
auch von mir erstmal vielen Dank für das tolle Tutorial!
Ich habe allerdings dasselbe Problem wie timo (#15): ich befolge die Schritte zum Anlegen der Extension, lade sie, lege eine Testseite an (ich habe allerdings keinen Sysfolder, nur eine Seite), lege darauf Datensätze an - aber die Seite bleibt leer, obwohl ja laut Tutorial (Anfang des 2. Teils) der Dummy-Output erscheinen sollte.
Ich würde es gerne mit dem Debugger versuchen, aber: wo kommt der Code, den du angibst, hin? Wo steht "#welche Ansicht"? Und wenn ich den Code eingetragen habe: muss ich mir dann wieder die Seite anzeigen lassen, oder wie läuft das Debuggen?
Wegen der fehlenden Anzeige habe ich einen Verdacht: meine Testseite steht innerhalb einer Website mit Templavoila-Template - ist das ein Problem? Was für ein Template sollte die Testseite haben?
Vielen Dank für jede Hilfe!
Anna
Es war - wie ich schon vermutet hatte - das Template!
Die Testseite sollte z.B. folgendes Template haben:
page = PAGE
page.typeNum = 0
page.10 = USER
page.10.userFunc = tx_tptest_pi1->main
Und dann war bei mir noch Kuddelmuddel mit "tp_test" und "tptest": im ersten Schritt des Tutorials lautet der Extension key "tp_test", in der class heißt es dann "tptest" - ich denke mal, das sollte auch besser konsistent sein, oder ist das egal?
Anna
nein, es gibt 2 sachen
Extkey: tp_test (so heisst auch der ordner)
Klasse: tx_tptest_pi1,tx_tptest_pi2, etc.
Das sind 2 verschiedene Sachen und daher ist es auch gut, das die unterschiedlich heissen.
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Hallo Steffen,
wie muss das Template für die Seite aussehen, in der die Datensätze angezeigt werden?
Ich möchte gerne mit "debug($this->piVars);" die Variablen anzeigen lassen. Beim Aufruf mit ...index.php?id=... &tx_tptest_pi1[test]=20 klappt es auch prima, aber dein Beispiel klappt leider nicht.
Mein Template enthält im Setup nur dies:
plugin.tx_tptest_pi1 {
test = 20
test1 = 15
help = Ich bin ein Hilfetext
}
page = PAGE
page.typeNum = 0
page.10 = USER
page.10.userFunc = tx_tptest_pi1->main
Die Testzeilen ("This is line 1...") werden angezeigt, aber der Debugger sagt nur "Empty!".
Vielen Dank für deine Hilfe,
Anna
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)