• Herzlich willkommen im "neuen" DSLR-Forum!

    Wir hoffen, dass Euch das neue Design und die neuen Features gefallen und Ihr Euch schnell zurechtfindet.
    Wir werden wohl alle etwas Zeit brauchen, um uns in die neue Umgebung einzuleben. Auch für uns ist das alles neu.

    Euer DSLR-Forum-Team

  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • DSLR-Forum Fotowettbewerb neu erfunden!
    Nach wochenlanger intensiver Arbeit an der Erneuerung des Formates unseres internen Fotowettbewerbes ist es Frosty als Moderator
    und au lait als Programmierer gelungen, unseren Wettbewerb auf ein völlig neues Level zu heben!
    Lest hier alle Infos zum DSLR-Forum Fotowettbewerb 2.0
    Einen voll funktionsfähigen Demowettbewerb kannst du dir hier ansehen.
  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2024
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien der Eigenmarken "Upscreen", "Brotec", "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs April 2024.
    Thema: "Sprichwörtlich"

    Nur noch bis zum 30.04.2024 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
WERBUNG

Copy & Show - Gallery (die wahrscheinlich einfachste Galerie der Welt)

Die Genehmigung Änderungen vorzunehmen hat der Verfasser des Skripts doch bereits im ersten Beitrag erteilt.

Wer die Galerie auf seine Bedürfnisse anpassen will:
Einfach im Texteditor eurer Wahl öffnen. Die Parameter und CSS-Formatierungen sind dokumentiert und ganz oben zusammengefasst

Lizenz:
Die Copy & Show Gallery darf zum privaten Gebrauch frei verwendet und modifiziert werden.
 
Solange dies kostenlos und im Bereich des Forums passiert sehe ich kein Problem Vorschläge zur Änderung des Skripts an die Mitglieder weiterzugeben.
Um solche Verbesserungen hat er ja ausdrücklich gebeten.

Zitat:

"Ich würde mich über Feedback und Verbesserungsvorschläge freuen - nach oben hin ist immer Luft."

Sollte der Verfasser seine Lizenz dazu eines Tages zurückziehen wollen, müsste er es uns hier im Forum mitteilen.

Das Skript außerhalb des Forums über Github zu verbreiten geht sicherlich nicht ohne seine explizite Zustimmung.
 
Zuletzt bearbeitet:
Selbst wenn das ok wäre (kann ja sein), macht es die ganze Sache viel umständlicher.
Knapp 4.000 Zeilen Code auf PHP7 zu migrieren und das nur über "Änderungsvorschläge" in einem Forenthread? Nein, danke ...
 
Ich denke den Mitgliedern, die es nutzen wollen, würde das ausreichen.;)

Wer das machen will und wie aufwändig das ist kann ich nicht abschätzen.
Da liegt sicher das Hauptproblem.
 
Ich habe mich einmal etwas durchgegraben und komme zu folgenden Ergebnissen:

1. Der TO gehört einmal kräftig geohrfeigt für diesen Code
2. Mit folgenden Änderungen müsste es unter PHP7 erstmal wieder laufen

PHP:
function findexts($filename)
    {
    $filename=strtolower($filename);
    $exts    =split("[/\\.]", $filename);
    $n       =count($exts) - 1;
    $exts    =$exts[$n];
    return $exts;
    }
ersetzen durch:
PHP:
function findexts($filename)
    {
    $filename=strtolower($filename);
    return pathinfo($filename, PATHINFO_EXTENSION);
    }

