Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Bilder aus Verzeichnis lesen und
#1
Hallo zusammen,

ich versuche mich derzeit mal ein wenig mit PHP. Toungue
Nun habe ich aber Probleme und hoffe hier auf Unterstützung.

Ich möchte aus einem Verzeichnis Bilder auslesen und auf einer separaten Forumseite ausgeben (immer 2 nebeneinander). Folgenden Code habe ich mir mit Hilfe des www zusammen gestöpselt und erhalten auch ein zufriedenstellendes Ergebnis, wenn ich nur mit "echo" arbeite:

PHP-Code:
<?php
define
("KILL_GLOBALS"1);
define("IN_MYBB"1);
 
require(
"global.php");

if(
$mybb->usergroup['gid'] != 1)
{
    
add_breadcrumb("Archiv");
        
    
$archiv_dir 'archive';
        
    
$i 0;
    
$bilder = array();
    
$verzeichnis opendir($archiv_dir);
    while (
$bild readdir($verzeichnis))
    {
      if (
$bild !="." && $bild !="..")
      {
      
$bilder[] = "<img width=\"400\" height=\"615\"src=\"$archiv_dir/$bild\" alt=\"\">";
      }
    }
    
closedir($verzeichnis);
    
$max count($bilder);
    while (
$i<=$max)
    {
        eval(
"\$bilder[$i] .= \"".$templates->get("bilder_archive_archive")."\";");
        
//echo $bilder[$i];
        
$i $i+1;
    eval(
"\$bilderresults .= \"".$templates->get("bilder_archive")."\";");  //???
    
output_page($bilderresults); //???
    
}
}
else
{
   
error_no_permission();
}
?>

Nun wollte ich aber den Code so abändern, dass ich ähnlich den Suche-Templates ein Template erzeuge, dem ich das jeweilige Bild in ein <td>-Tag setze, das wiederum dann in eine html-Seite eingebunden wird.

Und das bekomme ich einfach nicht hin. Die o.a. eval-Zeilen habe ich schon mehrmals umgestellt. Entweder wird gar kein Bild angezeigt, oder immer nur eines. Ich denke, ich habe da ein prinzipielles Verständnisproblem, wie die Übergabe der Variablen an die Templates funktioniert. ....naja, neben meinen PHP-Schwächen...Wink

Würde mich sehr freuen, wenn mir jemand unter die Arme greifen könnte. Smile
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#2
Kannst du noch die Templates dazu posten?
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Hallo Dragon,

das wäre das Template bilder_archive:
Code:
<html>
<head>
<title>{$settings['bbname']}Archiv</title>
{$headerinclude}
</head>
<body>
{$header}

<table border="0" cellspacing="10" cellpadding="10">
{$tagpadresults}
</table>

{$footer}
</body>
</html>
und das hier, das Template bilder_archive_archive:
Code:
<tr width="100%">
<td>
{$bilder[$i]}
</td>
</tr>

Eigentlich hatte ich mir das so gedacht, dass immer 2 Bilder nebeneinander gesetzt werden und dann die nächste Reihe kommt.

Aber ich kapier das mit den Variablen nicht, die den Templates übergeben werden sollen. Sad

Mir geht es erst einmal "nur" darum, dass die überhaupt Bilder angezeigt werden. Um den Style der Seite würde ich mich erst später kümmern.

Dankeschön! Smile
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#4
Probiere diesen Code:
PHP-Code:
<?php
define
("KILL_GLOBALS"1);
define("IN_MYBB"1);
 
require(
"global.php");

if(
$mybb->usergroup['gid'] != 1)
{
    
add_breadcrumb("Archiv");
        
    
$archiv_dir 'archive';
        
    
$i 0;
    
$bilder = array();
    
$verzeichnis opendir($archiv_dir);
    while (
$bild readdir($verzeichnis))
    {
      if (
$bild !="." && $bild !="..")
      {
      
$bilder[] = "<img width=\"400\" height=\"615\"src=\"$archiv_dir/$bild\" alt=\"\">";
      }
    }
    
closedir($verzeichnis);
    
$max count($bilder);
    while (
$i<=$max)
    {
        eval(
"\$diebilder .= \"".$templates->get("bilder_archive_archive")."\";");
        
//echo $bilder[$i];
        
$i $i+1;
    }
    eval(
"\$bilderresults = \"".$templates->get("bilder_archive")."\";");
    
output_page($bilderresults);
}
else
{
   
error_no_permission();
}
?>
Template bilder_archive:
Code:
<html>
<head>
<title>{$settings['bbname']}Archiv</title>
{$headerinclude}
</head>
<body>
{$header}

<table border="0" cellspacing="10" cellpadding="10">
{$diebilder}
</table>

{$footer}
</body>
</html>
Template bilder_archive_archive:
Code:
<tr width="100%">
<td>
{$bilder[$i]}
</td>
</tr>
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
Klasse, vielen Dank, es funktioniert!! Big Grin

Ich dachte, {$bilder[i]} müsste auch in der php-Datei erzeugt werden. Hoffentlich finde ich da mal einen besseren Draht dazu. Wink

Damit immer 2 Bilder nebeneinander dargestellt werden, sich aber nicht wiederholen, habe ich noch folgende Änderungen durchgeführt:

PHP-Code:
...
  eval(
"\$diebilder .= \"".$templates->get("bilder_archive_archive")."\";");
  
$i $i+2;
... 
und das Template bilder_archive_archive wie folgt angepasst:
Code:
<tr width="100%">
<td style="padding-left:50px">
{$bilder[$i]}
</td>
<td style="padding-left:100px">
{$bilder[$i+1]}
</td>
</tr>

Vielen Dank noch einmal, Dragon!!!!!!!

viele Grüße,
Jockl
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Eigenes Adress Verzeichnis wWs 1 2.058 29.10.2008, 04:13
Letzter Beitrag: lexx
  [PHP] Änderungsdatum von Datei auf Server in anderem Verzeichnis bestimmen Sm00chY 0 1.512 29.05.2007, 18:26
Letzter Beitrag: Sm00chY