Ergebnis 1 bis 7 von 7

Thema: PDF Link im Template Auflistung

  1. #1
    Contao-Nutzer
    Registriert seit
    02.03.2017.
    Beiträge
    50

    Standard PDF Link im Template Auflistung

    Hallo zusammen,

    ich bin am verzweifeln und brauche eure Hilfe. Ich habe ein kleines Modul gestrickt in dem u.a. via filetree eine Datei ausgewählt und in der db abgespeichert wird. Die Frontendausgabe erfolgt via Auflistung und soll nun den Pfad der Datei mit ausgeben. In meinem Falle handelt es sich nicht um Bilder sondern um PDF-Dokumente.

    Mit viel Sucherei, Kopiererei und Trail & Error-Verfahren habe ich nun das hier im list_template drin ...
    PHP-Code:
    <?php 
        
          
    if($row['singleSRC']['content']){
                            
    $objFile = \FilesModel::findByUuid($row['singleSRC']['content']);

                            if (
    $objFile){
                                
    $objFile = new \File($objFile->path);
                                if (
    $objFile){
                                    
    $linkTitle = \StringUtil::specialchars($objFile->basename);
                                    
    $strHref = \Environment::get('request');
                                    if (
    preg_match('/(&(amp;)?|\?)file=/'$strHref)){
                                        
    $strHref preg_replace('/(&(amp;)?|\?)file=[^&]+/'''$strHref);
                                    }
                                    
    $strHref .= (strpos($strHref'?') !== false '&amp;' '?') . 'file=' . \System::urlEncode($objFile->value);
                                }
                                
    $link sprintf("<a href='%s' target='_blank' title='%s'>%s</a>"$strHref$linkTitle"PDF herunterladen");
                            }
          echo 
    $link;
          }
        
    ?>
    Der Link wird nun endlich generiert und taucht im Frontend auf - es öffnet sich aber eben nicht die Download/Speicher-Box. Wenn ich den generierten Dateipfad aber mit dem vergleiche den ein Download-Modul generiert müsste das doch passen ...

    Kann jemand helfen? Aso: Contao ist 4.9.8

  2. #2
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.140

    Standard

    Sorry auf dem Handy wird der Code nicht so toll angezeigt

    Aber schau mal hier https://github.com/contao/core-bundl...wnload.php#L68
    Liebe Grüße
    WebRoxx


  3. #3
    Contao-Nutzer
    Registriert seit
    02.03.2017.
    Beiträge
    50

    Standard

    ui ... fürchte soweit ist mein Know-how noch nicht. Wo müsste ich damit hin?
    Danke für Hilfe.

  4. #4
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.140

    Standard

    Zitat Zitat von MadMaxiii Beitrag anzeigen
    ui ... fürchte soweit ist mein Know-how noch nicht. Wo müsste ich damit hin?
    Danke für Hilfe.
    Poste doch mal den ganzen Code. Ansonsten genau so wie bei den Download-Element.

    Der Link darf nicht zum PDF sein sondern die aktuelle Seite zum Beispiel: download.html?file=dateiname.pdf
    Liebe Grüße
    WebRoxx


  5. #5
    Contao-Nutzer
    Registriert seit
    02.03.2017.
    Beiträge
    50

    Standard

    Hallo WebRoxx,
    1.000 Dank für deine Zeit. Mein Gebastelt ist aktuell noch das - steht in meinem Auflistungs-Template:

    PHP-Code:
    <?php foreach ($this->tbody as $class => $row): ?> 
      
    <?php 
        
        
    if($row['singleSRC']['content']){
                            
    $objFile = \FilesModel::findByUuid($row['singleSRC']['content']);

                            if (
    $objFile){
                                
    $objFile = new \File($objFile->path);
                              
                                
                                if (
    $objFile){
                                    
    $linkTitle = \StringUtil::specialchars($objFile->basename);
                                    
    $strHref = \Environment::get('request');
                                    if (
    preg_match('/(&(amp;)?|\?)file=/'$strHref)){
                                        
    $strHref preg_replace('/(&(amp;)?|\?)file=[^&]+/'''$strHref);
                                    }
                                    
    $strHref .= (strpos($strHref'?') !== false '&amp;' '?') . 'file=' . \System::urlEncode($objFile->value);
                                }
                                
                                
    $link sprintf("<a href='%s' target='_blank' title='%s'>%s</a>"$strHref$linkTitle"PDF herunterladen");
                              
                            }
            echo 
    $link;
        
          }
    ?>
     
    <?php endforeach; ?>
    Nur wo ich die SendFileToBrowser hinpacken soll erschließt sich mir nicht.

  6. #6
    Alter Contao-Hase
    Registriert seit
    18.07.2012.
    Ort
    Löbau
    Beiträge
    1.140

    Standard

    Probier mal oben über das foreach folgendes einzufügen


    PHP-Code:

    $file 
    = \Input::get('file'true);

    if(
    $file) {
        \
    Controller::sendFileToBrowser($file);

    Ist aber nur zum testen, du solltest noch genauer prüfen wie eben im Downloadelement ob die Datei existiert.
    Liebe Grüße
    WebRoxx


  7. #7
    Contao-Nutzer
    Registriert seit
    02.03.2017.
    Beiträge
    50

    Standard

    SUPER - das wars. Hab vielen lieben Dank und ja, ich schau dass ich noch die Abfrage reinsetze. Erstmal muss ich noch schauen wie ich das ganze gruppieren kann.
    Grüße nach Löbau.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •