Typo3 Druckansicht einer Seite mit dynamisch generierter URL

Hallo liebe Experten,
ich schreibe euch an, weil ich seit ein paar tagen an einem problem sitze und einfach nicht voran komme:

ich wurde beauftragt eine web-site umzubasteln, welche mit typo3 erstellt wurde.
an sich alles kein problem außer bei der druckansicht des kalenders. diese zeigt im moment immer nur den aktuellen monat an, was daran liegt, dass die seite über den link aufgerufen wird, und dieser nunmal auf den aktuellen monat verweist. wenn man aber irgendeinen anderen monat ausdrucken will, ist des natürlich mist

so sieht der code im mom aus

#Link zur Druckversion

DRUCKVERSION = TEXT
DRUCKVERSION {
field = uid
wrap = Druckversion
}

einen ansatz zur lösung des problems habe ich auch: ich müsste einfach die aktuelle URL auslesen, diese einer variable zuweisen und beim href die variable nehmen… oder so

zum URL auslesen habe ich folgenden snippet gefunden

temp.pageurl=TEXT
temp.pageurl.typolink {
parameter.data=TSFE:id
returnLast=url
}

allerdings bin ich kläglich daran gescheitert die beiden zu verbinden

wäre schick, wenn mir einer helfen könnte

mfg xy

Hallo xy (nicht wirklich schöner Name),
anbei ein Beispiel was aber schon etwas älter ist. Man kann Variablen am System anmelden. Das temp.footer Objekt habe ich dann einfach in einen Marker ausgegeben. Hoffe es hilft und es klappt auch.

Setup:

temp.footer = COA
temp.footer {

*** print

10 = HTML
10.value =

20 = TEXT
20 {

print

wrap = |
value =Seite drucken
typolink {
wrap = |
target = _blank
no_cache = 0
parameter.data = field : uid
parameter.wrap = | ,98 _blank

additionalParams.cObject = COA
additionalParams.cObject {
10 = TEXT
10.data = GPvar : tipUrl
10.wrap = &tipUrl=|
10.required = 1

20 = TEXT
20.data = GPvar : L
20.wrap = &L=|
20.required = 1

25 = TEXT
25.data = GPvar : suche
25.wrap = &suche=|
25.required = 1

40 = TEXT
#40.data = GPvar : tt_news
40.data = GPvar : tx_ttnews|tt_news
40.wrap = &tx_ttnews[tt_news]=|
40.required = 1
}

ATagBeforeWrap = 1
#ATagParams = class=„headnav“
}
}

30 = HTML
30.value =
}

Einfach die Extension „Cron-Printlink“ verwenden. und so die Seite z.B. einbinden:

lib.printlink |

Hallo xy-no,

so flexibel TypoScript sein mag, ich benutze seit jeher immer ein Script dazu. Mit diesem Script manipuliere ich die URL wie es mir gerade passt.

Ich lege ein Script unter fileadmin/scripts/user_div.php ab. Den Inhalt des Scripts gebe ich Dir am Ende.
Dieses Script würdest Du im TS wie folgt benutzen:

page.includeLibs.diverse = fileadmin/scripts/user\_div.php

DRUCKVERSION = TEXT
DRUCKVERSION {
 value = Druckversion
 typolink.title = Druckversion
 typolink.parameter.dataWrap = {page:uid} \_blank druckversion
 typolink.addQueryString = 1
 typolink.addQueryString.method = GET
 typolink.userFunc = user\_div-\>typolinkMakePrint
}

Hoffe es funktioniert, denn ich habe es etwas getrimmt und nicht getestet.

Gruß

Und hier der Inhalt von user_div.php

<?php class user_div {<br />
 private function getQueryParams($url\_string) {
 if ($url\_string \> '') {
 $parsed\_url=parse\_url ($url\_string);
 $query\_params = Array();
 if ($parsed\_url['query']) {
 $params=explode("&",$parsed\_url['query']);
 foreach ($params as $param) {
 $parts=explode("=",$param);
 $query\_params[$parts[0]]=$parts[1];
 }
 }
 return $query\_params;
 }
 }

 public function typolinkMakePrint($original) {

 // RealUrl
 if ($GLOBALS['TSFE']-\>tmpl-\>setup['page.']['config.']['tx\_realurl\_enable']) {
 $table = "tx\_realurl\_urlencodecache";
 $where = "content = '{$original['url']}'";
 $result = $GLOBALS['TYPO3\_DB']-\>exec\_SELECTquery('origparams', $table, $where);
 if ($GLOBALS['TYPO3\_DB']-\>sql\_num\_rows($result) \> 0) { // More than one entry for a page with no expire time is wrong...!
 $cachedPagePath = $GLOBALS['TYPO3\_DB']-\>sql\_fetch\_assoc($result);
 $original['url'] = "index.html?".$cachedPagePath['origparams'];
 }
 }

 // get all query params
 $query\_params = user\_div::getQueryParams($url\_string);

 // build typolink config
 $linkconfig = Array(
 'parameter' =\> $query\_params['id'],
 );
 if (is\_array($query\_params))
 foreach ($query\_params as $key=\>$val) {
 if ($key != 'id')
 $linkconfig['additionalParams'] .= "&{$key}={$val}";
 }

 // get Typolink
 $local\_cObj = t3lib\_div::makeInstance('tslib\_cObj');
 $original['url'] = $local\_cObj-\>typoLink\_URL($linkconfig);
 $original['TAG'] = ereg\_replace("href=\"([^\"]\*)\"","href=\"{$original['url']}\"",$original['TAG']);

 return $original['TAG'];

 }

}

