Hallo Community,
ich habe ein Problem, wo ich im Moment nicht weiter komme. Ich möchte im TypoScript realisieren, dass wenn es Inhalt im styles.content.get gibt, ein Druckerbutton erscheint. Da habe ich die Info bekommen, dass ich dies am Besten über eine userFunc hinbekomme. Ich habe mich daran versucht, aber scheitere. Bislang musste ich auch noch nie eine UserFunc in Typo erstellen.
Ich poste mal, was ich bis jetzt geschrieben habe. Erstmal das TypoScript im meinem kaskadierten temp.druckversion. Dort möchte ich die Möglichkeit über das PHP-Script nutzen, dass temp.druckversion nur ausgeführt wird, wenn Inhalt vorhanden ist.
# Funktionaler Druckbutton
# PHP Variable ob Druckbutton erscheint oder nicht!
includeLibs.content_empty = fileadmin/metsoft/php/content_empty.php
temp.printFunc = USER_INT
temp.printFunc {
userFunc = user_conten_empty -> visibility
}
temp.druckversion = COA
temp.druckversion {
#wrap = <a href="|" name="Druckversion" title="Druckversion" target="_blank"><img src="{$printbutton}" title="print" class="" alt="" /></a>
10 = TEXT
# aktuelle Adresse ermitteln
10.data = getIndpEnv:REQUEST_URI
# typeNum anfügen
#10.wrap = |&type=98
10.wrap = <a href="|
20 = TEXT
# aktuelle Adresse ermitteln
20.data = getIndpEnv:REQUEST_URI
# typeNum anfügen
20.wrap = " name="Druckversion" title="Druckversion" onclick="window.open('|&type=98' , 'drucken', 'width=1024,height=600, resizable=yes, scrollbars=yes, menubar=yes');"><img src="{$printbutton}" title="print" class="" alt="" /></a>
}
# ein abweichendes Seiten-Template für den Typ 98 (=Druckversion)
alt_print = PAGE
alt_print {
typeNum = 98
bodyTag = <body onload="window.print()">
stylesheet = fileadmin/metsoft/css/style_metsoft_print.css
# Content
10 = TEXT
10.value = <img src="fileadmin/metsoft/images/printversion/metsoft_logo_klein.png" title="print" class="" alt="" /><br />
20 = TEXT
20.data = date:U
20.strftime = %d.%m.%Y
20.wrap = | <br />
30 = TEXT
30.data = date:U
30.strftime = %H:%M
30.wrap = | {$time_print} <br />
40 = TEXT
40.data = field:title
40.wrap = <b>|</b>
50 < styles.content.get
60 = TEXT
60.data = getIndpEnv:REQUEST_URI
60.wrap= <br /><br /><div id="url"><b>URL:</b><br /><div id="url_box">http://www.metsoft.biz|</div></div>
70 = TEXT
70.value = {$license}
}
Im Root-Template meiner Seite wird dann das obige Template eingfügt:
10.workOnSubpart = DOKUMENT
10.marks {
# Hauptmenü
MENU_MAIN < temp.navigation
# ENDE
...
# Druckversion
PRINT < temp.druckversion
# ENDE
Nun folgt zur Ansicht mein geschriebenes PHP-Script:
?php
class user_content_empty {
var $cObj;
function visibility($content) {
if (mysql_num_rows(mysql_query('SELECT * FROM tt_content WHERE (pid = 43) AND ((colPos =1) OR (colPos =2) OR (colPos =3) OR (colPos =4)) AND (deleted = 0)')) > 0) {
$content.= 'Hier wird nix gedruckt';
return $content;
} else {
$content.= 'Da gibts was zum drucken';
return $content;
}
}
}
?>
Zur Anmerkung: Ich möchte unbedingt wissen wie das geht! und was ich falsch mache oder vergesse. Ich müsste die Function nicht einfügen, weil keine Seite ohne Inhalt dargestellt werden soll.
Im obigen TypoScript weiß ich, dass das einfache einfügen des temp.printFunc = USER_INT usw. nicht reicht, und erst noch die Abhängigkeit zum temp.druckversion erstellt werden muss, aber ich hab schon alles versucht. Ich komm nicht weiter. Immerhin läuft alles auf der Seite reibungslos, wenn ich die Function nicht einbaue.
Vielen Dank für Hilfen, im Vorraus!