[TYPO3-german] cObj von Plugin-Content, dass sich in einem Content Element befindet auslesen
Ich bin derzeit am rätseln, wie ich an die Daten eines Content-Elements komme. Damit meine ich: Ich habe das cObject eines Content Elements. Daran erkenne ich, das CType auf list gesetzt ist und somit ein Plugin enthält (z.B. den t3blog). Nun würde ich jedoch gerne das cObject vom t3Blog Eintrag bekommen, der sich in dem Content-Element befindet. Ist es möglich dort heranzukommen? Das Auslesen über die URL ist an dieser Stelle nicht möglich, da ich meine Routine auf jedes Content Element anwende. Wenn ich also in jedem Content Element auf der Seite die URL auf bestimmte Parameter prüfe, bekomme ich in jedem Content Element die Rückmeldung, dass der Blogeintrag XY gefunden wurde. Ist das möglich? Ich habe bereits ein laufende Lösung, in dem ich den list_type vom cObject des Content-Elements abfrage, dass mir sagt, dass das t3blog-Modul eingebunden ist, aber ich würde gerne eine Lösung schaffen, bei der man den list_type NICHT mehr extra abfragen muss. Gibt es da eine Möglichkeit? LG, JP -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] $TCA von tx_seminars_seminars erweitern möglich?
Ich habe spaßeshalber fix eine zweite Extension erstellt, die ebenfalls den unteren Codeschnippsel beinhaltet (sonst allerdings nichts). Und siehe da: es funktioniert! Wo liegt der Unterschied zu meiner Hauptextension? In beiden ist der selbe Codeschnippsel in der ext_tables.php eingetragen. Aber es wird scheinbar nur im Falle der zweiten Extension erkannt und verarbeitet??!!!? Original-Nachricht Datum: Thu, 27 Oct 2011 16:46:14 +0200 Von: Julian Pleger commentp...@gmx.de An: typo3-german@lists.typo3.org Betreff: [TYPO3-german] $TCA von tx_seminars_seminars erweitern möglich? Hallo zusammen, ich habe eine eigene Extension geschrieben. In dieser Extension möchte ich das $TCA-Array von tx_seminars_seminars erweitern. Das Ganze ist relativ simpel: $tempColumns = Array ( 'tx_myext_flexform' = Array ( 'exclude' = 0, 'label' = 'blabla', 'config' = array( 'type' = 'flex', 'ds_pointerField' = 'CType', 'ds' = array( 'default' = 'FILE:EXT:myext/Configuration/FlexForms/flexform_default.xml' ) ) ), ); t3lib_div::loadTCA('tx_seminars_seminars'); t3lib_extMgm::addTCAcolumns('tx_seminars_seminars', $tempColumns, 1); t3lib_extMgm::addToAllTCAtypes('tx_seminars_seminars','--div--;My Flexform,tx_myext_flexform'); Doch wenn ich dann den Cache lösche und im Adminbereich in die Seminarbearbeitung gehe, erscheint bei mir der Tab My Flexform leider nicht. Habe das Ganze auch schon mit dem type = text ausporbiert.Auch das taucht nicht auf. Kann so keinen Fehler entdecken, da ich auf diese Weise bsp. auch tt_content und tt_news erweitere. Ist das Erweitern des TCA nicht für alle Extensions möglich? Wäre super wenn mir jemand weiterhelfen könnte. Gruß JP -- NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie! Jetzt informieren: http://www.gmx.net/de/go/freephone ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] $TCA von tx_seminars_seminars erweitern möglich?
Hallo zusammen, ich habe eine eigene Extension geschrieben. In dieser Extension möchte ich das $TCA-Array von tx_seminars_seminars erweitern. Das Ganze ist relativ simpel: $tempColumns = Array ( 'tx_myext_flexform' = Array ( 'exclude' = 0, 'label' = 'blabla', 'config' = array( 'type' = 'flex', 'ds_pointerField' = 'CType', 'ds' = array( 'default' = 'FILE:EXT:myext/Configuration/FlexForms/flexform_default.xml' ) ) ), ); t3lib_div::loadTCA('tx_seminars_seminars'); t3lib_extMgm::addTCAcolumns('tx_seminars_seminars', $tempColumns, 1); t3lib_extMgm::addToAllTCAtypes('tx_seminars_seminars','--div--;My Flexform,tx_myext_flexform'); Doch wenn ich dann den Cache lösche und im Adminbereich in die Seminarbearbeitung gehe, erscheint bei mir der Tab My Flexform leider nicht. Habe das Ganze auch schon mit dem type = text ausporbiert.Auch das taucht nicht auf. Kann so keinen Fehler entdecken, da ich auf diese Weise bsp. auch tt_content und tt_news erweitere. Ist das Erweitern des TCA nicht für alle Extensions möglich? Wäre super wenn mir jemand weiterhelfen könnte. Gruß JP -- NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie! Jetzt informieren: http://www.gmx.net/de/go/freephone ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] tt_content per FlexForm erweitern möglich?
Ich habe es nun so probiert: t3lib_div::loadTCA('tt_content'); $pluginSignatureCe1 = 'text'; t3lib_extMgm::addPiFlexFormValue('', 'FILE:EXT:' . $_EXTKEY . '/flexform.xml', $pluginSignatureCe1); Das Feld pi_flexform ist in der tt_content-Tabelle ebenfalls vorhanden. Allerdings erhalte ich keinen neuen Reiter, wenn ich ein Content Element vom Typ text bearbeite :-( Grüße Original-Nachricht Datum: Tue, 18 Oct 2011 08:26:39 +0200 Von: Peter Niederlag typo3-l...@niekom.de An: typo3-german@lists.typo3.org Betreff: [TYPO3-german] Re: tt_content per FlexForm erweitern möglich? Hallo, Am 17.10.2011 14:13, schrieb Julian Pleger: Ich würde gerne tt_content um ein Flexform erweitern. Ich bin jedoch garnicht so sicher, ob das überhaupt geht. So wie ich die Flexforms verstanden habe, kann ich diese nur für eine selbstgeschriebene Extension von mir registrieren. Ich erweitere derzeit das TCA von tt_content per PHP-Funktionen. Das setzt jedoch voraus, dass ich auch die DB-Tabelle um Spalten erweitern muss. Ich dachte mir daher, dass Flexforms eine gute alternative wären, da die Daten auch gespeichert werden, OHNE dafür pro Eintrag eine eigene DB Spalte brauchen. Leider finde ich auch keine Beispiele, wie man z.b. tt_content und/oder sogar pages erweitern per Flexform erweitern kann :-( Man kann das vorhandene Feld 'pi_flexform' auch für andere Inhaltselemente als Plugins nutzen: # DEIN_CTYPE,FLEXFILE entsprechend anpassen t3lib_div::loadTCA('tt_content'); $pluginSignatureCe1 = 'DEIN_CTYPE'; t3lib_extMgm::addPiFlexFormValue('', 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/FLEXFILE.xml', $pluginSignatureCe1); # You still need to add the field 'pi_flexform' to the corresponding # types entry in $TCA # This heavily depends on wether you create your own custom CE # or want to modify an existing one Hilfreich sind gute Kenntnisse von $TCA und die API von t3lib_extMgm::addPiFlexFormValue(). Beachte dass man per TypoScript nicht ohne weiteres an die Werte aus solchen Flexforms herankommt, da diese in einer XML-Struktur gespeichert sind. Gruß und hth, Peter -- Peter Niederlag http://www.niekom.de * TYPO3 EDV Dienstleistungen * ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] tt_content per FlexForm erweitern möglich?
Ich würde gerne tt_content um ein Flexform erweitern. Ich bin jedoch garnicht so sicher, ob das überhaupt geht. So wie ich die Flexforms verstanden habe, kann ich diese nur für eine selbstgeschriebene Extension von mir registrieren. Ich erweitere derzeit das TCA von tt_content per PHP-Funktionen. Das setzt jedoch voraus, dass ich auch die DB-Tabelle um Spalten erweitern muss. Ich dachte mir daher, dass Flexforms eine gute alternative wären, da die Daten auch gespeichert werden, OHNE dafür pro Eintrag eine eigene DB Spalte brauchen. Leider finde ich auch keine Beispiele, wie man z.b. tt_content und/oder sogar pages erweitern per Flexform erweitern kann :-( Würd mich freuen wenn jemand ein paar Denkanstöße in den Raum wirft ;) -- NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie! Jetzt informieren: http://www.gmx.net/de/go/freephone ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] tt_content per FlexForm erweitern möglich?
Hey Bernd, danke für deine Antwort! Wie ich eine Flexform anlege weiß ich. Ich habe dafür auch eine Extension erstellt (per Extension Builder [Extbase]). Aber ich möchte nicht meine eigene Extension um eine Flexform erweitern, sondern tt_content. Das ich das Flexform aber über meine Extension registrieren muss weiß ich wohl. Wie gesagt: das Problem ist, dass ich über meine Extension MyExt die tt_content-Extension erweitern möchte. Derzeit mache ich es wie folgt: // additional TCA-data $tempColumns = Array ( 'tx_myext_question' = Array ( 'exclude' = 0, 'label' = 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:tx_myext_domain_model_question', 'config' = array( 'type' = 'inline', 'foreign_table' = $foreign_table, 'foreign_field' = 'foreignid', 'foreign_label' = 'question', 'foreign_table_field' = 'tablename', 'minitems' = 0, 'maxitems' = 10 ) ), ); t3lib_div::loadTCA('tt_content'); t3lib_extMgm::addTCAcolumns('tt_content',$tempColumns,1); // Hier kann auch der Name des Tabs angegeben werden t3lib_extMgm::addToAllTCAtypes('tt_content','--div--;LLL:EXT:myext/Resources/Private/Language/locallang_db.xml:tx_myext_domain_model_question,tx_myext_question'); Gruß Julian Original-Nachricht Datum: Mon, 17 Oct 2011 13:21:54 + (UTC) Von: Bernd Wilke t...@pi-phi.tk An: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] tt_content per FlexForm erweitern möglich? On Mon, 17 Oct 2011 14:13:15 +0200, Julian Pleger wrote: Ich würde gerne tt_content um ein Flexform erweitern. Ich bin jedoch garnicht so sicher, ob das überhaupt geht. So wie ich die Flexforms verstanden habe, kann ich diese nur für eine selbstgeschriebene Extension von mir registrieren. das empfiehlt sich um sauber über die TYPO3-API zu arbeiten. ansonsten könnte nach einem Update alles durcheinander sein Ich erweitere derzeit das TCA von tt_content per PHP-Funktionen. Das setzt jedoch voraus, dass ich auch die DB-Tabelle um Spalten erweitern muss. Ich dachte mir daher, dass Flexforms eine gute alternative wären, da die Daten auch gespeichert werden, OHNE dafür pro Eintrag eine eigene DB Spalte brauchen. wie bindest du diese PHP-Funktionen ein? Die sauberste Variante wäre: eine Extension. in dieser Extension muss ja nicht viel drin sein. ext_tables.php/ext_tables.sql/ext_localconf.php könnten ja schon reichen. Allerdings muss dann auch klar sein was mit den Daten passiert. das könnte mit TypoScript oder PHP geschehen. und auch das wäre in einer Extension gut aufgehoben. Damit ein komplettes paket, dass dann auch gut portierbar wäre. Leider finde ich auch keine Beispiele, wie man z.b. tt_content und/oder sogar pages erweitern per Flexform erweitern kann :-( zur Flexform Konfiguration und Nutzung (aus einem FE-Plugin heraus): [¹] Zum Erweitern einer Tabelle um eigene Felder kannst du ja mal den Kickstarter anschmeissen und dir die dabei generierten Dateien ansehen. evtl. auch in der extbase-variante mit dem 'extension builder' Würd mich freuen wenn jemand ein paar Denkanstöße in den Raum wirft ;) [¹] http://pi-phi.de/171.html bernd -- http://www.pi-phi.de/t3v4/cheatsheet.html ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie! Jetzt informieren: http://www.gmx.net/de/go/freephone ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] Typo3 in externer Datei bekannt machen
Ich habe eine Extension geschrieben, die aus dem Frontend Ajax Requests per ExtJS losschickt. Das Ganze geht dann an eine Datei ajax.php die ich selber angelegt habe. In dieser Datei möchte ich Controller meiner Extension aufrufen. Doch wie mache ich die TYPO3 Umgebung in der Datei ajax.php bekannt, damit ich die Controller problemlos aufrufen kann (z.B. über t3lib_div::makeInstance)? -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Typo3 in externer Datei bekannt machen
Ah, super! Danke :-) Original-Nachricht Datum: Fri, 14 Oct 2011 09:34:28 + (UTC) Von: Bernd Wilke t...@pi-phi.tk An: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] Typo3 in externer Datei bekannt machen On Fri, 14 Oct 2011 10:50:27 +0200, Julian Pleger wrote: Ich habe eine Extension geschrieben, die aus dem Frontend Ajax Requests per ExtJS losschickt. Das Ganze geht dann an eine Datei ajax.php die ich selber angelegt habe. In dieser Datei möchte ich Controller meiner Extension aufrufen. Doch wie mache ich die TYPO3 Umgebung in der Datei ajax.php bekannt, damit ich die Controller problemlos aufrufen kann (z.B. über t3lib_div::makeInstance)? den Ansatz findest du unter dem Stichwort eID. evtl. auch eID ajax und ndatürlich im Kontext von TYPO3. dafür müßtest du online genug doku finden. Beachte, dass damit nicht automatisch alle Klassen und Funktionen einer FE-Extension verfügbar sind. Das muss erst einzeln nachgeladen und initialisiert werden. bernd -- http://www.pi-phi.de/t3v4/cheatsheet.html ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Per PHP jedes Content-Element um String erweitern?
Kann man allgemein mit einer Anweisung für jedes Content Element eine postUserFunc auslösen und anwenden? Original-Nachricht Datum: Wed, 12 Oct 2011 17:02:21 +0200 Von: Christian Wolff ch...@connye.com An: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] Per PHP jedes Content-Element um String erweitern? -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hallo Björn ich würde das einfach als postUserFunc im stdWrap Machen. gruss chris Am 12.10.2011 16:09, schrieb Julian Pleger: Hallo Björn, den Hook habe ich auch gerade gefunden, allerdings habe ich dort immer noch das gleiche Problem. Mit dem Hook rufe ich mir diese Funktion auf: function stdWrapPostProcess($content, array $configuration, tslib_cObj $parentObject) { echo $parentObject-data['uid'].'br '; return $content; } Dabei erhalte ich wieder 20 mal die uid 217, 8 mal die uid 216, usw. ... Heißt wiederum: wenn ich etwas an den Content hänge bekomme ihc es X-fach. Die Funktion scheint jedes mal aufgerufen zu werden, sobald etwas in dem jeweiligen content-element gewrapped wird (und nicht erst ganz am Schluss). Denn wenn ich return $content; zu return $content . 'test'; ausweite, zerhakt es mir das Design und ich bekomme Teile vom CSS Code zu sehen, in dem der String test dann wieder auftaucht. Also prinzipiel möchte ich folgendes: Ich kann pro Content Element eine frage anlegen. Das funktioniert auch wunderbar. Nun möchte ich jedes Content Element prüfen, ob es mit einer Frage verknüpft ist oder nicht. Ist es der Fall, so soll die Frage am Ende des Content Elements ausgegeben werden. Argh ich verzweifel :-( Aber danke für eure Hinweise!!! :) Original-Nachricht Datum: Wed, 12 Oct 2011 15:50:43 +0200 Von: Björn Pedersen peder...@frm2.tum.de An: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] Per PHP jedes Content-Element um String erweitern? Am 12.10.2011 15:39, schrieb Kay Strobach: Probier mal: /** * stdWrap post process hook * can be used by extensions authors to modify the behaviour of stdWrap functions to their needs * this hook executes functions at after the content has been modified by the rest of the stdWrap functions but still before debugging * * @paramstring Input value undergoing processing in these functions. * @paramarray All stdWrap properties, not just the ones for a particular function. * @returnstring The processed input value */ public function stdWrap_stdWrapPostProcess($content = '', $conf = array()) { Damit solltest du einfacher zu Rande kommen. Björn ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german - -- Christian Wolff // Berlin http://www.connye.com some projects: http://richtermediagroup.com | http://titanic.de | http://keyopinions.info -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) iEYEARECAAYFAk6Vq/0ACgkQIcCaXPh/JHHgnQCdEongEvCtFYAh9xtWx2fBAmAR XloAoJ68e1zjL5g2aflJXV8Ytzub5F45 =gei0 -END PGP SIGNATURE- ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie! Jetzt informieren: http://www.gmx.net/de/go/freephone ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] Fluid-Standalone nutzen?!
Hallo zusammen. Ich würde gerne Fluid in der Standalone Variante nutzen. Ich berufe mich dabei auf diese beiden Links: - http://snipplr.com/view/54376/use-fluid-standalone/ - http://www.slideshare.net/plobacher/extreme-fluid-status-quo-der-modernen-templating-engine (dort Seite 22) Ich arbeite mit Typo3 4.5 und Extbase 1.3.1-devel. Allerdings funktioniert dies bei mir nicht. Ich erhalte immer ein leeres Ergebnis (also eine weiße Seite). Ich hab mich mal etwas in die Fluid Klassen geworfen. Wenn ich in der Datei /typo3/sysect/fluid/Classes/View/AbstractTemplateView.php in Zeile 174 folgendes hinzufüge: $this-getLayoutSource($this-getLayoutNameInTemplate($parsedTemplate)), so kann ich die Rohstruktur meines Templates sehen. Wenige Zeilen darunter wird der Output gesetzt. Dieser ist aber immer leer :-( Hat da jemand eine Idee wo der Fehler liegen könnte? Greets -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] Per PHP jedes Content-Element um String erweitern?
Hallo zusammen, ich habe eine kleine Extension gebastelt und ich stehe nun vor folgendem Problem. Ich habe ewig nach dem passenden Hook gesucht, mit dem ich die einzelnen Content-Elemente anfassen kann, bevor sie gerendet werden. Schlussendlich habe ich den Hook $TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClass'][] = array('TEXT','EXT:myext/Hooks/tt_content.php:tx_myext_ttcontent_hooks'); gefunden. Mit diesem rufe ich die Funktion cObjGetSingleExt($name, $conf, $TSkey, $obj) in der Datei myext/Hooks/tt_content.php der Klasse tx_myext_ttcontent_hooks auf. Den Inhalt habe ich aus dem Core-Code von Typo vorerst übernommen: public function cObjGetSingleExt($name, $conf, $TSkey, $obj) { $contentObject = $obj-getContentObject($name); if ($contentObject) { return $contentObject-render($conf); } } Wie ihr oben seht, rufe ich den Hook mit dem Datentyp TEXT auf. Das lässt sich natürlich auch auf Content-Elemente von anderen Typen anpassen. Nun aber zu meinem Problem: In der Funktion cObjGetSingleExt werden die einzelnen TEXT-Content-Elemente der aktuellen Seite gerendered und zurückgegeben. Wenn ich mir Hilfsausgaben in der Funktion cObjGetSingleExt mache (z.B.: echo $name), dann sehe ich, dass die Funktion pro Content-Element mehrfach aufgerufen wird. Ich verstehe aber nicht warum. Denn die ausgegebene Seite zeigt immerhin jedes Content-Element nur einmal an. Wenn ich meine Function cObjGetSingleExt nun erwietere: public function cObjGetSingleExt($name, $conf, $TSkey, $obj) { $contentObject = $obj-getContentObject($name); if ($contentObject) { return $contentObject-render($conf) . ' MEINE ERWEITERUNG'; } } so wird weiterhin jedes Content-Element EINMAL auf der Seite ausgegeben, der Textanhang MEINE ERWEITERUNG erscheint jedoch nach jedem Content-Element 7-,8- oder 9-fach. Ich verstehe die Problematik an dieser Stelle einfach nicht. Warum wird die Funktion pro Content-ELement mehrfach aufgerufen und warum werden die Elemente trotzdem nur einmal auf der Seite angezeigt. Wenn ich allerdings noch Daten anhänge werden diese Mehrfach dargestellt ... ?!?! Hat jemand eine Idee? -- NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie! Jetzt informieren: http://www.gmx.net/de/go/freephone ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Per PHP jedes Content-Element um String erweitern?
Hallo Kay, es soll mit PHP gelöst werden. Greets Original-Nachricht Datum: Wed, 12 Oct 2011 15:00:50 +0200 Von: Kay Strobach ty...@kay-strobach.de An: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] Per PHP jedes Content-Element um String erweitern? Hi, wie wärs mit TYPOScript und wrap? Grüße Kay Am 12.10.2011 14:58, schrieb Julian Pleger: Hallo zusammen, ich habe eine kleine Extension gebastelt und ich stehe nun vor folgendem Problem. Ich habe ewig nach dem passenden Hook gesucht, mit dem ich die einzelnen Content-Elemente anfassen kann, bevor sie gerendet werden. Schlussendlich habe ich den Hook $TYPO3_CONF_VARS['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClass'][] = array('TEXT','EXT:myext/Hooks/tt_content.php:tx_myext_ttcontent_hooks'); gefunden. Mit diesem rufe ich die Funktion cObjGetSingleExt($name, $conf, $TSkey, $obj) in der Datei myext/Hooks/tt_content.php der Klasse tx_myext_ttcontent_hooks auf. Den Inhalt habe ich aus dem Core-Code von Typo vorerst übernommen: public function cObjGetSingleExt($name, $conf, $TSkey, $obj) { $contentObject = $obj-getContentObject($name); if ($contentObject) { return $contentObject-render($conf); } } Wie ihr oben seht, rufe ich den Hook mit dem Datentyp TEXT auf. Das lässt sich natürlich auch auf Content-Elemente von anderen Typen anpassen. Nun aber zu meinem Problem: In der Funktion cObjGetSingleExt werden die einzelnen TEXT-Content-Elemente der aktuellen Seite gerendered und zurückgegeben. Wenn ich mir Hilfsausgaben in der Funktion cObjGetSingleExt mache (z.B.: echo $name), dann sehe ich, dass die Funktion pro Content-Element mehrfach aufgerufen wird. Ich verstehe aber nicht warum. Denn die ausgegebene Seite zeigt immerhin jedes Content-Element nur einmal an. Wenn ich meine Function cObjGetSingleExt nun erwietere: public function cObjGetSingleExt($name, $conf, $TSkey, $obj) { $contentObject = $obj-getContentObject($name); if ($contentObject) { return $contentObject-render($conf) . ' MEINE ERWEITERUNG'; } } so wird weiterhin jedes Content-Element EINMAL auf der Seite ausgegeben, der Textanhang MEINE ERWEITERUNG erscheint jedoch nach jedem Content-Element 7-,8- oder 9-fach. Ich verstehe die Problematik an dieser Stelle einfach nicht. Warum wird die Funktion pro Content-ELement mehrfach aufgerufen und warum werden die Elemente trotzdem nur einmal auf der Seite angezeigt. Wenn ich allerdings noch Daten anhänge werden diese Mehrfach dargestellt ... ?!?! Hat jemand eine Idee? -- http://www.kay-strobach.de - Open Source Rocks TYPO3 inspiring people to share! Get involved: http://typo3.org Answere was usefull: https://flattr.com/profile/kaystrobach ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Re: [TYPO3-german] Per PHP jedes Content-Element um String erweitern?
Hallo Björn, den Hook habe ich auch gerade gefunden, allerdings habe ich dort immer noch das gleiche Problem. Mit dem Hook rufe ich mir diese Funktion auf: function stdWrapPostProcess($content, array $configuration, tslib_cObj $parentObject) { echo $parentObject-data['uid'].'br '; return $content; } Dabei erhalte ich wieder 20 mal die uid 217, 8 mal die uid 216, usw. ... Heißt wiederum: wenn ich etwas an den Content hänge bekomme ihc es X-fach. Die Funktion scheint jedes mal aufgerufen zu werden, sobald etwas in dem jeweiligen content-element gewrapped wird (und nicht erst ganz am Schluss). Denn wenn ich return $content; zu return $content . 'test'; ausweite, zerhakt es mir das Design und ich bekomme Teile vom CSS Code zu sehen, in dem der String test dann wieder auftaucht. Also prinzipiel möchte ich folgendes: Ich kann pro Content Element eine frage anlegen. Das funktioniert auch wunderbar. Nun möchte ich jedes Content Element prüfen, ob es mit einer Frage verknüpft ist oder nicht. Ist es der Fall, so soll die Frage am Ende des Content Elements ausgegeben werden. Argh ich verzweifel :-( Aber danke für eure Hinweise!!! :) Original-Nachricht Datum: Wed, 12 Oct 2011 15:50:43 +0200 Von: Björn Pedersen peder...@frm2.tum.de An: typo3-german@lists.typo3.org Betreff: Re: [TYPO3-german] Per PHP jedes Content-Element um String erweitern? Am 12.10.2011 15:39, schrieb Kay Strobach: Probier mal: /** * stdWrap post process hook * can be used by extensions authors to modify the behaviour of stdWrap functions to their needs * this hook executes functions at after the content has been modified by the rest of the stdWrap functions but still before debugging * * @param string Input value undergoing processing in these functions. * @param array All stdWrap properties, not just the ones for a particular function. * @return string The processed input value */ public function stdWrap_stdWrapPostProcess($content = '', $conf = array()) { Damit solltest du einfacher zu Rande kommen. Björn ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] FE-User in Hook auslesen
Ich habe einen Hook geschrieben. In diesem Hook speichere ich einen Kommentar einer News ab. Nun möchte ich dem auf dem Kommentar das Userobjekt des Autors speichern. Dazu versuch ich das Objekt aus dem Repository zu holen: ** $userRepository = t3lib_div::makeInstance('Tx_Extbase_Domain_Repository_FrontendUserRepository'); $userRepository-findByUid($userId); // wirft leeres Ergebnis $userRepository-findAll(); // wirft auch leeres Ergebnis ** Doch leider bekomme ich nie meine User aufgelistet. Das Ergebnis meiner Abfrage ist immer leer. Was mache ich falsch? -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
[TYPO3-german] Fluid in Hook nutzen
Ich würde gerne in einem Hook einen Marker mit füllen. Der Marker soll eine Liste mit einer kleiner form bekommen. Ich würde dazu gerne ein Template via Fluid auslesen und befüllen und dann dem Marker zuweisen. Mein problem ist nur, dass ich es nicht hinbekomme Fluid in meinem Hook zu initialisieren. Bisher sieht der php Code im Hook so aus: $view = t3lib_div::makeInstance('Tx_Fluid_View_StandaloneView'); $view-setTemplatePathAndFilename($templateFile); $view-setLayoutRootPath(dirname($templateFile)); $view-assign('list_item','asdsadasd'); return $view-render('Comments'); Das Template heißt Comments.html das in meinem Extension-Ordner im Ordner /tpl liegt. Aber damit habe ich wenig Erfolg. Am Ende erhalte ich ein leeres Ergebnis. -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de ___ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german