?\>

druckansicht des kalenders
diese zeigt im moment immer nur den aktuellen monat
an, was daran liegt, dass die seite über den link aufgerufen
wird, und dieser nunmal auf den aktuellen monat verweist. wenn
man aber irgendeinen anderen monat ausdrucken will, ist des
natürlich mist

temp.pageurl=TEXT
temp.pageurl.typolink {
parameter.data=TSFE:id
returnLast=url
}

In TSFE:id steht auch nur die Seiten-ID drin, die Du schon über field = uid ausgelesen hast. Die Monatsansicht der anderen Monate ist aber vermutlich auf der gleichen Seite, so dass Du noch den gewünschten Monat in die URL reinschreiben müsstest. Du hast nicht geschrieben, welche Kalender-Extension Du benutzt, deswegen konnte ich Dir nur diesen allgemeinen Code schreiben, bei dem Du die übergebenen Variablennamen anpassen musst:

DRUCKVERSION = COA
DRUCKVERSION.10 = TEXT
DRUCKVERSION.10 {
field = uid
wrap = Druckversion
#die gleiche Zeile lesbar, aber nicht valide:
#wrap = tx_cal[month]=|&" target="_blank">Druckversion
}

Gruß, Hartmut

irgendwie klappt es nicht recht, der link der dadurch generiert wird sieht a) seltsam aus und verweist b) auf die root seite :frowning:

hab versucht daran etwas rumzubasteln, aber es wird leider eher schlimmer als besser

Du hast nicht geschrieben, welche Kalender-Extension
Du benutzt, deswegen konnte ich Dir nur diesen allgemeinen
Code schreiben, bei dem Du die übergebenen Variablennamen
anpassen musst:

DRUCKVERSION = COA
DRUCKVERSION.10 = TEXT
DRUCKVERSION.10 {
field = uid
wrap = Druckversion
#die gleiche Zeile lesbar, aber nicht valide:
#wrap = tx_cal[month]=|&" target="_blank">Druckversion
}

erstmal riesen dank, leider klappt es immer noch nicht, ich weiß, ich stelle mich wohl extrem gehirnblond an :frowning:

folgende extension wurde auf der seite eingesetzt: Calendar Base - cal

rein intuitiv habe ich versucht den code anzupassen, folgendes kam dabei raus:

DRUCKVERSION = COA
DRUCKVERSION.10 = TEXT
DRUCKVERSION.10 {
field = uid
wrap = Druckversion

}
irgendwo steckt ein wurm drin *seufz*

DRUCKVERSION = COA
DRUCKVERSION.10 = TEXT
DRUCKVERSION.10 {
field = uid
wrap = Druckversion

}
irgendwo steckt ein wurm drin *seufz*

Du kannst nicht mehrere Werte in einem wrap einfügen. Erzeuge für jeden Parameter einen neuen Block, also
DRUCKVERSION.20…
DRUCKVERSION.30…
und so weiter.

Hallo!
Hrm, hier weiß ich leider auch nicht weiter.
Frag mal unter http://www.typo3forum.net/forum/ nach.
VG
Chris

Hallo!
Hrm, hier weiß ich leider auch nicht weiter.
Frag mal unter http://www.typo3forum.net/forum/ nach.
VG
Chris

hehe, dort habe ich meine anfrage als aller erstes reingesetzt ;D
leider gab es aber noch keine antwort, deswegen bin ich diesen weg gegangen :smile:

trotzdem lieben dank

ich habs nochmal umgeschrieben

#Link zur Druckversion

DRUCKVERSION = COA
DRUCKVERSION.10 = TEXT
DRUCKVERSION.10 {
field = uid
wrap = Druckversion
}

und trotzdem komm ich nicht zu dem gewünschten ergebnis :frowning:

der unten stehende link führt zu einem pic, welches das „ergebnis“ zeigt (bitte in einem neuen tab öffnen)
http://i36.tinypic.com/2lvgw2t.png

DRUCKVERSION.40 = TEXT
DRUCKVERSION.40 {
data = GPvar:cHash
wrap = cHasch=|"

Hier könnte das Problem liegen, einerseits ist der Variablenname falsch geschrieben, andererseits gelten die Hashes evtl. nur für den type, für den sie erzeugt wurden.
Bitte kopier mal den erzeugten Link direkt aus dem Quellcode der Seite, mit Deinem Bild habe ich leider nicht viel anfangen können.

Hallo,

sorry, ich habe gerade überhaupt keine Zeit, mich darum zu kümmern; sonst jederzeit gerne. Wenn dir niemand anders hilft, melde dich bitte nochmal, nächste Woche ist etwas mehr Luft.

Grüße

Michael

lieben dank für deine hilfe, der fehler saß wie so oft vor dem monitor ^^

einerseits hattest du natürlich recht, cHash war falsch geschrieben

und das zweite war, dass der seitenersteller den link zur druckversion in drei verschiedenen temlates reingeschrieben hat. u.a auch im root-template, und das habe ich eben erst entdeckt, entfernt, und es läuft! :smile:

also nochmal riiiieeesen dank :smile:

lieben dank für das angebot, problem so eben gelöst :smile: