----- Ursprüngliche Nachricht -----
Von:        Nicole <shiz...@hotmail.com>
Gesendet:   Samstag, 7. August 2010 17:34:52
An:         typo3-german@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
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an