Hallo Allerseits,
vielleicht kann mir von euch jemand helfen.
Ich habe eine Seite mit 10 inhaltselementen angelegt die untereinander dargestellt werden.
Nun muss ich es irgendwie ermöglichen bei jedes content element in einem popup erscheinen zu lassen und dann drucken zu lassen.
man stelle sich das so vor wie in einem onlineshop
produkt bild ------------- produkttext ----------------- print
produkt bild1 ------------- produkttext1 ----------------- print1
produkt bild2 ------------- produkttext2 ----------------- print2
produkt bild3 ------------- produkttext3 ----------------- print3
produkt bildn ------------- produkttextn ----------------- printn
Wie mache ich das am besten.
bei klick auf print muss genau der jeweilige content block in einem popup aufgehen und der drucker dialog des ie oder mozilla soll automatisch anschlagen.
wie bekomm ich das mit dem print button hin, dass der dynamisch unter jedes content element kommt?!
Ich bin für jede hilfe dankbar!
LG
Christian
Hi!
Für sowas würde ich mir das Rahmen-Element umschreiben. Dort kannst Du ans Ende jeden Contents einen DIV basteln, der einen Link enthält (uid und pid angeben).
Dann baust Du dir ein 2. Page-Objekt mit nem anderen type, welche ein neues Template beinhaltet (Druckansicht) und gut.
Klingt vielleicht kompliziert...
Also:
im TS der root-Seite folgendes ergänzen:
tt_content.stdWrap.innerWrap.cObject.10 >
tt_content.stdWrap.innerWrap.cObject.10 = COA
tt_content.stdWrap.innerWrap.cObject.10 {
10 = TEXT
10.value = <div class="print"><a href="#" onClick="window.open('index.php?type=99&id=
20 = TEXT
20.data = page : uid
30 = TEXT
30.value = &pid=
40 = TEXT
40.data = page : pid
50 = TEXT
50.value = ','Drucken','width=500,height=500,left=200,top=200');">Drucken<a></div>
}
print = PAGE
print {
typeNum = 99
10 = CONTENT
10 {
table = tt_content
select.orderBy = sorting
select.where = colPos = 0
select.languageField = sys_language_uid
}
20 = TEXT
20.value = <script type="text/javascript">window.print();</script>
}
und im TSConfig des Seitenheaders der root-Seite folgendes ergänzen:
### umbenennen der Rahmen Option
TCEFORM.tt_content.section_frame{
altLabels {
10 = Druckbutton
}
# removeItems = 1,5,6,21,20
}
Hab's getestet. Es funktioniert. Leider habe ich es nicht hinbekommen nur die pid anzuzeigen. Immerhin steht sie im Link drin. Die muss man dann im neuen Page-Objekt innerhalb von 10 = CONTENT verwurschteln... Vielleicht kann da ein anderer dir unter die Arme greifen...
Grüße
McGregor
Hallo,
geht da jetzt auch schon ein Popup auf und steht da der Inhalt drin?!
Lg
Christian
Bzw. check ich die Anleitung nicht ganz?! Brauch ich da jetzt noch eine HTML File oder ähnliches?! Danke schonmal für die Hilfe. Weiters ist das verwendete Content Objekt jeweils das Text mit Bild Objekt!
Lg
Christian
So...
Das hat mich ganz schön nerven gekostet. Ich wollte aber selbst wissen, wie es genau geht.
Hier jetzt das korrekte komplette TS
tt_content.stdWrap.innerWrap.cObject.10 >
tt_content.stdWrap.innerWrap.cObject.10 = COA
tt_content.stdWrap.innerWrap.cObject.10 {
10 = TEXT
10.value = <div class="print"><a href="#" onClick="window.open('index.php?type=99&id=
20 = TEXT
20.data = page : uid
30 = TEXT
30.value = &tid=
40 = TEXT
40.data = field : uid
50 = TEXT
50.value = &no_cache=1','Drucken','width=500,height=500,left=200,top=200');">Drucken<a></div>
}
print = PAGE
print {
config.linkVars = tid
typeNum = 99
10 = CONTENT
10 {
table = tt_content
select.andWhere {
data = GPvar:tid
wrap = tt_content.uid=|
}
}
30 = TEXT
30.value = <script type="text/javascript">window.print();</script>
}
Das macht dir jetzt vor jedes Inhaltselement (nicht vergessen den "Rahmen" auf Drucken zu setzen) einen Drucken-Link. Wenn du dann den Link klickst wird ein Popup aufgemacht in dem nur der gewählte Inhalt drin steht. Automatisch öffnet sich noch der Drucken-Dialog.
Was Du jetzt noch machen musst, ist das ganze zu stylen, also CSS für die Druckvorschau einbinden (PAGE-Objekt print). Popup-Größe anpassen, Drucken-Button generieren und vielleicht an eine andere Stelle positionieren, etc...
Grüße
McGregor
hallo, genau das ist mein problem.. ich weiß nicht wo ich den rahmen auf drucken setzten kann oder meintest du "einrücken"?! ich verwende wie gesagt das text mit bild objekt....
bitte noch um letzten support. danke!
christian
Ja. ich denke du sprichst von dem selben.
Wenn du den Code in das TSConfig der root-Seite eingefügt hast, dann sollte ein weiterer Menüpunkt in dem Auswahlfeld "Rahmen" bei "Text m/Bild" erscheinen. Und zwar "Drucken".
Das musst du dann auswählen...
Grüße
McGregor
Hallo und danke für deine raschen Antworten.
Eine frage hätte ich noch?!
Ich verwende das automake oder autoparse template extension.
ein paar kleine fragen noch.
wie kann ich dem popup ein eigenes template spendieren?!
wie kann ich das popup stylen.
wie bring ich den druck button rechts unter das jeweilige objekt.
wie kann ich den druck button formatieren?!
lg
christian
coolzero1 schrieb
Ich verwende das automake oder autoparse template extension.
Kenne ich nicht ...
coolzero1 schrieb
wie kann ich dem popup ein eigenes template spendieren?!
Ist doch schon passiert. Da sollte kein Template vorhanden sein (im Gegensatz zur eigentlichen Webseite). Sonst sollte das wie üblich funktionieren.
Template-File angeben. CSS angeben. Marker ersetzen...
coolzero1 schrieb
wie kann ich das popup stylen.
s.o.
coolzero1 schrieb
wie bring ich den druck button rechts unter das jeweilige objekt.
Das müsstest Du dann bei http://de.selfhtml.org nachlesen... Ich kenne dein Template nicht...
coolzero1 schrieb
wie kann ich den druck button formatieren?!
s.o.
Sorry. Da musst Du selbst durch.
Grüße
McGregor
Hallo,
ich schaff es einfach nicht den Drucken Button nicht über dem Objekt sondern unter das Objekt zu positionieren?! Vielleicht könntest du mir ein letztes kleines mal helfen. Wäre ganz toll.
Lg
Christian
Hi!
Spontan, kann ich Dir da leider nicht helfen.
Vielleicht funktioniert es, wenn du die Pipe an das erste Objekt setzt:
...
tt_content.stdWrap.innerWrap.cObject.10 {
10 = TEXT
10.value = |<div class="print"><a href="#" onClick="window.open('index.php?type=99&id=
20 = TEXT
20.data = page : uid
...
Grüße
McGregor
Hallo,
also der Tip war Goldeswert....
Jetzt wärs langsam Zeit für eine Bankverbindung für eine kleine Entschädigung 😉
Eine Bitte noch....
print = PAGE
print {
config.linkVars = tid
typeNum = 99
stylesheet >
stylesheet = fileadmin/holzmann/templ/css/popup.css
10 = TEMPLATE
10 {
template = FILE
template.file = fileadmin/holzmann/templ/html/popuptemplate.html
marks.CONTENT = CONTENT
marks.CONTENT.table = tt_content
tt_content = COA
tt_content {
select.andWhere {
data = GPvar:tid
wrap = tt_content.uid=|
}
}
}
}
Was ist daran falsch?! Jetzt ließt er mir im Popup alle aus und auch beide Sprachen.... hab schon mehrere Sachen rumprobiert... ich hau bald die nerve weg ;(
Vielleicht könntest mir nochmal kurz ne hilfestellung geben.
danke lg
christian
Hi!
Jetzt wirst Du aber faul o.O
Das hättest Du im Forum schnell finden können...
So sollte das funktionieren (achte auf den zusätzlichen linkVars-Parameter)
print = PAGE
print {
config.linkVars = tid,L
typeNum = 99
stylesheet >
stylesheet = fileadmin/holzmann/templ/css/popup.css
10 = TEMPLATE
10 {
template = FILE
template.file = fileadmin/holzmann/templ/html/popuptemplate.html
marks.CONTENT = CONTENT
marks.CONTENT.table = tt_content
tt_content = COA
tt_content {
select.where = colPos = 0
select.languageField = sys_language_uid
select.andWhere {
data = GPvar:tid
wrap = tt_content.uid=|
}
}
}
}
Der Link des Druck-Buttons muss auch noch angepasst werden:
tt_content.stdWrap.innerWrap.cObject.10 >
tt_content.stdWrap.innerWrap.cObject.10 = COA
tt_content.stdWrap.innerWrap.cObject.10 {
10 = TEXT
10.value = <div class="print"><a href="#" onClick="window.open('index.php?type=99&id=
20 = TEXT
20.data = page : uid
30 = TEXT
30.value = &tid=
40 = TEXT
40.data = field : uid
50 = TEXT
50.value = &L={GPvar:L}
50 = TEXT
50.value = &no_cache=1','Drucken','width=500,height=500,left=200,top=200');">Drucken<a></div>
}
Grüße
McGregor
Hallo,
anbei kurz der Link:
http://typo3.flowsworld.com/index.php?id=2
Jetzt hau ich dann die Nerven weg.... er zeigt leider immer noch alle an....
Es ist zum Weinen ;(
Lg
Christian
Hi!
Ich habe mir den Link angesehen.
Da scheint noch einiges nicht ganz zu laufen.
1. Der Drucken-Link hat keinen L-Parameter im Link
2. Auf der Zielseite scheint die tid nicht ausgelesen zu werden.
Ich kann Dir aber nicht alles programmieren 8-) Meine Kunden warten auch ...
Probier noch ein wenig rum.
TYPO3 lernt man übrigens nicht in 2 Wochen. Bei mir sind's jetzt 3 Jahre und ich arbeite fast täglich damit. Mein Wissen schätze ich aber auf ca. 50-60%.
Grüße
McGregor
P.S. Du kannst diesen Lösungsweg auch verwerfen und einen völlig anderen einschlagen...
Hallo,
der Lösungsweg ist spitze! Echt Weltklasse... ein super Profiansatz.
Das perverse ist ja, dass es im 4 Post den du mir geschickt hast, wenn ich es genauso einbinde perfekt funktioniert.
aber ab dem zeitpunkt wo ich ein template verwende gehen irgendwie die variablen verloren... ich hab null plan.... was solls... shit happens....
Hallo McGregor,
es funktioniert mittlerweile.....tja in der Ruhe liegt die Kraft....
Aber wo ich leider keine Doku gefunden habe bzw. eine allerletzte Frage..
Wie kann ich das Text mit Bild Objekt umstylen...
Ich weiß schon das ich das Textuelle ect. mit stylesheets machen kann usw. aber wie im konkreten kann ich und das würd mich am meisten interessieren, bei dem popup die bildgröße ändern?!
weil das teil erbt ja ziemlich alles....
weiters würds mich interessieren den drucken button im popup wegzubringen... anbei was ich jetzt aktuell verwende...
es funzt einwandfrei... vielleicht hast noch schnell zwei drei kleine tipps, ich hab leider nichts brauchbares gefunden...
tt_content.stdWrap.innerWrap.cObject.10 >
tt_content.stdWrap.innerWrap.cObject.10 = COA
tt_content.stdWrap.innerWrap.cObject.10 {
10 = TEXT
10.value = |<div class="print"><a href="#" onClick="window.open('index.php?type=99&id=
20 = TEXT
20.data = page : uid
30 = TEXT
30.value = &tid=
40 = TEXT
40.data = field : uid
50 = TEXT
50.value = &no_cache=1','Drucken','width=600,height=400,left=100,top=200')"><img src="fileadmin/holzmann/templ/img/druckansicht_01.gif" border="0" alt="" /><br></a></div>
}
print = PAGE
print {
config.linkVars = tid
typeNum = 99
stylesheet >
stylesheet = fileadmin/holzmann/templ/css/popup.css
10 = TEMPLATE
10 {
template = FILE
template.file = fileadmin/holzmann/templ/html/popuptemplate.html
marks.CONTENT = CONTENT
marks.CONTENT {
table = tt_content
select.andWhere {
data = GPvar:tid
wrap = tt_content.uid=|
}
}
}
}
Lg
Christian
Hi!
Du musst zuerst eine Kopie von tt_content erstellen
mein_content < tt_content
Danach musst Du deine Änderungen an der Kopie vornehmen.
Zum Beispiel den DruckButton entfernen
mein_content.stdWrap.innerWrap.cObject.10 >
Und dann musst Du dein "neues" Content auf der Druckseite verwenden
...
marks.CONTENT = CONTENT
marks.CONTENT {
table = tt_content
renderObj < mein_content
select.andWhere {
data = GPvar:tid
wrap = tt_content.uid=|
}
}
...
Stichwort hier ist renderObj. Schau im Zweifelsfall im Forum nochmal nach
Grüße
McGregor
P.S. Benutze doch die entsprechenden Container für deinen Code (TS)
Hallo,
danke nochmal.
Gibts eigentlich irgendwo eine vollständige Doku über diese TS Sachen wie renderObj usw?!
Lg
C