und
PHP:
function dirList()
{
    global $max_sidelength_galleries;
    global $ignore_folders;
    global $startpage;
    global $sort_subgaleries;
    
    $path = (getcwd()."/".rawurldecode($_GET["gallery"]));
    
    $dir = php4scandir($path);
    
    for($i = 0; $i <= count($dir); $i++)    
    {
        if ($dir[$i]!="." && $dir[$i]!=".."){ //.. und . nicht von is_dir prüfen lassen. (könnte als Sicherheitsproblem angesehen werden)          
            if((is_dir($path ."/".$dir[$i])) && ($dir[$i]!="thumbnails") && !in_array($dir[$i],$ignore_folders)  )
                $dirs_only[] = $dir[$i];
        }        
    }
    
    if (count($dirs_only) >1 || isset($_GET["gallery"]))
    {
        $gallery = str_replace(array("..", "\\"),"", rawurldecode($_GET["gallery"]));

        $pageURL="http://" . dirname($_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]);
        $src = getThumbnailSource("","_title.jpg",$max_sidelength_galleries);
        if($src != null)
            $img = "<img class='thumbnail_Galerien' src='$src'>";  
        else $img ="";

        $breadcrumb = "<span class='breadcrumb'>";
        if(isset($_GET["gallery"]))
        {
            $breadcrumb .= "<a class ='breadcrumb' href = '?'>$startpage</a>";
        }
        else
        {
            $breadcrumb .= "<span class ='breadcrumb_aktiv'>$startpage</span>";
        }
         
        $parray =explode("/",$gallery);
        
        $gpath ="";
        for($level = 0; $level < count($parray)-1; $level++)
        {
            if ($gpath <>"") $gpath .= "/";
            $gpath.=$parray[$level];  
            $breadcrumb .= " \n» <a class ='breadcrumb' href = '?gallery=".c_urlencode($gpath)."'>" . htmlentities($parray[$level])  . "</a> ";
        }
        
        
        $upper_dir = $parray[count($parray)-2];
        
        if (isset($_GET["gallery"])) $breadcrumb .= " » " . "<span class ='breadcrumb_aktiv'>".$parray[count($parray)-1]."</span>"; 
        
        if (count($dirs_only)>1) $out .= "<div style='float: left; vertical-align: bottom;padding-right: 10px;'></div>" ;

    if($sort_subgaleries == 1) 
    {
        usort($dirs_only,"cmp");
    }
    else if($sort_subgaleries == -1)
    {
        usort($dirs_only,"cmp");
        $dirs_only=array_reverse($dirs_only);  
    }        

        for($i = 0; $i < count($dirs_only); $i++)    
        {
            if(isset($_GET["gallery"]) && $dirs_only[$i] !="" )
                 $gpath=$gallery . "/" .$dirs_only[$i];
            else
                 $gpath = $dirs_only[$i];
                 
            $src = getThumbnailSource($gpath,"_title.jpg",$max_sidelength_galleries);
            if($src != null)
                $img = "<img class='thumbnail_Galerien' src='$src'>";  
            else $img ="";
              
            $out .="\n<div style='float: left; vertical-align: bottom;padding-right: 10px;'>";
            if ($gallery == $dirs_only[$i])
                $out .= $img . "<br><span class='subgallery_aktuelle_Galerie'>".htmlentities($dirs_only[$i])."</span>"; 
            else
            {
                if(file_exists($gpath."/"."redirect.txt"))
                {
                    $redirectUrl=file_get_contents($gpath."/"."redirect.txt");
                    $out .= "<a href = '".$redirectUrl."'>".$img."</a><br><a class ='subgallery_link' href = '".$redirectUrl."'>".$dirs_only[$i]."</a>";
                }
                else
                {
                    $out .= "<a href = '?gallery=".($gpath)."'>".$img."</a><br><a class ='subgallery_link' href = '?gallery=".($gpath)."'>".$dirs_only[$i]."</a>"; 
                }
            }
            $out .= "</div>";
        }
    $breadcrumb .="</span><br><hr noshade>";
     
    
    $out ="<table style='margin: auto;'><tr><td>" . $out . "</td></tr></table>";
    if (count($dirs_only)>1) $out .= "<hr noshade>"; 
    
    
             
    return $breadcrumb. $out; 
    }
    else return null;
    
    
}
ersetzen durch
PHP:
function dirList()
{
    global $max_sidelength_galleries;
    global $ignore_folders;
    global $startpage;
    global $sort_subgaleries;
    
    $path = (getcwd()."/".rawurldecode($_GET["gallery"]));
    
    $dir = php4scandir($path);
    
    for($i = 0; $i < count($dir); $i++)    
    {
        if ($dir[$i]!="." && $dir[$i]!=".."){ //.. und . nicht von is_dir prüfen lassen. (könnte als Sicherheitsproblem angesehen werden)          
            if((is_dir($path ."/".$dir[$i])) && ($dir[$i]!="thumbnails") && !in_array($dir[$i],$ignore_folders)  )
                $dirs_only[] = $dir[$i];
        }        
    }
    
    if (count($dirs_only) >=1 || isset($_GET["gallery"]))
    {
        $gallery = str_replace(array("..", "\\"),"", rawurldecode($_GET["gallery"]));

        $pageURL="http://" . dirname($_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]);
        $src = getThumbnailSource("","_title.jpg",$max_sidelength_galleries);
        if($src != null)
            $img = "<img class='thumbnail_Galerien' src='$src'>";  
        else $img ="";

        $breadcrumb = "<span class='breadcrumb'>";
        if(isset($_GET["gallery"]))
        {
            $breadcrumb .= "<a class ='breadcrumb' href = '?'>$startpage</a>";
        }
        else
        {
            $breadcrumb .= "<span class ='breadcrumb_aktiv'>$startpage</span>";
        }
         
        $parray =explode("/",$gallery);
        
        $gpath ="";
        for($level = 0; $level < count($parray)-1; $level++)
        {
            if ($gpath <>"") $gpath .= "/";
            $gpath.=$parray[$level];  
            $breadcrumb .= " \n» <a class ='breadcrumb' href = '?gallery=".c_urlencode($gpath)."'>" . htmlentities($parray[$level])  . "</a> ";
        }
        
        
        $upper_dir = $parray[count($parray)-1];
        
        if (isset($_GET["gallery"])) $breadcrumb .= " » " . "<span class ='breadcrumb_aktiv'>".$parray[count($parray)-1]."</span>"; 
        
        if (count($dirs_only)>1) $out .= "<div style='float: left; vertical-align: bottom;padding-right: 10px;'></div>" ;

    if($sort_subgaleries == 1) 
    {
        usort($dirs_only,"cmp");
    }
    else if($sort_subgaleries == -1)
    {
        usort($dirs_only,"cmp");
        $dirs_only=array_reverse($dirs_only);  
    }        

        for($i = 0; $i < count($dirs_only); $i++)    
        {
            if(isset($_GET["gallery"]) && $dirs_only[$i] !="" )
                 $gpath=$gallery . "/" .$dirs_only[$i];
            else
                 $gpath = $dirs_only[$i];
                 
            $src = getThumbnailSource($gpath,"_title.jpg",$max_sidelength_galleries);
            if($src != null)
                $img = "<img class='thumbnail_Galerien' src='$src'>";  
            else $img ="";
              
            $out .="\n<div style='float: left; vertical-align: bottom;padding-right: 10px;'>";
            if ($gallery == $dirs_only[$i])
                $out .= $img . "<br><span class='subgallery_aktuelle_Galerie'>".htmlentities($dirs_only[$i])."</span>"; 
            else
            {
                if(file_exists($gpath."/"."redirect.txt"))
                {
                    $redirectUrl=file_get_contents($gpath."/"."redirect.txt");
                    $out .= "<a href = '".$redirectUrl."'>".$img."</a><br><a class ='subgallery_link' href = '".$redirectUrl."'>".$dirs_only[$i]."</a>";
                }
                else
                {
                    $out .= "<a href = '?gallery=".($gpath)."'>".$img."</a><br><a class ='subgallery_link' href = '?gallery=".($gpath)."'>".$dirs_only[$i]."</a>"; 
                }
            }
            $out .= "</div>";
        }
    $breadcrumb .="</span><br><hr noshade>";
     
    
    $out ="<table style='margin: auto;'><tr><td>" . $out . "</td></tr></table>";
    if (count($dirs_only)>1) $out .= "<hr noshade>"; 
    
             
    return $breadcrumb. $out; 
    }
    else return null;
    
    
}

