Dateiliste mit Link anzeigen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Dateiliste mit Link anzeigen

Beitrag 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
Benutzeravatar
Crizzo
Administrator
Administrator
Beiträge: 11982
Registriert: 19.05.2005 21:45
Kontaktdaten:

Re: Dateiliste mit Link anzeigen

Beitrag von Crizzo »

Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Dateiliste mit Link anzeigen

Beitrag 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.
Benutzeravatar
Unimatrix_0
Mitglied
Beiträge: 392
Registriert: 03.11.2007 10:50
Kontaktdaten:

Re: Dateiliste mit Link anzeigen

Beitrag 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>
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Dateiliste mit Link anzeigen

Beitrag 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 ???
Benutzeravatar
Unimatrix_0
Mitglied
Beiträge: 392
Registriert: 03.11.2007 10:50
Kontaktdaten:

Re: Dateiliste mit Link anzeigen

Beitrag 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-->
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Dateiliste mit Link anzeigen

Beitrag von Walter91 »

@ Unimatrix_0

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

Zurück zu „[3.0.x] Mod Bastelstube“