easyVDR

Normale Version: Fehlermeldungen aufgrund Bilder-Script ?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Auf unserer Homepage gibt es rechts oben ein Zufallsbild.

Erzeugt wird es so:
Code:
//
//  Picture Plugin for PortaMx
//
//  V.03 - added hyperlinks per directory
//
//  easyvdr.de team
//
/////////////////////////////////////////

// variable definition
///////////////////////
$size=160;
$sourceDirs=array(
  array("/opt/www/easy-vdr.de/httpdocs/piwigo/galleries/Usertreffen-2015-Ulm","http://www.easy-vdr.de/piwigo/index.php?/category/49"),
  array("/opt/www/easy-vdr.de/httpdocs/piwigo/galleries/Usertreffen-2015-Ulm","http://www.easy-vdr.de/piwigo/index.php?/category/49"),
  array("/opt/www/easy-vdr.de/httpdocs/piwigo/galleries/Usertreffen-2015-Ulm","http://www.easy-vdr.de/piwigo/index.php?/category/49"),
  array("/opt/www/easy-vdr.de/httpdocs/piwigo/galleries/easyVDR-20/", "http://www.easy-vdr.de/piwigo/index.php?/category/44")
);

// Search source directory(s) for albums (=subdirs)
////////////////////////////////////////////////////
foreach($sourceDirs as $sourceDirArr) {
  $sourceDir=$sourceDirArr[0];
  !preg_Match("/\/$/",$sourceDir) && $sourceDir=$sourceDir."/";
  $DIR = openDir($sourceDir);

  // Search subdirs - but exclude '.'dirs & tmp folders
  ///////////////////////////////////////////////////
  while($child=readdir ($DIR)) {
    $dirname=$sourceDir.$child;
    if(is_dir($dirname) && !preg_match("/^\./",$child) && $child != "tmp"){   
//DEBUG      echo "$dirname\n<br>";
      $dirs[] = array($dirname, $sourceDirArr[1]);
    } else if(is_file($dirname) && !preg_match("/^thumb/i",$child) && preg_Match("/(jpg|gif|jpeg)$/i",$child)) {
      // Search pics - but exclude thumbnails
      ///////////////////////////////////////////////////
      $pics[]=array($dirname, $sourceDirArr[1]);
//DEBUG      echo "$dirname.$child<br>\n";
    }
  }
}
closedir($DIR);

// Now that we have all directories with albums in $dirs (dirs[0]=dir, dir[1]=weblink) - lets lookup Pictures
///////////////////////////////////////////////////////////////
foreach($dirs as $dirArr) {
  $dir=$dirArr[0];
  !preg_Match("/\/$/",$dir) && $dir=$dir."/";
//DEBUG  echo $dir."\n<br>";
 
  $DIR = openDir("$dir");
  while (($child = readDir($DIR))) {

    // Search pics - but exclude thumbnails
    ///////////////////////////////////////////////////
    if (!preg_match("/^thumb/i",$child) && preg_Match("/(jpg|gif|jpeg)$/i",$child)) {
      $pics[]=array($dir.$child, $dirArr[1]);
//DEBUG      echo "$dir.$child<br>\n";
    }
  }
}

// $pics is a large array of the pictures (pics[0]=pic, pics[1]=weblink) we found - inkl. directory path
//////////////////////////////////////////////////////////////////////////
$random = rand(0,count($pics)-1);

$picIntLink=$pics[$random][0];
$webLink=$pics[$random][1];
$docRoot="/".str_replace('/','\/', $_SERVER[ 'DOCUMENT_ROOT'])."/";
$picExtLink=preg_replace($docRoot, '', $pics[$random][0]);

echo "<a href='$webLink'><img src='http://".$_SERVER['SERVER_NAME']."/gallery/thumb/thumb.php?image=$picExtLink&size=$size&type=RESIZE'></a><br>";


Nach Updates vom Portal (PortaMX) hagelt es diese Meldungen
Zitat:2: Invalid argument supplied for foreach()Filter hinzufügen: Nur Fehler von dieser Datei zeigen Datei: /opt/www/easy-vdr.de/httpdocs/forum/Themes/default/PortaMx/Frames.template.php (portamx_below sub template - eval?)
Zeile: 46

8: Undefined variable: dirsFilter hinzufügen: Nur Fehler von dieser Datei zeigen Datei: /opt/www/easy-vdr.de/httpdocs/forum/Themes/default/PortaMx/Frames.template.php (portamx_below sub template - eval?)
Zeile: 46

Weiss ein PHP kundiger wie man das wegbekommt ?
Hallo Martin..
Mir ist nur auf die schnelle aufgefallen, das die Variable $dir Zeile 51 in "" geschrieben wurde. Da müsste man gucken, ob openDir damit ein Problem hat.
Ansonsten recht verwirrend und zeitaufwendig diese Arrays Story auseinander zu klambüsern. Müsste man sich mal in Ruhe angucken.

Edit:
Was mir auch nicht sonderlich zusagt, mal schreibt der Scripter readdir mal readDir, ähnlich ist es auch mit openDir, was nicht sonderlich konsequent ist und ich kenn es nur komplett klein geschrieben opendir, closedir, readdir.. liegt halt im Auge des Betrachters.

Gruß Aaron
Hi,
frag doch mal in deinem Fred dazu:
http://portamx.com/2180/block-for-random...llery-cpg/

MfG,
Stefan