und (etwa bei Zeile 1300)
PHP:
        $data=split(";", constant($_GET["icon"]));
        $type=$data[0];
        $data=split(",", $data[1]);
ersetzen durch
PHP:
        $data=explode(";", constant($_GET["icon"]));
        $type=$data[0];
        $data=explode(",", $data[1]);
 
Es ist wahrscheinlich, dass weitere Fehler im Script stecken, die mir auf Anhieb nicht aufgefallen sind, weil ich das ganze nur kurz getestet habe.
 
Super !
funktioniert erstmal !

Ein kleiner Fehler ist mir aufgefallen. Gehe ich in eine Unter-Galerie, kommt oben wo normalerweise der Name dieser Galerie steht:

Warning: usort() expects parameter 1 to be array, null given in /www/htdocs/w00d9aff/php7.bilder-koschny.de/index.php on line 1058

vielleicht willst Du es nochmal live sehen...

Galerie PHP5
so soll es aussehen

Galerie PHP7
mit Deinen Änderungen. Du mußt eine der 3 Galerien anschauen, dann kommt oben die Warnung !

Selbst Google-Maps für die Geocodierung funktioniert. Toll

Und nebenbei noch einen anderen Fehler beseitigt, daß wenn Bildnamen ein Leerzeichen enthalten, dieser nicht angezeigt wurde !
Vergleiche mittleres Adlerbild auf der Grundseite. Da fehlt bei der PHP5 Version der Dateiname.


