Seite 1 von 1

Dateiliste mit Link anzeigen

Verfasst: 05.09.2012 15:10
von Walter91
Ich möchte gern Dateien mit einem Link auf einer extra Seite anzeigen lassen.
Es geht darum Dateien z.B. Bilder, mit Handy per FTP in ein extra Verzeichnis zu laden und nur vorbestimmten Benutzergruppen zugänglich zu machen.
Gesichert habe ich das wie hier beschrieben: viewtopic.php?f=85&t=164060
Das funktioniert schon mal einwandfrei.

Code: Alles auswählen

// Verzeichnis mit den Dateien 
$verzeichnis = 'upload/';
  
// Tabellenkopfzeile festlegen 
$template->assign_vars(array(
    'DATEINAME'  => $dateiname,
    'GROESSE'    => $groesse,
    'DATUM'      => $datum,
));

// Daten aus Verzeichnis auslesen 

foreach (new DirectoryIterator( $verzeichnis ) as $datei)
{
    if (!$datei->isDir() && !$datei->isDot())
    {


// Daten anzeigen

        // Dateiname als Link anzeigen
        echo '<td><a href="' .$verzeichnis.$datei->getFilename(). '">' .$datei->getFilename(). '</a></td>';
        
        // Datreigröße anzeigen
        echo '<td>' .ceil( $datei->getSize()/1024 ). ' KB</td>';
        
        // Uploaddatum anzeigen
        echo '<td>' .date( 'd.m.Y', $datei->getMTime() ). '</td>';
      						  
    }
}  
Kann mir bitte mal jemand helfen wie ich den Bereich Daten anzeigen für phpBB umschreiben muss?

Danke

Re: Dateiliste mit Link anzeigen

Verfasst: 05.09.2012 15:51
von Crizzo

Re: Dateiliste mit Link anzeigen

Verfasst: 05.09.2012 16:07
von Walter91
Danke für schnelle Antwort @ BlackHawk87

Sprachdatei und Template hab ich schon erstellt.
Das richtige Verzeichnis wird auch eingelesen.
Der Teil Daten anzeigen im Code ist jetzt noch in "normalen PHP"
Deshalb werden die hochgeladenen Dateien jetzt noch außerhalb des richtigen Template dargestellt.
Ich bekomme das jetzt bloß nicht hin wie der folgende Teil Code in phpbb lauten muss.

Code: Alles auswählen

// Beginn anzeigen

        // Dateiname als Link anzeigen
        echo '<td><a href="' .$verzeichnis.$datei->getFilename(). '">' .$datei->getFilename(). '</a></td>';
        
        // Datreigröße anzeigen
        echo '<td>' .ceil( $datei->getSize()/1024 ). ' KB</td>';
        
        // Uploaddatum anzeigen
        echo '<td>' .date( 'd.m.Y', $datei->getMTime() ). '</td>';
      						  
    }
}
Der Rest funktioniert alles schon richtig.

Re: Dateiliste mit Link anzeigen

Verfasst: 05.09.2012 16:26
von Unimatrix_0
du musst jede deiner Ausgaben einer Templatevariable zuweisen, aus dem oben verlinkten Tut:

Code: Alles auswählen

// Ein typischer Gebrauch um Variablen an das Template zu senden.
$template->assign_vars(array(
    'EXAMPLE_VAR'    => $example_variable,
    'GOOGLE_LOGO'    => $google_logo,
    'MY_AVATAR'        => get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
));
diese Templatevariablen müssen dann an der Ausgabestelle im Template-File sitzen:

Code: Alles auswählen

<div>{MY_AVATAR}</div>
<div>{EXAMPLE_VAR}</div>
<div>{GOOGLE_LOGO}</div>

Re: Dateiliste mit Link anzeigen

Verfasst: 05.09.2012 17:23
von Walter91
Das Prinzip ist mir schon klar.
Wenn ich so schreibe:

Code: Alles auswählen

$template->assign_vars(array(
    'DATEINAME'       => $verzeichnis.$datei->getFilename(), 
    'DATEIGROESSE'    => ceil( $datei->getSize()/1024 ),
    'UPLOAD'          => date( 'd.m.Y', $datei->getMTime() ), 						  
));   
Kommt die Fehlermeldung:
Parse error: syntax error, unexpected $end in /opt/lampp/htdocs/forum/upload.php on line 69

Da stimmt sicher die Schreibweise der Klammern nicht ???

Re: Dateiliste mit Link anzeigen

Verfasst: 05.09.2012 17:57
von Unimatrix_0
Walter91 hat geschrieben:Parse error: syntax error, unexpected $end in /opt/lampp/htdocs/forum/upload.php on line 69
Da stimmt sicher die Schreibweise der Klammern nicht ???
Also mir fällt keine Fehler sofort ins Auge, daher wäre Kontext sinnvoll, sprich ein paar Zeilen davor/danach - im Idealfall die ganze Datei.

Desweiteren habe ich mir erst jetzt deinen Startpost genauer angesehen und muss daher meine vorherige Aussage etwas abändern.

Du willst Templatevars innerhalb einer Schleife definieren und musst dies deshalb wie folgt machen:

Code: Alles auswählen

foreach (new DirectoryIterator( $verzeichnis ) as $datei)
{
    if (!$datei->isDir() && !$datei->isDot())
    {
        $template->assign_block_vars('files', array(
                'DATEINAME'  => $dateiname,
                'GROESSE'    => $groesse,
                'DATUM'      => $datum,
    ));
    }
}
und im Template:

Code: Alles auswählen

<!-- BEGIN files-->
<td>{files.DATEINAME}</td>
<td>{files.GROESSE}</td>
<td>{files.DATUM}</td>
<!-- END files-->

Re: Dateiliste mit Link anzeigen

Verfasst: 05.09.2012 21:28
von Walter91
@ Unimatrix_0

Riesendank an dich. Dateien, Größe und Datum wird jetzt alles richtig angezeigt.