[TYPO3-german] pdf_generator2 zum laufen bringen - Einstellungen und Bugfixing
David Bruchmann
david at bruchmann-web.de
Sun Aug 8 10:57:45 CEST 2010
----- Ursprüngliche Nachricht -----
Von: Nicole <shizu__ at hotmail.com>
Gesendet: Samstag, 7. August 2010 17:34:52
An: typo3-german at lists.typo3.org
CC:
Betreff: Re: [TYPO3-german] pdf_generator2 zum laufen bringen
> Hallo!
>
> So. RealURL und URLTool laufen und mit dem PDF_Generator2 werden auch
> PDFs ausgegeben (das die nicht schön sind ist ne andere Sache...)
>
> Allerdings werden die PDFs eben in URLs wie
> "http://tmp.tierschutzverein-freiburg.de/index.php?id=19&type=123"
> ausgegeben. Hätte es nun gerne noch, dass das PDF eben nicht als
> "index.php" angezeigt wird, sondern eben als "Hundevermittlung" oder so...
>
> Weiß jemand noch wie das geht? Wenn ich in der Extention "simulateStaticPdf
> [simulateStaticPdf]
> If set PDF-Links are generated as <alias>.pdf" anhake gehts wieder nicht...
>
>
> Gruß
> Nicole
Hallo Nicole,
mittlerweile habe ich in Deine Probleme einen ganzen Tag Arbeit
gesteckt, allerdings hoffe ich davon auch noch profitieren zu können.
Mein Config-Bereich im TypoScript bezüglich RealURL sieht so aus:
config {
simulateStaticDocuments = 0
absRefPrefix = /
tx_realurl_enable = 1
}
Ich erzeuge meine URLs mit einem einfachen TypoScript, das natürlich
angepasst werden kann - die Ausgabe auf der Seite sind "schöne URLs"
durch RealURL bearbeitet (die bereitgestellten Funktionen der
Erweiterung erzeugten bei mir 'unschöne URLS'):
lib.pdfLink = COA
lib.pdfLink {
10 = TEXT
10 {
field = title
stdWrap.typolink {
parameter = {TSFE:id} _blank
parameter.insertData = 1
additionalParams = &type=123
}
}
}
In RealURL habe ich folgende Einstellungen vorgenommen:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']['_DEFAULT']['fileName'] =
array (
'defaultToHTMLsuffixOnPrev' => 1,
'acceptHTMLsuffix' => '',
'index' => array (
'.html' => array (
'keyValues' => array (
'type' => 0,
),
),
'.pdf' => array (
'keyValues' => array (
'type' => 123,
),
),
),
);
Die Datei .htaccess sieht bei mir jetzt so aus:
RewriteEngine On
#RewriteRule ^typo3$ - [L]
#RewriteRule ^typo3/.*$ - [L]
RewriteRule ^uploads/.*$ - [L]
RewriteRule ^fileadmin/.*$ - [L]
RewriteRule ^typo3conf/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
#RewriteRule (.*[^/])$ http://%{HTTP_HOST}/$1/ [L,R]
RewriteCond %{REQUEST_FILENAME}/index.pdf -f
RewriteRule ^[^/]*\.pdf$ index.php
RewriteCond %{REQUEST_FILENAME}/index.html -f
RewriteRule / %{REQUEST_URI}/index.html [L]
RewriteCond %{REQUEST_FILENAME}/index.htm -f
RewriteRule / %{REQUEST_URI}/index.htm [L]
RewriteCond %{REQUEST_FILENAME}/index.php -f
RewriteRule / %{REQUEST_URI}/index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule /.* /index.php
In der Datei 'class.tx_pdfgenerator2.php' von der Erweiterung
pdf_generator2 habe ich die Funktion
'tslib_fe_checkAlternativeIdMethods' wegen eines Bugs geändert (Wenn man
in der 2. Zeile $debug aktiviert werden URL-Parameter in die Datei
'typo3temp/html2ps_UrlParameters.html' geschrieben, setzt man
$useOriginalCode auf TRUE wird der Original-Code verwendet):
function tslib_fe_checkAlternativeIdMethods($params, $ref) {
// $debug = TRUE;
$useOriginalCode = FALSE;
$pObj = &$params['pObj'];
if (t3lib_div::int_from_ver($GLOBALS['TYPO_VERSION'])>= 3007000) {
$siteScript = t3lib_div::getIndpEnv('TYPO3_SITE_SCRIPT');
} else {
$siteScript = $GLOBALS['HTTP_SERVER_VARS']['REQUEST_URI'];
}
if ($siteScript && substr($siteScript,0,9)!='index.php') { // If there
has been a redirect (basically; we arrived here otherwise than via
"index.php" in the URL) this can happend either due to a CGI-script or
because of reWrite rule. Earlier we used $_SERVER['REDIRECT_URL'] to
check but
$uParts = parse_url($siteScript); // Parse the path:
$requestFilename = trim(ereg_replace('.*\/','',$uParts['path'])); //
This is the filename of the script/simulated pdf-file.
$parts = explode('.',ereg_replace('.*\/','',$requestFilename));
$pCount = count($parts);
$debugArray = array(
'$siteScript' => $siteScript,
'parse_url($siteScript)' => parse_url($siteScript),
'$requestFilename' => $requestFilename,
'$parts of $requestFilename' => var_export($parts,true),
'count($parts)' => count($parts),
'$pObj->type (not modificated)' => $pObj->type,
'$pObj->id (not modificated)' => $pObj->id,
);
if ($parts[$pCount-1]=='pdf') {
if ($pCount>2) {
$NewType = intval($parts[$pCount-2]);
$NewId = $parts[$pCount-3];
} else {
$NewType = $GLOBALS['pdf_generator2_parameters']['typeNum'];
$NewId = $parts[0];
}
}
if ($useOriginalCode) {
$pObj->type = $NewType;
$pObj->id = $NewId;
}
$debugArray['$pObj->type (modificated)'] = $NewType;
$debugArray['$pObj->id (modificated)'] = $NewId;
if ($debug) {
$fd=fopen('typo3temp/html2ps_UrlParameters.html', 'wb');
fwrite($fd,t3lib_div::view_array($debugArray));
fclose($fd);
}
}
}
Ich hoffe Du bekommst die gewünschten Einstellungen mit diesen Angaben
realisiert.
Gruß,
David
More information about the TYPO3-german
mailing list