Aber SUUUPER ! DAAANKE !

Thomas
 
Du mußt eine der 3 Galerien anschauen, dann kommt oben die Warnung !

Dass die Galerie überhaupt funktioniert, liegt nicht zuletzt daran, dass PHP seeehr viel verzeiht.
Ich würde an deiner Stelle die Warnungen in PHP ausschalten, solange alles funktioniert, wie es soll, indem du folgendes in Zeile 2 packst:
PHP:
error_reporting(0);
 
Dass die Galerie überhaupt funktioniert, liegt nicht zuletzt daran, dass PHP seeehr viel verzeiht.
Ich würde an deiner Stelle die Warnungen in PHP ausschalten, solange alles funktioniert, wie es soll, indem du folgendes in Zeile 2 packst:
PHP:
error_reporting(0);

VIELEN DANK für die Mühen, die Du Dir wegen uns gemacht hast!
Ich denke auch im Namen der anderen hier...
Reporting ist ausgeschaltet und es funktioniert gut. Habe oben einen Vermerk rein gemacht, daß es unter PHP 7.2 funktioniert.
Wenn Du es möchtest kann man auch den Vermerk unten links auf der Seite:
" Powered by ..." um Dich ergänzen, denn sonst würde sie ja nicht funktionieren. Das liegt aber an Dir.

DANKE nochmal !

Ich werde mal einen Mod anschreiben ob die es hier zugänglich machen können. Ansonsten melde ich mich gleich nochmal für einen Download-Link auf meinem Webspace. Aber da ich auch nicht mehr der Jüngste bin und das Internet nicht überleben werde, wäre ein zentraler Platz nicht dumm.

Thomas
 
So hier der Link für den Download:

Copy&Show angepaßt an PHP 7 (getestet bis 7.2)
der Link ist derzeit deaktiviert, bis klar ist, ob man es öffentlich anbieten darf.


Gruß
Thomas

PS: Das ist natürlich die Urversion. Wer die Galerie schon am Laufen hatte und sie seinen Bedürfnissen angepaßt hatte, muß diese Anpassungen hier wieder neu machen.
 
