Okay dann die Frage etwas anders und ganz simple: Wie komme ich an den von Typo3 erzeugten Bodytag?
Lernen am Beispiel: Printversion
?!
print.bodyTag =<body onLoad="javascript:window.print()">
?!???!?
Soweit ich weiß der einzige sinnvolle Weg... (meiner Meinung nach)
MFG Proximo
PS: Steht übrigens 2 Posts drüber
Okay. Danke! das klappt!
Werde wohl noch an meiner Fragestellung arbeiten müssen! 😉
Aaaaaaaaaaaaaaargh.. hiiiiiiiiiiiiiilfe!!!
Ich benutze realurl und den Source von der 1. (bzw. 2.) Seite des Threads hier.
Aber immer wenn ich dann auf 'Drucken' klicke, wird die Seite 'www.foo.de/foo/bar/html.98.html' aufgerufen..
Why?
Hier mein Source (main-template; gaaaaanz oben an erster stelle) :
# DRUCKEN
temp.PRINT = COA
temp.PRINT {
wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>
10 = TEXT
10.data = getIndpEnv:REQUEST_URI
10.listNum.splitChar = .
10.listNum = 1
10.wrap = |.98.html
}
[globalString = ENV:REQUEST_URI = *php?id*]
temp.PRINT.10 >
temp.PRINT {
10 = TEXT
10.data = getIndpEnv:REQUEST_URI
10.wrap = |&type=98
}
[GLOBAL]
print = PAGE
print {
typeNum = 98
bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">
#10 < styles.content.getLeft
20 < styles.content.get
#30 < styles.content.getRight
#40 < styles.content.getBorder
}
wtf?
Was mache ich falsch?
Wieso wird ein falscher Link gesetzt?
Achja, zum Thema RealURL:
# RealURL
config.simulateStaticDocuments = 0
config.baseURL = 1
config.tx_realurl_enable = 1
(auch im main-template; direkt unter dem Druck-Zeugs)
Kann mir jemand sagen was ich falsch mache?
thanks.
Das ist ziemlich einfach:
10.listNum.splitChar = .
10.listNum = 1
Ich habe nämlich die variable von der SPRACHE auchnoch hier eingebunden... also:
seite.98.0.html
Die 0 Stellt die aktuelle Sprache dar...
Lösung: Ändere die Zahl von "10.listNum = 1"...
MFG Proximo
Hi!
Ja is mir auch gerade eingefallen.. hatte nur das beim Split durcheinander gebracht, dass 1 immer der erste eintrag NACH dem splitChar ist xD
Naja okay, sieht gut aus.. jetz wird "foobar.de/foo/bar/foobar.98.html" aufgerufen, aaaaaaaaaaaber:
Error. Reason: Segment "foobar.98" was not a keyword for a postVarSet as expected!
Das kommt beim aufrufen des Drucken-Links.
Why? Und wie kann ich es verhindern?
Okay, Sector cleared. Problem geloest.
# DRUCKEN
temp.PRINT = COA
temp.PRINT {
wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a>
10 = TEXT
10.data = getIndpEnv:REQUEST_URI
10.listNum.splitChar = .
10.listNum = 0 # wenn der wert auf 1 steht, wird ein falscher Link ausgegeben.
10.wrap = |/print
}
[globalString = ENV:REQUEST_URI = *php?id*]
temp.PRINT.10 >
temp.PRINT {
10 = TEXT
10.data = getIndpEnv:REQUEST_URI
10.wrap = |&type=98
}
[GLOBAL]
print = PAGE
print {
typeNum = 98
bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()">
#10 < styles.content.getLeft
20 < styles.content.get
#30 < styles.content.getRight
#40 < styles.content.getBorder
}
Es muss '10.wrap = |/print' lauten, anders geht es nicht.
thanks. 🙂
np... /print? Hmm bin ich wirklich überfragt... aber wenn irgend eine Extension das fordert... naja dann schreibt man es hald hin 😉
MFG Proximo
Ja anscheinend verlangt RealURL dass man einen Ordner angibt.
Frag mich nicht warum, is halt so 😉
Hallo zusammen!
@Fabian-K: Danke für den Hinweis in dem anderen Thread. Könntest Du bitte mal einen Auszug aus deiner localconf.php posten, der sich auf die Einstellungen für Real-URL bezieht?
Vielen Dank im Voraus,
Sven
Hallo zusammen,
erstmal ein großes Dankeschön an die beteiligten Autoren. Durch diesen Thread konnte ich meine Drucklinks erstmal wieder zum Laufen bringen.
Auch zeigt mir RealUrl die Seiten .../print.html an.
Dazu habe ich lediglich ein .html in das Setup eingefügt
# Erzeugung des Links für Druckversion
temp.PRINT_Text = COA
temp.PRINT_Text {
wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print"><img src="fileadmin/images/b_print.png" border="0" alt="Drucken" /></a>
10 = TEXT
10.data = getIndpEnv:REQUEST_URI
10.listNum.splitChar = .
10.listNum = 0 # wenn der wert auf 1 steht, wird ein falscher Link ausgegeben.
10.wrap = |/print.html
}
[globalString = ENV:REQUEST_URI = *php?id*]
temp.PRINT_Text.10 >
temp.PRINT_Text {
10 = TEXT
10.data = getIndpEnv:REQUEST_URI
10.wrap = |&type=98
}
[GLOBAL]
und in der RealUrl ext_localconf den Wert im fileName angepasst:
...
'preVars' => array(
array(
'GETvar' => 'L',
'valueMap' => array(
'en' => '2',
'de' => '1',
),
'GETvar' => 'type',
'valueMap' => array(
'print' => '98',
'pdf' => '123',
),
'noMatch' => 'bypass',
),
),
'pagePath' => array(
'type' => 'user',
'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
'spaceCharacter' => '-',
'languageGetVar' => 'L',
'expireDays' => 3,
'rootpage_id' => '1'
),
'fileName' => array (
'defaultToHTMLsuffixOnPrev' => 1,
'index' => array(
'page.html' => array(
'keyValues' => array (
'type' => 1,
),
),
'print.html' => array(
'keyValues' => array(
'type' => 98,
),
),
'page.pdf' => array (
'keyValues' => array (
'type' => 123,
),
),
),
),
...
Jetzt habe ich nur noch zwei Fehler:
Die eingebundenen CSS-Dateien
# Erzeugte Druckseite mit Links zum Drucken und Schließen
print_page = PAGE
print_page {
typeNum = 98
5 = TEXT
5.value = <div align="right"><a href="javascript:self.print()" title="Seite drucken">Drucken</a> <a href="javascript:self.close()" title="Seite schließen">Seite schließen</a></div>
#10 < styles.content.getLeft
20 < styles.content.get
#30 < styles.content.getRight
#40 < styles.content.getBorder
#20 = CONTENT
#20 < styles.content.get
includeCSS {
file4 = fileadmin/template/main/res/dropdownsitemap.css
file3 = fileadmin/template/main/res/mininews.css
file2 = fileadmin/template/main/res/print.css
}
}
greifen nicht. Sie sind zwar im Quelltext eingetragen:
<!--
This website is brought to you by TYPO3 - get.content.right
TYPO3 is a free open source Content Management Framework created by Kasper Skaarhoj and licensed under GNU/GPL.
TYPO3 is copyright 1998-2005 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
Information and contribution at http://www.typo3.com
-->
<link rel="stylesheet" type="text/css" href="fileadmin/template/main/res/dropdownsitemap.css" />
<link rel="stylesheet" type="text/css" href="fileadmin/template/main/res/mininews.css" />
<link rel="stylesheet" type="text/css" href="fileadmin/template/main/res/print.css" />
<title> ::: Inf-O-Net ::: Telematik Solutions</title>
<meta name="generator" content="TYPO3 3.8 CMS" />
<script type="text/javascript">
aber es sind keine Formatierungen auf der Seite zu sehen. Wird die Druckseite ohne RealUrl aufgerufen nach dem Motto
../index.php?id=505&type=98
wird die Seite komplett richtig angezeigt. Der Quelltext ist der Gleiche. Nur die aufgerufene URL ist unterschiedlich.
Und zur zweiten Herausforderung:
Auf der Startseite wird der Drucklink falsch gesetzt.
Im Quelltext steht
href="//print.html"
wodurch natürlich der Link http://print.html/ entsteht. Und der ist nicht erreichbar. Erst wenn ich eine der Unterseiten aufrufe, wird der Link wieder richtig gesetzt.
Nehme ich den Slash im TypoScript Zeile 10 (s.o.) raus, funktioniert zwar die Startseite, aber die Unterseiten nicht mehr.
Sind diese Probleme bei jemandem auch schon mal aufgetreten?
Thx Rookie
Hallo Rookie,
...wodurch natürlich der Link http://print.html/ entsteht. Und der ist nicht erreichbar. Erst wenn ich eine der Unterseiten aufrufe, wird der Link wieder richtig gesetzt.
Nehme ich den Slash im TypoScript Zeile 10 (s.o.) raus, funktioniert zwar die Startseite, aber die Unterseiten nicht mehr.Sind diese Probleme bei jemandem auch schon mal aufgetreten?
Ja, bei mir sind die Probleme auch aufgetaucht... Ich habe dann in der DOC zu der extension folgenden Hinweis gefunden:
value: emptyUrlReturnValue
type: stringdescription: If the URL is empty it usually is meant to be a link to the frontpage.
If you set this value to a string, that will be the URL returned if the URL is otherwise empty.
If you set this value true (PHP boolean, "TRUE"), then it will return the baseURL set in TSFE.
Setting it to "./" should work as a reference to the root as well. But it is not so beautiful.
Ich habe dann in die CONSTANTS des übergeordneten Templates folgendes eingetragen:
plugin.tx_realurl_pi1.emptyUrlReturnValue = TRUE
Danach kommt jetzt auch auf der Startseite die richtige URL.
Gruss AnneK
_______________________________
Nachtrag:
Leider wurde eine Druckseite oder die Seite als PDF nur dann ausgegeben, wenn ein Pfad (z. Bsp.: http://url/[b]home[/b]/print.html) angegeben war.
Lösung:
In der ext_localconf.php folgenden Eintrag machen:
'redirects' => array(
'' => 'home/',
),
Mal eine Frage:
ich habe meine Druckversion damit erstellt, daß ich nur die Zeile:
<link rel="stylesheet" type="text/css" media="print" href="fileadmin/d3gmbh/css/d3gmbh_print.css" />
in das HTML-Template integriert habe. Und dann eben
das Stylesheet so gestaltet habe, daß nur der Text-Haupt-bereich, keine Navi, keine Hintergrundbilder angezeigt werden. Was spricht eigentlich dagegen?
Drücke ich auf den Printbutton des Browsers wird dieses Template ausgeführt, statt des "normalen", für den Screen bestimmten.
Ist diese ganze Printversion-Erstellung über TS wirklich notwendig?
imu schriebMal eine Frage:
...
Ist diese ganze Printversion-Erstellung über TS wirklich notwendig?
Nö.
imu schriebSchreibfehler oben
... muss heißen
Drücke ich auf den Printbutton des Browsers wird dieses Stylesheet ausgeführt, statt des "normalen", für den Screen bestimmten.
@theo
... aber warum dann ? ..., ist diese TS-Printversion einfach ein Überbleibsel aus den Zeiten, als der CSS-Standard noch nicht soweit war und statt über Klassen über HTML-Format-Tags formatiert wurde?
Hallo zusammen,
erstmal sorry, dass ich so lange nicht reagiert habe. Ich hatte ein paar Tage Urlaub 😃 . Muss auch mal sein.
@AnneK
Danke für die Hinweise. Ich habe sie mal ausprobiert, hatte aber auf die Schnelle kein Erfolg. Der Link auf der Startseite ist immer noch ohne Domain. Muss ich wohl noch weiter testen. Ich konnte auf keinem der drei von Dir aus der Anleitung aufgeführten Wege die baseUrl einfügen.
@imu
Den Ansatz werde ich mal weiterverfolgen. Danke für den Einwurf. Das würde das Ganze natürlich wesentlich vereinfachen. Warum einfach wenn`s auch umständlich geht ;-).
Grüße
Rookie
Hallo zusammen,
habe wie irgendwann mal bemerkt den Ansatz mit der Printversion per CSS weiterverfolgt. Dank @ imu. Durch die einfachen Zeile display: none; für die nicht-druckrelevanten Bereiche bleibt z.B. nur noch der interessante Hauptteil übrig.
Wer will kann ja noch mal seine Lieblingsschrift einstellen.
Vor allem hat das den großen Vorteil, dass man eine Seitenansicht mit Umbruchvorschau bekommt.
Wer weitere Vorschläge dazu hat, kann sich natürlich gerne melden. Neuigkeiten lese ich immer gerne :-).
Grüße
Rookie
ich danke imu tausendfach, genau wie rookie, denn css ist für mich die lösung. also:
css konseqent nutzen
weg mit plugin.alt.print
keine zusätzliche anpassung der localconf.php
im html-template:
<a href="javascript:self.print()"><img src="fileadmin/template/grafik/icon_print.gif" alt="drucken" title="drucken" /></a>
im ts-template setup hier mit templavoila:
# Default PAGE object:
page = PAGE
page {
typeNum = 0
10 = USER
10.userFunc = tx_templavoila_pi1->main_page
includeCSS {
file2 = fileadmin/template/css/default.css
file1 = fileadmin/template/css/print.css
file1.media = print
}
}
im default.css alles was ihr wollt also z.B.:
#wasweissich {background-image:url(../grafik/wasweissich.jpg);
background-repeat:no-repeat;
width:500px;
height:500px;
position:absolute;
top:10px;
left:10px;}
im print.css:
#wasweissich {display:none;}
alles andere muss nicht angepasst werden, also im ts-template nach wie vor:
# RealURL
config.simulateStaticDocuments = 0
config.baseURL = 1
config.tx_realurl_enable = 1
Proximo schrieb*Kopfschüttel* fangen wir nochmal an:
Ich setze folgende Minimalzustände vorraus:
- Installiertes Typo
- Include static: styles.content (default) (im Maintemplate)
- Inhalt in irgendeiner Spalte (auf der jeweiligen Seite)Als aller erstes füge ich nun ins Haupttemplate, UNTER ALLES, vorallem AUßERHALB JEDER KLAMMER folgenden TS im SETUP ein:
temp.PRINT = COA temp.PRINT { wrap = <a href="|" name="Drucken" title="Drucken" target="_blank" class="print">Drucken</a> 10 = TEXT 10.data = getIndpEnv:REQUEST_URI 10.listNum.splitChar = . 10.listNum = 1 10.wrap = |.98.html } [globalString = ENV:REQUEST_URI = *php?id*] temp.PRINT.10 > temp.PRINT { 10 = TEXT 10.data = getIndpEnv:REQUEST_URI 10.wrap = |&type=98 } [GLOBAL]Und jetzt nochmal AUßERHALB JEDER KLAMMER genau drunter:
print = PAGE print { typeNum = 98 bodyTag =<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="javascript:window.print()"> 10 < styles.content.getLeft 20 < styles.content.get 30 < styles.content.getRight 40 < styles.content.getBorder }Nachdem man dies einfach alles eingefügt hat OHNE ES ZU ÄNDERN darf man jetzt anfangen zu denken, man muß den inhalt von "temp.PRINT" nun in einen Marker oder Subpart befördern... das macht man am besten indem man schaut wo man seine anderen marker hat die zb so ausschauen können:
marks.bild = IMAGE marks.bild.file = ...Genau unter so einen Eintrag schreiben wir dann:
marks.PRINT < temp.PRINTUnd im HTML-Template schreiben wir dann noch irgendwo (am besten auch ganz nah an irgendeinem vorhanden Marker damit wir auch ja nix falschmachen)
###PRINT###rein!
Ich hoffe das war jetzt für alle verständlich!
Schlusswort:
Das was ihr 2 da anstellt hat 1. Jede Menge Klammern, ist 2. Kompliziert, 3. (in Folge) total unübersichtlich und 4. Ziemlich sinnlos^^Ja genau ich habe extra drauf verzichtert anzufangen alles zu verschachteln und zusätzlich noch Templates einzubinden weil die meisten Typoanfänger mehr Ahnung von CSS haben wie von Typo und sich deshalb so viel einfacher tun!
Die größte Sinnlosigkeit die ich dabei gesehen habe ist allerdings:
marks{ dein_marker = CONTENT dein_marker{ table = tt_content select { where = colPos = 0 orderBy = sorting } } }Da 1. "styles.content (default)" diese Aufgabe für uns übernimmt, und mann 2. keinen Marker braucht wenn man nur 1 Element ausgeben will *g*
MFG Proximo
Edit: Nachdem ich gesehen hab wir der Aufbau und die Strukturierung mancher Haupttemplates und TS in diesem Forum aussieht habe ich mich entschlossen das nächste Tutorial über "Strukturierung von TS und TS-Templates" also genauergesagt "Effizients und Übersichtlichkeit" zu schreiben (coming soon)
hi erstmal,
also ich hab genau die schritte gemacht die du oben beschrieben hast aber irgendwie bekomme ich überhaupt keine anzeige/output. wenn ich meine seite im FE anschaue sehe ich nirgends den link zur printversion. *verzweifle*
kann mir jemand helfen was ich vielleicht falsch mache. thxx
Moin!
Ich hab schon tief in der Forensuche gekramt, doch leider nix zu meinem Problem gefunden:
Ich nutzte Statische Seiten, weil ein Kunde das so wünscht.
Die Url erscheint dann so:
http://www.domain.de/*Seitenname*.*seitenid*.*sprachid*.html
Die hier in dem Beispiel angegeben funktion klapp nicht.
Ich dachte zunächst ich hab mit listnumm einfach die falschen Werte extrahiert.
Doch als Printlink erschein auf den statischen Seiten immer:
http://www.domain.de/index.php?id=*ID-der-Startseite*&ADMCMD_view=1&ADMCMD_editIcons=1&type=98
Wenn ich mir die Seiten dynamisch anschaue, gehts wunderbar.
:o
Weiß jemand was ich falsch mache?
Das Typoscript habe ich 1:1 aus dem Post von Proximo.
Typo3-Version ist 3.7