[TYPO3-german] Kontextmenu fehlt im BE von T3 4.0

Dieter Bosli nospam3 at bosli.ch
Tue Apr 11 17:28:09 CEST 2006


Am Tue, 11 Apr 2006 16:34:16 +0200 schrieb Peter Niederlag:

> Hallo,
> 
> Dieter Bosli schrieb:
>> Am Tue, 11 Apr 2006 12:40:21 +0200 schrieb Peter Niederlag:
> [...]
>> Jetzt bin ich ein wenig sprachlos...
>> Der Reihe nach. Ich habe die Extension gefunden. Und es ist eine von meinen
>> eigene... Aber ich mache da (zumindest nach meiner Auffassung) nichts mit
>> Drag 'n' Drop und mit Kontextmenus. Ein bischen Peinlich ist mir das jetzt
>> schon... Bin aber gleichzeitig froh das Problem erkannt zu haben.
>> Aus meiner Sicht dürfte die Extension nur auf den Rendering-Process im
>> Frontend einfluss haben...
>> 
>> Bin jetzt wirklich ratlos. Möchte die Extension aber unter 4.0 stabiel und
>> sicher zum Laufen bringen. Du scheinst Dich da etwas besser auszukennen als
>> ich.
>> Also es handelt sich um 'Printcontrol'.
>> 
>> Peter, Du scheinst die T3-API recht gut zu kennen, ich könnte bei dieser
>> Extension jetzt wirklich etwas fundierte Hilfe gebrauche. Damals habe ich
>> an genau einem entscheidenden Punkt weder im Forum noch in den Tutorials
>> Hilfe bekommen. Gut möglich, dass die Lösung die ich gewählt hatte ein
>> Bruch war, der sich jetzt rächt. Ich kann aber bis heute keinen anderen Weg
>> sehen.
> 
> $_REQUEST['type'] ist imho kein guter Weg...
> 
>> Wäre es Dir möglich den Code von 'wa_printctrl' und sehr wahrscheinlich
>> auch von 'wa_contentrenderinghook' einmal kurz anzuschauen. Vielleicht hast
>> Du mir einen Tip wo ich anders vorgehen muss. Ist im Endeffekt nur sehr
>> wenig Code...
>> Möchte das Post jetzt nicht überbeanspruchen. Was der Sinn der Extension
>> ist, sollte aus dem Manual von 'wa_printctrl' hervorgehen.
> 
> a) printctrl hat keine abhängigkeit auf contentrendering
> b)
> foreach($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['wa_contentrenderinghook/class.ux_tslib_cObj.php']['beforeContentRendering']
> as $classRef) {
> $row = $this->callUserFunction($classRef,$row,'');
> 
> MUSS imho schief gehen, wenn du das so einbaust:
> $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['wa_contentrenderinghook/class.ux_tslib_cObj.php']['beforeContentRendering'][]
> = 'tx_waprintctrl_pi1->main';
> 
> Was willst du denn da überhaupt zusammenbauen??
> 
> BTW: wa_printctrl legt sogar das BE KOMPLETT lahm (php5). :-<
> 
> Gruß,
> Peter

Hallo Peter

Du glaubs gar nicht wie ich hier nach einer besseren Lösung am suchen
bin... Bin echt ein wenig verzweifelt...

Okay was mache ich: Also ich füge zu jedem Content-Element eine Selectbox
hinzu über die ich die Ausgabe des Content-Elements auf verschiedenen
Page-Typen (typeNum) steuern will (Bildschirm = 0, Print = 98, PDF = 123).
Vereinfacht Ausgedrückt: Es soll also möglich sein ein Content-Element
speziell nur für den Ausdruck anzulegen, oder es eben genau davon
auszuschliessen.
Die Selectbox ist dabei keine Kunst, die habe ich problemlos in der TCA
hinbekommen.

Aber wo kann ich mich in den Renderingprocess einklinken um ALLE
Content-Elemente vor dem Rendern noch einmal auf die Einstellung dieses
Feldes (Erweitert tt_content) zu überprüfen und in Kombination mit dem
angeforderten Seitentype möglicherweise das Rendern zu unterdrücken.

Genau für diese Frage habe ich damals keine Hilfe bekommen. Mein Weg war es
(nach längerem Codestudium) die Core-Klasse tslib_cObj zu erweitern. War
mir dabei aber bewusst, dass XCLASS der schlechtere Weg (da nur einmal
machbar) ist, und Hooks eigentlich das richtige Vorgehen wären. Da ich
keinen geeigneten Hook finden konnte, habe ich die kleine Extension
'wa_contentrenderinghook' geschrieben, die nichts anderes macht als
tslib_cObj zu erweitern - genau genommen nur die Function CONTENT innerhalb
dieser Klasse. In der Schleife in der jeder Record aus tt_content gerendert
wird habe ich zu Beginn meinen Hook plaziert. Dachte mir, dass auf diese
Weise andere einfacher von diesem Hook profitieren können.
'wa_printctrl' hängt sich in diesen Hook ein, prüft Seitentyp der
angeforderten Seite und die Einstellung aus der Selectbox. Wenn die
Kombination entsprechend ist, wird das Rendering mittels unset() auf den
entsprechenden Record unterdrückt, in allen anderen Fällen wird der Record
unverändert zurückgegeben und das Element normal gerendert. Ich konnte
sehen, dass die Original-Function CONTENT mit gelöschten Records umgehen
kann (ich glaube auch die Lokalisierung löst das auf die gleiche Weise).

So wie es in den Tutorials zu den Hooks geschieben steht habe ich an Kaspar
als Autor von tslib_cObj gemailt, und ihn gebeten zu prüfen den Hook doch
generell aufzunehmen. Mit dem Resultat dass ich nie etwas gehört habe....

Naja, bisher ist es bei mir gelaufen. Einmal hat sich wer aus Schweden
gemeldet, dass der BE sich verabschiede. Das sollte aber gehoben sein...

Was das aber mit den Kontextmenus zu tun haben soll weis ich nicht. Und ich
glaube da funkt mir noch eine weitere Extension rein. Habe aber noch nicht
herausbekommen welche (soviel steht aber fest es ist keine eigene mehr).

Aber eben ich möchte zuerst Printcontrol zum laufen bekommen. Gut möglich,
dass meine XCLASS ein Problem darstellt... Aber wo muss ich mich da
reinhängen? Konnte auch heute Nachmittag keinen geeigneten Punkt finden...

Hast Du da vielleicht eine Idee? Würde eigentlich gerne dazulernen.

Gurss Dieter


PS: Übrigens herzlichen Dank für die Zeit die Du Dir dafür nimmst, und
sorry für den toten BE.

-- 
+ + +   Nicht in Problemen sondern in Lösungen denken   + + +



More information about the TYPO3-german mailing list