Zuletzt bearbeitet:
Hallo,
auch von mir vielen herzlichen Dank an @ArtooDetoo für die Mühe des anpassens und @Kosch für das testen.
Da fällt mir doch ein Stein vom Herzen. Ich dachte schon, ich muss meine Webseite komplett mit was neuem machen...

Obwohl @ArtooDetoo im Post #1866 ziemlich harte Worte schreibt, danke ich auch dem TO für die Veröffentlichung. Für mich, der ich von Programierung und Englisch keine Ahnung habe, ist dieses Script ne echt tolle und einfache Sache, um Bilder auf der Webseite zu zeigen.
Danke und viele Grüße von Kay
 
Ich habe ihn über einige Versionen versucht zu kontaktieren, aber ergebnislos.

Ich denke zu wissen, wo er arbeitet, und wenn ich ran komme, werde ich ihn nochmal fragen!

Thomas
 
So ich denke ihn erreicht zu haben. Ich weiß wo er arbeitet und habe ein paar Mails geschrieben, die Adressvergabe ist in großen Firmen ja oft sehr ähnlich.
Eine der Mails ist nicht als unzustellbar zurück gekommen. Wenn er antwortet, wissen wir mehr.

Bis dahin habe ich den Link abgeschaltet. Kommt es zu einer positiven Rückmeldung, werde ich ihn wieder aktivieren.

Bis dahin einfach nur ein PM an mich, dann schicke ich das Script persönlich zu.

Thomas
 
User "tagti" hat die modifizierte Version für PHP7.2 um die Slideshow ergänzt.
DANKE dafür !

Es gibt also jetzt beide Versionen für PHP7.2
Einmal einfach, einmal mit integrierter Slideshow.
Die aber beide noch für die persönliche Webseite wieder angepaßt werden müssen.

Beide gibt es bei mir auf Anfrage per PM ... bis die Sache mit dem öffentlichen Ablegen geklärt ist.

Thomas
 
gerne :)
Ich hatte zum Glück noch eine alte Anleitung von vor Jahren, indem das mal jemand beschrieb, wie das zu machen ist und konnte es auf die für php7 angepasste Version anwenden.

Nun habe ich aber eine Frage, bei der ihr (die ihr sicherlich mehr von Code versteht, als ich) helfen könnt.
Ich habe einige Buttons angepasst und u.a. den Download Button verändert, da ich anstatt des Downloads das Vollbild angezeigt haben möchte.
Also anstatt
Code:
                   if ($download)                            
                        $caption = $caption . "<a  id ='dlButton' href='$currentName?download=" . $gallery_dir_enc . rawurlencode($dir[$i])."' title='Download...'></a>";
habe ich es geändert in:
Code:
                   if ($download)                            
                        $caption = $caption . "<a  id ='dlButton' href='" . $gallery_dir_enc . rawurlencode($dir[$i])."'
						title='Vollbild anzeigen'></a>";

Funktioniert auch prima. Nur hätte ich gerne, dass dieses Vollbild immer in einem neuen Tab geöffnet wird. jaja, ich weiß, Mittelklick ginge auch, aber ich wollts im Code drin haben. Hab schon mit target="_blank" rumgespielt, aber war alles falsch was ich machte.
Hat dafür jemand eine Lösung?
 
Zuletzt bearbeitet:
Öffnet Bild im neuem Fenster: (y)(y)(y)
if ($download)
$caption = $caption . "<a id ='dlButton' target ='_blank' href='" . $gallery_dir_enc . rawurlencode($dir[$i])."'
title='Vollbild anzeigen'></a>";
 
@Nordbahnkurti: Vielen Dank, funktioniert astrein (y):) (da hab ich mit dem target ='_blank' wohl immer an falscher Stelle rumgespielt:D)
 
WERBUNG
Zurück
Oben Unten