Forum

Thums aus Bildern erstellen und dann per jquery auslesen

Erstellt von Konzertjunkie, 14.10.2010.



  1. Konzertjunkie

    Konzertjunkie Noch nicht viel geschrieben

    Dabei seit:
    27.12.2008
    Beiträge:
    36
    Geschlecht:
    männlich
    Ort:
    Göttingen
    Software:
    Photoshop, Illustrator, InDesign, Dreamviwer, Page Spinner
    Thums aus Bildern erstellen und dann per jquery auslesen
    Hallo liebes PSD-Tutorials Forum!
    Ich habe mal ein paar Verständnis fragen bzw. ich brauche grade Hilfe zu Realisierung für ein paar Sachen. Habe ich selber alles schon gegooglet und trotzdem nichts gefunden, vielleicht mit falschen Suchbegriffen aber da bin ich offen ;).
    Ich habe eine Seite, wo Mensch ein Bild hoch laden kann und dieses wird dann in einem Ordner auf dem FTP Server geladen. So weit nichts besonders.
    Jetzt sollen von diesen Bildern Thumbnails erstellt werden, die auf einer Seite angezeigt werden sollen. Diese sollen dann per jquery Bildergalerie aufgerufen werden.
    Ich scheitere dadran das nur die Thumnails angezeigt werden und nicht per jquery Bildergalerie angesprochen werden.
    Für die Anzeige der Bilder nutze ich Pixlie,jquery Bildergalerie habe ich schon eingebunden, funktioniert aber leider nicht -.-. Findet ihr den Fehler?

    HTML Code von der bilder.php
    Code (Text):
    1.  
    2.  
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    4.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    5. <html xmlns="http://www.w3.org/1999/xhtml">
    6.  
    7. <head>
    8. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    9. <meta http-equiv="content-language" content="de" />
    10. <meta name="robots" content="index" />
    11. <meta http-equiv="Content-Style-Type" content="text/css" />
    12. <meta name="revisit-after" content="5days" />
    13. <meta name="DC.title" content="Familie Bechmann" />
    14. <meta name="DC.creator" content="Milan Design" />
    15. <meta name="DC.subject" content="Familie Bechmann, Familienhomepage, Familie, Familie Kassel" />
    16. <meta name="DC.description" content="Homepage der Familie Bechmann" />
    17. <meta name="DC.publisher" content="Milan Design" />
    18. <meta name="DC.contributor" content="itproductions-lessmann" />
    19. <meta name="DC.date" content="Erstelldatum im Format: 2010-03-05T08:49:37+02:00" scheme="DCTERMS.W3CDTF" />
    20. <meta name="DC.typ"="Service"/>
    21. <meta name="DC.rights"="familie-bechmann.de"/>
    22. <meta name="DC.language" content="de" scheme="DCTERMS.RFC3066" />
    23. <script type="text/javascript" src="js/jquery.js"> </script>
    24. <script type="text/javascript" src="js/jquery.lightbox-0.5.min.js"> </script>
    25. <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
    26. <link rel="stylesheet" type="text/css" href="formate.css" />
    27. <link rel="stylesheet" type="text/css" href="/jsjquery.lightbox-0.5.css">
    28. <title>Familie Bechmann</title>
    29.  
    30. <script type="text/javascript">
    31.  /* <![CDATA[ */
    32.   $(document).ready(function(){
    33.                      $('#inhalt a').lightBox({
    34.                           fixedNavigation:true
    35.                       });
    36.                  });
    37.   /* ]]> */
    38.  </script>
    39.  
    40. </head>
    41.  
    42. <body>
    43. <div id="web">
    44. <a href="kontakt.php" title="Kontakt">Kontakt</a> | <a href="impressum.php" title="Impressum">Impressum</a> | <a href="sitemap.php" title="Sitemap">Sitemap</a>
    45. <div id="oben">
    46. <div id="logo"><a href="index.php"> <img src="logos/header.png" width="900" height="120" alt="logo"/></a>
    47. </div><!-- logo //-->
    48.  
    49. <div id="hauptnavi">
    50.   <ul>
    51.     <li><a class="hauptnavi" href="#" title="Home">Home</a></li>
    52.     <li><a class="hauptnavi" href="stammbaum.php" title="Stammbaum">Stammbaum</a></li>
    53.     <li><a class="hauptnavi" href="anmeldung.php" title="Intern">Intern</a></li>
    54.   </ul>
    55. </div><!-- hauptnavi //-->
    56. </div><!-- oben //-->
    57.  
    58. <div id="post_it">
    59. <a href="bilder.php"><img src="logos/bilder.png" width="133" height="100" alt="Bilder"/></a>
    60. <a href="upload.php"><img src="logos/hochladen.png" width="133" height="100" alt="Hochladen"/></a>
    61. </div><!-- post_it //-->
    62. <div id="inhalt">
    63.  
    64. <h1>Bilder</h1><br />
    65.  
    66. <?php
    67.     $response_type = 'php';   //Ausgabe auf php umstellen
    68.     include('pixlie.php');       //Einbinden von Pixlie
    69.   ?>
    70.  
    71.   <?php
    72.   /*Baue Link zu Bildtyp "s" (small): Pfad zu Pixlie / Pfad zum Bild / _s + Dateiendung*/
    73.   foreach ($pixlie_table_file as $picture){ ?>
    74.     <img
    75.       src="<?php echo $pixlie_table_env['path_pixlie'].$picture['link_get']; ?>_s<?php echo $picture['extension']; ?>"
    76.       alt="<?php echo $picture['name']; ?>" />
    77.    <?php } ?>
    78.  
    79. </div><!-- inhalt //-->
    80. </div><!-- web //-->
    81.  
    82.  
    83. </body>
    84. </html>
    Css Datei von der Seite
    Code (Text):
    1. body { background-color: #888888; color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 12px;}
    2. hr { width:100%; color:#ebbf82; background-color:#000000; height:2px; }
    3. img { border: 0; }
    4.  
    5.  
    6. h1 { font-size: 20px; padding: 0; text-align: center; font-weight: bold; line-height: 20px; color: #000000;}
    7.  
    8. h2 { font-size: 12px; text-align: center; line-height: 18px; color: #000000;}
    9.  
    10.         .kursiv { font-size: 13px; padding: 3px 0 0 0; text-align: left; font-weight: normal;
    11.                   font-style: italic; line-height: 15pt; width: 380px; color: #000000;}
    12.  
    13.          .fett { font-size: 13px; padding: 3px 0 0 0; text-align: center; font-weight: bold;
    14.                   font-style: normal; line-height: 15pt; width: 380px; color: #000000;}
    15.  
    16. #web {
    17.   text-align: right;
    18.   margin: 0 auto;
    19.   margin-top: 0px;
    20.   width: 900px;
    21.   height: 10px;
    22.   padding: 0;
    23.   }
    24.   #web a:link { color: #0a0a0a; text-decoration: none; }
    25.   #web a:visited { color: #0a0a0a; text-decoration: none; }
    26.   #web a:hover { color: #5e5e5e; text-decoration: none; }
    27.   #web a:active { color: #4e4e4e; text-decoration: none; }
    28.  
    29. #oben {
    30.  margin: 0 auto;
    31.   width: 900px;
    32.   height: 141px;
    33.   color: #FFFFFF;
    34.   }
    35.  
    36.  
    37. #logo {
    38.  margin: 0 auto;
    39.   width: 900px;
    40.   height: 120px;
    41.   margin-top: 5px;
    42.   border-top: 2px solid #000000;
    43.   border-bottom: 2px solid #000000;
    44.   color: #000000;
    45.   background-color: #FFFFFF;
    46.   padding: 0;      
    47.    }
    48.  
    49. #post_it {
    50.   width: 200px;
    51.   height: 400px;
    52.   position: relative;
    53.   float: right;
    54.   margin: 0 auto;
    55.   right: 10px;
    56.   top: 200px;
    57.   color:#cc6633;
    58.   z-index: 4;
    59.  
    60. }
    61.  
    62.  
    63. #hauptnavi {
    64.   position: relative;
    65.   height: 17px;
    66.   width: 896px;  
    67.   margin: 0px 0px 10px 0px;
    68.   padding: 2px 2px 2px 2px;
    69.   background-color: #FFFFFF;
    70.   border-bottom: 2px solid #000000;
    71.   text-align: center;
    72.   white-space: nowrap;
    73.   }
    74.  
    75.   #hauptnavi ul { width: 900px; margin: auto; list-style-type: none; text-align: center; }
    76.   #hauptnavi li { width: 896p; padding: 2px 2px 2px 2px; margin-right: 7px; margin-left: 7px; text-align: center;  line-height: 21px; font-size: 13px; font-weight: bold; display: inline-block; }
    77.   .aktiv { color: #000000; background: #FFFFFF; text-decoration: none; display: block; }
    78.   .hauptnavi { color: #000000; background: #FFFFFF; text-decoration: none; display: block; }
    79.   .hauptnavi:link { color: #000000; background: #FFFFFF; }
    80.   .hauptnavi:hover { color: #5e5e5e; background: #FFFFFF; text-decoration: underline }
    81.   .hauptnavi:active    { color: #000000; background: #FFFFFF; text-decoration: underline }
    82.   .hauptnavi a:visited { color: #000000; background-color: #FFFFFF; text-decoration: underline }
    83.  
    84. #inhalt {
    85.   position: absolute;
    86.   height: 520px;
    87.   display: table-cell;
    88.   width: 880px;
    89.   top: 170px;
    90.   margin: 0 auto;  
    91.   padding: 30px 10px 10px 10px ;
    92.   font-size: 10pt;
    93.   text-align: left;
    94.   line-height: 15pt;
    95.   background-color: #FFFFFF;
    96.   z-index: 2;
    97.   }
    98.  
    99.   #inhalt ul { list-style-type: disc; text-align: left; font-size: 13px;}
    100.   #inhalt table { border-collapse: collapse;  }
    101.   #inhalt td { }
    102.   #inhalt li { text-align: left; font-size: 13px; }
    103.   #inhalt a:link { color: #0a0a0a; text-decoration: underline; }
    104.   #inhalt a:visited { color: #0a0a0a; text-decoration: none; }
    105.   #inhalt a:hover { color: #5e5e5e; text-decoration: underline; }
    106.   #inhalt a:active { color: #808080; text-decoration: none; }
    107.  
    108.  
    109. .bildlinks { float: left; padding: 1px; margin: 10px 10px 10px 0; padding: 2px; }
    110. .bildrechts { float: right; padding: 1px; margin: 10px 0 10px 10px; padding: 2px; }
    111.  
    Ich hoffe ihr könnt mir helfen!
    Danke schon mal!
     
    #1      
  2. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    kann man erstmal wenig zu sagen, für einen Überblick müsste man schon den erzeugten Code (ausgegebenen Code) sehen. -
    was allerdings auffällig ist, ist, dass sich dein selektor $(#inhalt a) auf 'a' Elemente bezieht. im php Teil kann man aber nur das Erzeugen von <img> elementen finden.
     
    #2      
  3. Konzertjunkie

    Konzertjunkie Noch nicht viel geschrieben

    Dabei seit:
    27.12.2008
    Beiträge:
    36
    Geschlecht:
    männlich
    Ort:
    Göttingen
    Software:
    Photoshop, Illustrator, InDesign, Dreamviwer, Page Spinner
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    Ja stimmt, jetzt sehe ich es auch. Also brauch ich ein Script, welches dann auf der Seite zu den Thumbnails die Links zu den Orginalbildern auch mit ausgibt. Also mache ich mich mal auf die Suche oder kann mir jemand ein Script empfehlen?
     
    #3      
  4. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    du musst dein script nur so anpassen, dass eben die linka zu den originalen auch mit ausgegeben werden.
     
    Zuletzt bearbeitet: 14.10.2010
    #4      
  5. Konzertjunkie

    Konzertjunkie Noch nicht viel geschrieben

    Dabei seit:
    27.12.2008
    Beiträge:
    36
    Geschlecht:
    männlich
    Ort:
    Göttingen
    Software:
    Photoshop, Illustrator, InDesign, Dreamviwer, Page Spinner
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    Das heißt hier irgendwo und irgendwie einfügen?
    Code (Text):
    1. <?php     $response_type = 'php';   //Ausgabe auf php umstellen     include('pixlie.php');       //Einbinden von Pixlie   ?>    <?php    /*Baue Link zu Bildtyp "s" (small): Pfad zu Pixlie / Pfad zum Bild / _s + Dateiendung*/   foreach ($pixlie_table_file as $picture){ ?>     <img       src="<?php echo $pixlie_table_env['path_pixlie'].$picture['link_get']; ?>_s<?php echo $picture['extension']; ?>"       alt="<?php echo $picture['name']; ?>" />    <?php } ?>
     
    #5      
  6. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    ein bisschen problematisch ist, dass die dokumentation für pixlie scheinbar nicht aufrufbar ist, aber für das pixlie beigelegte Beispiel kann das zB so aussehen:
    Code (Text):
    1.  
    2.   foreach ($pixlie_table_file as $picture){ ?>
    3.     <a href="upload<? echo $picture['link_pathinfo'].$picture['extension']; ?>"><img
    4.       src="<?php echo $pixlie_table_env['path_pixlie'].$picture['link_get']; ?>_s<?php echo $picture['extension']; ?>"
    5.       alt="<?php echo $picture['name']; ?>" /></a>
    6.    <?php } ?>
    7.  
     
    #6      
  7. Konzertjunkie

    Konzertjunkie Noch nicht viel geschrieben

    Dabei seit:
    27.12.2008
    Beiträge:
    36
    Geschlecht:
    männlich
    Ort:
    Göttingen
    Software:
    Photoshop, Illustrator, InDesign, Dreamviwer, Page Spinner
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    Hier die Dukumentation von pixlie ;)
    Code (Text):
    1. <?php
    2.     ob_start();
    3.     clearstatcache();
    4.     @ini_set("max_execution_time", 300);
    5.     /*
    6.         Pixlie ist Donationware und wird unter der MIT Lizenz zur Verfuegung gestellt.
    7.  
    8.         Donationware:
    9.  
    10.         Bei der Donationware (von engl. "donation": Spende) handelt es sich um kostenlose
    11.         Software, wobei der Autor um eine Spende in beliebiger Hoehe bittet, um die durch
    12.         Weiterentwicklung oder Verbreitung der Software entstehenden Kosten zu
    13.         kompensieren (zum Beispiel Server-Kosten).
    14.         Wenn das eingesetzte Programm die Erwartungen erfuellt, und man es regelmaessig
    15.         im Einsatz hat, solle man eine dementsprechende Verguetung in Erwaegung ziehen.
    16.  
    17.         MIT Lizenz (Deutsche Uebersetzung)
    18.  
    19.         Copyright (c) 2008 Steffen Hagdorn
    20.  
    21.         Hiermit wird unentgeltlich, jeder Person, die eine Kopie der Software
    22.         und der zugehoerigen Dokumentationen (die "Software") erhaelt, die Erlaubnis
    23.         erteilt, uneingeschraenkt zu benutzen, inklusive und ohne Ausnahme, dem Recht,
    24.         sie zu verwenden, kopieren, aendern, fusionieren, verlegen, verbreiten,
    25.         unterlizenzieren und/oder zu verkaufen, und Personen, die diese Software
    26.         erhalten, diese Rechte zu geben, unter den folgenden Bedingungen:
    27.  
    28.         Der obige Urheberrechtsvermerk und dieser Erlaubnisvermerk sind in alle
    29.         Kopien oder Teilkopien der Software beizulegen.
    30.  
    31.         DIE SOFTWARE WIRD OHNE JEDE AUSDRUeCKLICHE ODER IMPLIZIERTE GARANTIE
    32.         BEREITGESTELLT, EINSCHIESSLICH DER GARANTIE ZUR BENUTZUNG FUeR DEN
    33.         VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER
    34.         RECHTSVERLETZUNG, JEDOCH NICHT DARAUF BESCHRAeNKT. IN KEINEM
    35.         FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER FUeR JEGLICHEN SCHADEN
    36.         ODER SONSTIGE ANSPRUCH HAFTBAR ZU MACHEN, OB INFOLGE DER ERFUeLLUNG
    37.         VON EINEM VERTRAG, EINEM DELIKT ODER ANDERS IM ZUSAMMENHANG MIT
    38.         DER BENUTZUNG ODER SONSTIGE VERWENDUNG DER SOFTWARE ENTSTANDEN.
    39.  
    40.  
    41.         Inhalt / Aufbau:
    42.         ------------------------------------------------------
    43.             1. Konfiguration
    44.             - 1.1 Bildgroessen
    45.             - 1.2 Sortierung
    46.             - 1.3 Sonstige Einstellungen
    47.             - 1.4 Systemkonfiguration
    48.             2. Sprachausgaben
    49.             3. Fehlerbehandlung
    50.             4. Umgebungs- und Installationspruefung
    51.             5. Entgegennehmen der Query-Variable
    52.             6. Auf Hackerangriffe pruefen
    53.             7. Umwandlung in UTF-8
    54.             8. Verarbeitung eine Fotos
    55.             - 8.1 Angeforderte Bildgroesse der Query Variable pruefen
    56.             - 8.2 Cache Dateinamen und Dateipfade generieren
    57.             - 8.3 Pruefen ob Datei schon im Cache liegt
    58.                 - 8.3.1 Berechne Bilder nach dem Typ "cut"
    59.                 - 8.3.2 Berechne Bilder nach dem Typ "uncut"
    60.                 - 8.3.3 Berechne Bilder nach dem Typ "bestfit"
    61.             - 8.4 Ausgabe des Bildes
    62.             9. Verarbeitung eines Ordners
    63.             - 9.1 Weiche f¸r Ordner / Bild
    64.             - 9.2 JPG Grunddaten lesen
    65.             - 9.3 IPTC Metadaten lesen
    66.             - 9.4 EXIF Metadaten lesen
    67.             - 9.5 Ordner Grunddaten lesen
    68.             - 9.6 Sortierung der Datentabellen
    69.             - 9.7 Ausgabe via JSON
    70.  
    71.  
    72.      *************************************************************************************************
    73.      *************************************** 1. Konfiguration ****************************************
    74.      *************************************************************************************************
    75.  
    76.  
    77.      **************************************** 1.1 Bildgroessen *****************************************
    78.  
    79.          Vordefinierte Standardbildgroessen:
    80.             s    = small         | cut        | 75/75
    81.             t    = thumbnail | uncut    | max 100
    82.             m    = medium        | uncut    | max 240
    83.             d    = default     | uncut    | max 500 (default)
    84.             b    = big             | uncut    | max 1024
    85.             o    = original    | none     | original
    86.  
    87.          Unterschied "cut" und "uncut":
    88.              Wird der Bildberechnungstyp "cut" verwendet, wird das Bild auf eine feste Hoehe und Breite
    89.              aus dem Originalbild ohne verzerren ausgeschnitten. Hierfuer die Groesse in Form
    90.              von "hoehe/breite" angegeben. Beispiel: Einstellung 100/50 | Originalbild 400/800 = Ausgabe 100/50
    91.  
    92.              Beim Bildberechnungstyp "uncut" wird das Bild unter beibehaltung der Seitenlaengen auf die
    93.              gewuenschte Groesse angepasst. Es muss nur der Wert angegeben werden, wie lange eine Seitenlaenge
    94.              maximal sein darf. Beispiel: Einstellung 100 | Originalbild 400/800 = Ausgabe 50/100
    95.  
    96.          Benutzung 'overwrite_cache':
    97.              Zum Testen ist es sinnvoll 'overwrite_cache' auf 'on' zu stellen. Bei jedem Seitenaufruf wird der
    98.              Cache wieder mit neuen Daten ueberschrieben! Diese Option ist unter 1.3 (Sonstige Einstellungen)
    99.              zu finden.
    100.              HINWEIS: DASS DER CACHE GENUTZT WIRD, MUSS DIESE EINSTELLUNG IM LIVE-BETRIEB WIEDER AUF 'off' STEHEN!
    101.  
    102.          Frei definierbare Bildgroessen:
    103.              Nachfolgend koennen beliebig viele eigene Bildgroessen definiert werden. Die Bildabkuerzung s,t,m,d,b und o
    104.              sind schon vorbelegt! Das Kuerzel des Bildtyps darf nur ein Zeichen sein!
    105.  
    106.          LEERE DEN CACHE-ORDER NACH DEM AeNDERN DIESER WERTE ODER VERWENDE 'overwrite_cache'!*/
    107.  
    108.     $pixlie_imageconfig = array(
    109.         'x' => array('type'=>'cut','size'=>'80,80'), //Beispiel fuer Zugeschnittenes Bild mit 120 x 90 Pixel
    110.         'y' => array('type'=>'uncut','size'=>'600'),    //Beispiel fuer ein in der Groesse angepasstes Bild mit max 600 Pixel
    111.         'z' => array('type'=>'bestfit','size'=>'900,600') //Beispiel fuer ein in der Groesse angepasstes Bild mit max 900 x 600 Pixel, wobei die H?he dem zweiten Wert angepasst wird. Hochformat = H?he von Querformat. M?glich ist auch nur eine Gr?flenangabe.
    112.     );
    113.  
    114.  
    115.     /**************************************** 1.2 Sortierung ****************************************
    116.  
    117.         Beispiele fuer die Sortierung:
    118.  
    119.         1. Sortiere zuerst absteigend nach dem Hochladezeitpunkt, danach absteigend nach dem Speicherdatum
    120.              des Originalfotos. Behandle beide Datumsangaben als Zahlen.
    121.              first:    ctime, SORT_DESC, SORT_NUMERIC
    122.              second: mtime, SORT_DESC, SORT_NUMERIC
    123.  
    124.         2. Sortiere zuerst aufsteigend nach dem Dateinamen, danach absteigend nach dem IPTC Feld "Stadt".
    125.              Behandle beide Werte als Zeichenkette. Eine Liste der unterstuetzten IPTC Werte ist weiter unten
    126.              bei "$pixlie_iptc_codes" zu finden.
    127.              first:    name , SORT_ASC, SORT_STRING
    128.              second: iptc_city, SORT_DESC, SORT_STRING
    129.  
    130.         3. Sortiere zuerst absteigend nach dem EXIF-Datum, danach aufsteigend nach Name.
    131.              Behandle beide Werte als Zeichenkette. Das EXIF-Datum muss als String angegeben werden, da
    132.              es keine numerische Zahl ist.
    133.              first:    exif_exif_datetimeoriginal, SORT_DESC, SORT_STRING
    134.              second: name, SORT_ASC, SORT_STRING
    135.  */
    136.  
    137.     $pixlie_sortconfig = array(
    138.         // name, ctime, mtime, atime oder jedes iptc bzw. exif Feld
    139.         'sort_file_first_row'=>"ctime",
    140.         // absteigend: SORT_DESC, aufsteigend: SORT_ASC
    141.         'sort_file_first_order'=>SORT_DESC,
    142.         // regul?r: SORT_REGULAR, numerisch: SORT_NUMERIC, alphanumerisch: SORT_STRING
    143.         // auf SORT_STRING setzen, wenn EXIF/IPTC Originaldatum (z.B. 'exif_exif_datetimeoriginal') verwendet wird
    144.         'sort_file_first_type'=>SORT_NUMERIC,
    145.         // name, ctime, mtime, atime oder jedes iptc bzw. exif Feld
    146.         'sort_file_second_row'=>'mtime',
    147.         // absteigend: SORT_DESC, aufsteigend: SORT_ASC
    148.         'sort_file_second_order'=>SORT_DESC,
    149.         // SORT_REGULAR, SORT_NUMERIC, SORT_STRING
    150.         'sort_file_second_type'=>SORT_NUMERIC,
    151.         // name, ctime, mtime, atime oder jedes iptc bzw. exif Feld
    152.         'sort_dir_first_row'=>'name',
    153.         // absteigend: SORT_DESC, aufsteigend: SORT_ASC
    154.         'sort_dir_first_order'=>SORT_ASC,
    155.         // SORT_REGULAR, SORT_NUMERIC, SORT_STRING
    156.         'sort_dir_first_type'=>SORT_STRING,
    157.         // name, ctime, mtime, atime oder jedes iptc bzw. exif Feld
    158.         'sort_dir_second_row'=>'ctime',
    159.         // absteigend: SORT_DESC, aufsteigend: SORT_ASC
    160.         'sort_dir_second_order'=>SORT_DESC,
    161.         // SORT_REGULAR, SORT_NUMERIC, SORT_STRING
    162.         'sort_dir_second_type'=>SORT_NUMERIC
    163.     );
    164.  
    165.  
    166.     /********************************** 1.3 Sonstige Einstellungen **********************************
    167.  
    168.     WICHTIG: STELLEN SIE IM LIVE BETRIEB NACH DER ENTWICKLUNG 'overwrite_cache' AUF AUS!!!
    169.     Hinweis zu 'http_method': Viele Javascript Bibliotheken koennen Pixlie PATHINFO nicht umsetzen. */
    170.  
    171.     $manual_subpath_var = 'bildpfad';                            //Variable des manuellen Pfades
    172.     $pixlie_userconfig = array(
    173.         'overwrite_cache'                        => 'off',                //Cache bei jedem Aufruf neu erstellen: on = an, off = aus
    174.         'pic_image_quality'                    => 90,                    //Bildqualitaet: 0 = schlechteste , 100 = beste
    175.         'show_metadata_iptc'                => 'on',                //IPTC-Ausgabe: on = an, off = aus
    176.         'show_metadata_exif'                => 'on',                //EXIF-Ausgabe: on = an, off = aus
    177.         'dir_cache'                                    => dirname(__FILE__).'/cache',    //Pfad zum Cache Verzeichnis
    178.         'dir_upload'                                => dirname(__FILE__).'/upload'.
    179.             ((isset($manual_subpath)&&$manual_subpath!='')?'/'.$manual_subpath:((isset($_GET[$manual_subpath_var])&&$_GET[$manual_subpath_var]!='')?'/'.$_GET[$manual_subpath_var]:'')),    //Pfad zum Upload Verzeichnis
    180.         'http_method'                                => 'GET',                //Uebermittlungsmethode der Query-Variable: PATHINFO oder GET
    181.         'http_var_name'                            => 'q',                    //Name der Query-Variablen die per http_method uebergeben wird
    182.         'response_type'                            => 'php',                //Art der Antwort: direkt = json, include = php
    183.         'relative_path'                         => '',                    //Ist Strato Dein Hoster oder sollten die automatisch generierten Pfade nicht stimmen, trage hier den relativen Pfad ohne abschlieflenden Slash zur pixlie.php ein (z.B. '/pixlie')
    184.         'use_dims'                                    => false,                //Wenn Du die Bildabmessungen in der Ausgabe ben?tigst, stelle diesen Wert auf true [ true | false ]. Standard: false
    185.         'use_origfilename_as_save'    => false,                //Originaldateinamen beim Speichern anbieten? [ true | false ]. Auf false stellen, wenn keine Lightbox verwendet wird, da sonst das Bild als Download angeboten und nicht direkt angezeigt wird.
    186.     );
    187.  
    188.     //Namen der IPTC Felder in der Tabelle "$pixlie_table_file"
    189.     $pixlie_iptc_codes = array(
    190.         '2#005'=>'iptc_object_name',                                //Name des Objektes
    191.         '2#007'=>'iptc_edit_status',                                //Der Bearbeitungsstatus
    192.         '2#010'=>'iptc_priority',                                        //Die Prioritaet
    193.         '2#015'=>'iptc_category',                                        //Die Kategorie
    194.         '2#020'=>'iptc_supplemental_category',            //Zusaetzliche Kategorien wenn vorhanden
    195.         '2#025'=>'iptc_keywords',                                        //Keywoerter fuer die Suche
    196.         '2#030'=>'iptc_release_date',                                //Datum des Bildes
    197.         '2#035'=>'iptc_release_time',                                //Uhrzeit des Bildes
    198.         '2#040'=>'iptc_special_instructions',                //Besondere Hinweise zu dem Bild
    199.         '2#045'=>'iptc_reference_service',                    //Referenzen auf den Bilderservice
    200.         '2#047'=>'iptc_reference_date',                            //Referenzen auf das Datum (Bildarchiv)
    201.         '2#050'=>'iptc_reference_number',                        //Referenznummer fuer die Identifikation
    202.         '2#055'=>'iptc_created_date',                                //Datum des Fotos
    203.         '2#060'=>'iptc_created_time',                                //Uhrzeit des Fotos
    204.         '2#062'=>'iptc_digital_creation_date',            //Datum des Fotos
    205.         '2#063'=>'iptc_digital_creation_time',            //Uhrzeit des Fotos
    206.         '2#065'=>'iptc_originating_program',                //Programm mit dem das Foto erstellt wurde
    207.         '2#070'=>'iptc_program_version',                        //Version des Programms
    208.         '2#080'=>'iptc_byline',                                            //Name des Autors (Fotografen)
    209.         '2#085'=>'iptc_byline_title',                                //Titel des Fotografen
    210.         '2#090'=>'iptc_city',                                                //Stadt
    211.         '2#092'=>'iptc_sublocation',                                //Lokation oder Ort
    212.         '2#095'=>'iptc_province_state',                            //Bundesland
    213.         '2#100'=>'iptc_country_code',                                //Laendercode nach [ISO 3166-1]
    214.         '2#101'=>'iptc_country',                                        //Laendername
    215.         '2#105'=>'iptc_headline',                                        //Titel des Fotos
    216.         '2#115'=>'iptc_source',                                            //Quelle
    217.         '2#116'=>'iptc_copyright',                                    //Copyright Text
    218.         '2#118'=>'iptc_contact',                                        //Internetadresse
    219.         '2#120'=>'iptc_caption',                                        //Beschreibung
    220.         '2#122'=>'iptc_caption_writer',                            //Autor der Beschreibung
    221.         '2#150'=>'iptc_content_preview',                        //Vorschau
    222.         '2#200'=>'iptc_custom_field_01',                        //Frei verwendbare Textfelder
    223.         '2#201'=>'iptc_custom_field_02',                        //Frei verwendbare Textfelder
    224.         '2#202'=>'iptc_custom_field_03',                        //Frei verwendbare Textfelder
    225.         '2#203'=>'iptc_custom_field_04',                        //Frei verwendbare Textfelder
    226.         '2#204'=>'iptc_custom_field_05',                        //Frei verwendbare Textfelder
    227.         '2#205'=>'iptc_custom_field_06',                        //Frei verwendbare Textfelder
    228.         '2#206'=>'iptc_custom_field_07',                        //Frei verwendbare Textfelder
    229.         '2#207'=>'iptc_custom_field_08',                        //Frei verwendbare Textfelder
    230.         '2#208'=>'iptc_custom_field_09',                        //Frei verwendbare Textfelder
    231.         '2#209'=>'iptc_custom_field_10',                        //Frei verwendbare Textfelder
    232.         '2#210'=>'iptc_custom_field_11',                        //Frei verwendbare Textfelder
    233.         '2#211'=>'iptc_custom_field_12',                        //Frei verwendbare Textfelder
    234.         '2#212'=>'iptc_custom_field_13',                        //Frei verwendbare Textfelder
    235.         '2#213'=>'iptc_custom_field_14',                        //Frei verwendbare Textfelder
    236.         '2#214'=>'iptc_custom_field_15',                        //Frei verwendbare Textfelder
    237.         '2#215'=>'iptc_custom_field_16',                        //Frei verwendbare Textfelder
    238.         '2#216'=>'iptc_custom_field_17',                        //Frei verwendbare Textfelder
    239.         '2#217'=>'iptc_custom_field_18',                        //Frei verwendbare Textfelder
    240.         '2#218'=>'iptc_custom_field_19',                        //Frei verwendbare Textfelder
    241.         '2#219'=>'iptc_custom_field_20',                        //Frei verwendbare Textfelder
    242.         '2#230'=>'iptc_document_notes',                            //Hinweise zu dem Dokument
    243.         '2#231'=>'iptc_document_history',                        //Historie des Dokumentes
    244.         '2#232'=>'iptc_exif_camera_info'                        //Binaere EXIF Kameradaten (nicht editierbar)
    245.     );
    246.  
    247.  
    248.     /*********************************** 1.4 Systemkonfiguration*************************************/
    249.  
    250.     $pixlie_sysconfig = array(
    251.         'php_req_vers' => '4.0.0',                                    //erforderliche PHP Version
    252.         'manual_subpath_var' => $manual_subpath_var    //manuelle Pfad. Wird automatisch ¸bernommen.
    253.     );
    254.  
    255.     /* Bitte aender diese Standardtisierten Bildwerte nicht. Eigene koennen weiter oben unter dem
    256.          Punkt 1.1 (Bildgroessen) erstellt werden. */
    257.     $pixlie_sys_imageconfig = array(
    258.         's' => array('type'=>'cut',    'size'=>'75,75'),
    259.         't' => array('type'=>'uncut','size'=>'100'),
    260.         'm' => array('type'=>'uncut','size'=>'240'),
    261.         'd' => array('type'=>'uncut','size'=>'500'),
    262.         'b' => array('type'=>'uncut','size'=>'1024'),
    263.         'o' => array('type'=>'none', 'size'=>'original'),
    264.     );
    265.  
    266.     $pixlie_image_sizes = array_merge($pixlie_sys_imageconfig,$pixlie_imageconfig);
    267.     $pixlie_config = array_merge($pixlie_userconfig,$pixlie_sortconfig,$pixlie_sysconfig);
    268.  
    269.     // PHP Remote Config
    270.     if(isset($response_type)){
    271.         switch($response_type){
    272.                 case 'php': $pixlie_config['response_type'] = 'php';
    273.                                          break;
    274.                 case 'json': $pixlie_config['response_type'] = 'json';
    275.                                          break;}}
    276.  
    277.  
    278.     /*************************************** 2. Sprachausgaben **************************************/
    279.  
    280.     $pixlie_lang = array(
    281.         'conf_cache_dir_read'            => "Das Cache-Verzeichnis <b>".$pixlie_config['dir_cache']."</b> existiert nicht.",
    282.         'conf_cache_dir_write'        => "Cache-Verzeichnis <b>".$pixlie_config['dir_cache']."</b> ok. Pixlie benoetigt jedoch schreibenden Zugriff auf das Cache-Verzeichnis. Bitte das Recht 777 auf das Cache-Verzeichnis setzen.",
    283.         'conf_upload_dir_read'        => "Das Upload-Verzeichnis <b>".$pixlie_config['dir_upload']."</b> fuer die Bilder existiert nicht.",
    284.         'conf_upload_dir_write'        => "Upload-Verzeichnis <b>".$pixlie_config['dir_upload']."</b> ok. Pixlie benoetigt jedoch lesenden Zugriff auf das Upload-Verzeichnis. Bitte das Recht 755 auf das Upload-Verzeichnis setzen.",
    285.         'conf_php_vers'                        => "Pixlie benoetigt mindestens PHP in der Version <b>".$pixlie_config['php_req_vers']."</b>.",
    286.         'conf_http_method'                => "Der Wert http_method <b>(".$pixlie_config['http_method'].")</b> in der Config hat einen falschen Wert.",
    287.         'conf_xss_prot'                        => "Der XSS Schutz hat eine nicht gueltige Zeichenfolge in der Query erkannt.",
    288.         'pic_fileexists_false'        => "Das angeforderte Bild existiert nicht.",
    289.         'pic_rendertype_false'        => "Der hinterlegte Rendertyp existiert nicht.",
    290.         'dir_opendir_false'                => "Das angeforderte Verzeichnis kann nicht gelesen werden.",
    291.         'exif_function_not_exist' => "Die Funktion <b>exif_read_data</b> konnte nicht gefunden werden. Bitte <b>show_metadata_exif</b> in der Pixlie-Konfiguration auf <b>'off'</b> stellen."
    292.     );
    293.  
    294.  
    295.     /************************************** 3. Fehlerbehandlung *************************************/
    296.  
    297.     if(function_exists('pixlie_error')==false){
    298.         function pixlie_error($msg){
    299.             global $pixlie_config;
    300.             clearstatcache();
    301.         if ($pixlie_config['response_type'] == 'json') {
    302.                 $pixlie_table_env['status'] = false;
    303.                 $pixlie_table_env['errormsg'] = $msg;
    304.                 die(json_encode(array('pixlie_table_env'=>$pixlie_table_env)));}
    305.             else{
    306.                 die($msg);}}}
    307.  
    308.  
    309.     /***************************** 4. Umgebungs- und Installationspruefung ***************************/
    310.  
    311.     // Windows oder *Nix
    312.     $bIsNix = (preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", __FILE__)) ? false : true;
    313.  
    314.     //cache check
    315.     if(!(is_dir($pixlie_config['dir_cache']))) {
    316.         pixlie_error($pixlie_lang['conf_cache_dir_read']);}
    317.     elseif(!(is_readable($pixlie_config['dir_cache'])) || !(is_writable($pixlie_config['dir_cache'])) || ($bIsNix && !(is_executable($pixlie_config['dir_cache'])))) {
    318.         pixlie_error($pixlie_lang['conf_cache_dir_write']);}
    319.  
    320.     //upload check
    321.     if(!(is_dir($pixlie_config['dir_upload']))) {
    322.         pixlie_error($pixlie_lang['conf_upload_dir_read']);}
    323.     elseif(!(is_readable($pixlie_config['dir_upload'])) || ($bIsNix && !(is_executable($pixlie_config['dir_upload'])))) {
    324.         pixlie_error($pixlie_lang['conf_upload_dir_write']);}
    325.  
    326.     //PHP version-check
    327.     if( phpversion() < $pixlie_config['php_req_vers'] ){
    328.         pixlie_error($pixlie_lang['conf_php_vers']);}
    329.  
    330.  
    331.     /****************************** 5. Entgegennehmen der Query-Variable ****************************/
    332.  
    333.     switch ($pixlie_config['http_method']){
    334.         case 'GET':            if(isset($_GET[$pixlie_config['http_var_name']])){
    335.                                              $pixlie_query = $_GET[$pixlie_config['http_var_name']];}
    336.                                          else{
    337.                                              $pixlie_query = '';}
    338.                                          break;
    339.         case 'PATHINFO': if(isset($_SERVER['PATH_INFO'])){
    340.                                              $pixlie_query = $_SERVER['PATH_INFO'];}
    341.                                          else{
    342.                                              $pixlie_query = '';}
    343.                                          break;
    344.         default:                 pixlie_error($pixlie_lang['conf_http_method']);
    345.                                          break;}
    346.  
    347.  
    348.     /********************************* 6. Auf Hackerangriffe pruefen *********************************/
    349.  
    350.     //cross-site scripting (XSS-Schutz)
    351.     $pixlie_query = preg_replace('/\.\./','',$pixlie_query);
    352.     $pixlie_query = preg_replace('/\/\//','/',$pixlie_query);
    353.     if ((preg_match("/<[^>]*script*\"?[^>]*>/", $pixlie_query)) ||
    354.             (preg_match("/<[^>]*object*\"?[^>]*>/", $pixlie_query)) ||
    355.             (preg_match("/<[^>]*iframe*\"?[^>]*>/", $pixlie_query)) ||
    356.             (preg_match("/<[^>]*applet*\"?[^>]*>/", $pixlie_query)) ||
    357.             (preg_match("/<[^>]*meta*\"?[^>]*>/", $pixlie_query))     ||
    358.             (preg_match("/<[^>]*style*\"?[^>]*>/", $pixlie_query))    ||
    359.             (preg_match("/<[^>]*form*\"?[^>]*>/", $pixlie_query))     ||
    360. //            (preg_match("/\([^>]*\"?[^)]*\)/", $pixlie_query))            || // auskommentiert, um Dateinamen mit Klammern zu erlauben
    361.             (preg_match("/\"/", $pixlie_query))) {
    362.                 pixlie_error($pixlie_lang['conf_xss_prot']);die();}
    363.  
    364.  
    365.     /************************************ 7. Umwandlung in UTF-8 ************************************/
    366.  
    367.     $pixlie_query = utf8_decode($pixlie_query);
    368.  
    369.  
    370.     /*************************************************************************************************
    371.      ********************************* 8. Verarbeitung eines Fotos ***********************************
    372.      ************************************************************************************************/
    373.  
    374.     if(preg_match('/(.jpg)$/i', $pixlie_query)){
    375.  
    376.  
    377.     /********************** 8.1 Angeforderte Bildgroesse der Query Variable pruefen ********************/
    378.  
    379.         if(false !== preg_match('/.*_(.)(\....)/',$pixlie_query,$pixlie_reg_picsize)){
    380.             $pixlie_item_picsize = $pixlie_reg_picsize[1];
    381.             $pixlie_item_extension = $pixlie_reg_picsize[2];
    382.             $pixlie_query = preg_replace('/_'.$pixlie_item_picsize.$pixlie_item_extension.'/' ,
    383.                 $pixlie_item_extension,$pixlie_query);}
    384.         else{
    385.             $pixlie_item_picsize = 'd';}
    386.  
    387.  
    388.     /************************ 8.2 Cache Dateinamen und Dateipfade generieren ************************/
    389.  
    390.         $pixlie_item_path    = $pixlie_config['dir_upload'].$pixlie_query;
    391.         $pixlie_cache_name = md5($pixlie_query).'_'.$pixlie_item_picsize.'.jpg';
    392.         $pixlie_cache_path = $pixlie_config['dir_cache'].'/'.$pixlie_cache_name;
    393.  
    394.  
    395.     /*************************** 8.3 Pruefen ob Datei schon im Cache liegt ***************************/
    396.  
    397.         if(file_exists($pixlie_item_path)){
    398.             if((file_exists($pixlie_cache_path)==false)||($pixlie_config['overwrite_cache']=='on')){
    399.                 switch ($pixlie_image_sizes[$pixlie_item_picsize]['type']){
    400.  
    401.  
    402.     /*************************** 8.3.1 Berechne Bilder nach dem Typ "cut" ***************************/
    403.  
    404.                     case 'cut':
    405.                         $pixlie_render_size = explode(',',$pixlie_image_sizes[$pixlie_item_picsize]['size']);
    406.                         @ini_set('memory_limit', '50M');
    407.                         $src_img = imagecreatefromjpeg($pixlie_item_path);
    408.                         if((imagesy($src_img) / imagesx($src_img) * $pixlie_render_size[0]) >$pixlie_render_size[1] ){
    409.                             $src_w = imagesx($src_img);
    410.                             $src_h = round((imagesx($src_img)/$pixlie_render_size[0])*$pixlie_render_size[1]);
    411.                             $src_x = (imagesy($src_img)-$src_h) / 4;
    412.                             $src_y = 0;}
    413.                         else{
    414.                             $src_h = imagesy($src_img);
    415.                             $src_w = round((imagesy($src_img)/$pixlie_render_size[1])*$pixlie_render_size[0]);
    416.                             $src_y = (imagesx($src_img)-$src_w) / 2;
    417.                             $src_x = 0;}
    418.                         $dst_img = imagecreatetruecolor($pixlie_render_size[0],$pixlie_render_size[1]);
    419.                         imagecopyresampled($dst_img,$src_img,0,0,$src_y,$src_x,$pixlie_render_size[0],
    420.                             $pixlie_render_size[1],$src_w,$src_h);
    421.                         imagedestroy($src_img);
    422.                         imagejpeg($dst_img, $pixlie_cache_path, $pixlie_config['pic_image_quality']);
    423.                         imagedestroy($dst_img);
    424.                         break;
    425.  
    426.  
    427.     /************************** 8.3.2 Berechne Bilder nach dem Typ "uncut" **************************/
    428.  
    429.                     case 'uncut':
    430.                         $pixlie_render_size = $pixlie_image_sizes[$pixlie_item_picsize]['size'];
    431.                         @ini_set('memory_limit', '50M');
    432.                         $src_img = imagecreatefromjpeg($pixlie_item_path);
    433.                         if(imagesx($src_img)==imagesy($src_img)){
    434.                             $dst_w = $pixlie_render_size;
    435.                             $dst_h = $pixlie_render_size;}
    436.                         elseif (imagesx($src_img) > imagesy($src_img)){
    437.                             $dst_w = round( $pixlie_render_size / imagesx($src_img) * imagesy($src_img));
    438.                             $dst_h = $pixlie_render_size;}
    439.                         else{
    440.                             $dst_w = $pixlie_render_size;
    441.                             $dst_h = round($pixlie_render_size / imagesy($src_img) * imagesx($src_img));}
    442.                         $dst_img = imagecreatetruecolor($dst_h,$dst_w);
    443.                         imagecopyresampled($dst_img,$src_img,0,0,0,0,$dst_h,$dst_w,imagesx($src_img),imagesy($src_img));
    444.                         imagedestroy($src_img);
    445.                         imagejpeg($dst_img, $pixlie_cache_path, $pixlie_config['pic_image_quality']);
    446.                         imagedestroy($dst_img);
    447.                         break;
    448.  
    449.  
    450.     /************************** 8.3.3 Berechne Bilder nach dem Typ "bestfit" ************************/
    451.  
    452.                     case 'bestfit':
    453.                         if (strpos($pixlie_image_sizes[$pixlie_item_picsize]['size'],',')) {
    454.                             $pixlie_render_size = explode(',',$pixlie_image_sizes[$pixlie_item_picsize]['size']);
    455.                         } else {
    456.                             $pixlie_render_size = array($pixlie_image_sizes[$pixlie_item_picsize]['size'],$pixlie_image_sizes[$pixlie_item_picsize]['size']);
    457.                         }
    458.                         @ini_set('memory_limit', '50M');
    459.                         $src_img = imagecreatefromjpeg($pixlie_item_path);
    460.                         // Ziel-Verh?ltnis aus H?he und Breite ermitteln
    461.                         $relation = $pixlie_render_size[0]/$pixlie_render_size[1];
    462.                         if(imagesx($src_img)==imagesy($src_img)){
    463.                             // quadratisches Format: H?he und Breite auf den kleineren Wert setzen
    464.                             $dst_w = min($pixlie_render_size[0],$pixlie_render_size[1]);
    465.                             $dst_h = $dst_w;
    466.                         } elseif (imagesx($src_img)/imagesy($src_img) == $relation ){
    467.                             // Ziel-Verh?ltnis bereits vorhanden, Werte direkt ¸bernehmen
    468.                             $dst_w = $pixlie_render_size[0];
    469.                             $dst_h = $pixlie_render_size[1];
    470.                         } elseif (imagesx($src_img)/imagesy($src_img) < $relation ){
    471.                             // "hochformatiger" als Ziel-Verh?ltnis, H?he ¸bernehmen, Breite berechnen
    472.                             $dst_w = round( $pixlie_render_size[1] * imagesx($src_img)/imagesy($src_img));
    473.                             $dst_h = $pixlie_render_size[1];
    474.                         } else {
    475.                             // "querformatiger" als Ziel-Verh?ltnis, Breite ¸bernehmen, H?he berechnen
    476.                             $dst_w = $pixlie_render_size[0];
    477.                             $dst_h = round($pixlie_render_size[0] * imagesy($src_img)/imagesx($src_img));
    478.                         }
    479.                         $dst_img = imagecreatetruecolor($dst_w,$dst_h);
    480.                         imagecopyresampled($dst_img,$src_img,0,0,0,0,$dst_w,$dst_h,imagesx($src_img),imagesy($src_img));
    481.                         imagedestroy($src_img);
    482.                         if ( isset( $plugins['watermark_uncut'] ) && $plugins['watermark_uncut'] ) {
    483.                             include( $global_config['pluginspath'].'/watermark/watermark.php' ); // Einbinden des Wasserzeichens
    484.                             $dst_img = watermark( $dst_img, 'uncut' ); // Wasserzeichen einbrennen, wenn eingestellt
    485.                         }
    486.                         if ( isset( $plugins['unsharpmask_uncut'] ) && $plugins['unsharpmask_uncut'] ) {
    487.                             include( $global_config['pluginspath'].'/unsharpmask/unsharpmask.php' ); // Einbinden des "Unscharf Maskieren" Filters
    488.                             $dst_img = UnsharpMask( $dst_img, 80, 0.7, 1 ); // image res, amount, radius, threshold
    489.                         }
    490.                         imagejpeg($dst_img, $pixlie_cache_path, $pixlie_config['pic_image_quality']);
    491.                         imagedestroy($dst_img);
    492.                         break;
    493.                     case 'none': $pixlie_cache_path = $pixlie_item_path;
    494.                         break;
    495.                     default: pixlie_error($pixlie_lang['pic_rendertype_false']);;
    496.                         break;}}
    497.  
    498.  
    499.     /*********************************** 8.4 Ausgabe des Bildes *************************************/
    500.  
    501.             $xFilename = explode('/', $pixlie_query);
    502.             $xFilesize = filesize($pixlie_cache_path);
    503.             header("Pragma: public");
    504.             header("Expires: " . gmdate('D, d M Y H:i:s', time()+ 30*24*60*60) . " GMT");
    505.             header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    506.             header("Cache-Control: private",false);
    507.             header("Content-Type: image/jpeg");
    508.             if ($pixlie_config['use_origfilename_as_save'])
    509.                 header("Content-Disposition: attachment; filename=\"".utf8_decode($xFilename[count($xFilename)-1])."\";");
    510.             header("Content-Transfer-Encoding: binary");
    511.             header("Content-Length: ".$xFilesize);
    512.             ob_clean(); // Patch: http://pixlie.de/forum/index.php?page=Thread&postID=2344#post2344
    513.             readfile($pixlie_cache_path);
    514.             //imagejpeg(imagecreatefromjpeg($pixlie_cache_path)); //alternativ
    515.         }
    516.         else{
    517.             pixlie_error($pixlie_lang['pic_fileexists_false']);}}
    518.     else{
    519.  
    520.  
    521.     /*************************************************************************************************
    522.      ******************************** 9. Verarbeitung eines Ordners **********************************
    523.      ************************************************************************************************/
    524.  
    525.         $pixlie_table_file = array();
    526.         $pixlie_table_dir = array();
    527.         $pixlie_table_env = array();
    528.         $pixlie_key_counter_file = 0;
    529.         $pixlie_key_counter_dir = 0;
    530.         if($pixlie_dir_handle = @opendir($pixlie_config['dir_upload'].$pixlie_query)){
    531.  
    532.  
    533.     /********************************** 9.1 Weiche f¸r Ordner / Bild *********************************/
    534.  
    535.             while(false !== ($pixlie_item_name = readdir($pixlie_dir_handle))){
    536.                 if ($pixlie_item_name != "." && $pixlie_item_name != "..") {
    537.                     $pixlie_item_path = $pixlie_config['dir_upload'].$pixlie_query.'/'.$pixlie_item_name;
    538.                     if((filetype($pixlie_item_path)=='file')&&(preg_match('/(.jpg)$/i', $pixlie_item_name))){
    539.  
    540.  
    541.     /************************************* 9.2 JPG Grunddaten lesen *********************************/
    542.  
    543.                         $pixlie_item_key = $pixlie_key_counter_file;
    544.                         $pixlie_key_counter_file ++;
    545.  
    546.                         $pixlie_table_file[$pixlie_item_key]['name'] =
    547.                             utf8_encode(preg_replace('/\.jpg/i','',$pixlie_item_name));
    548.  
    549.                         $pixlie_link_file = urlencode($pixlie_table_file[$pixlie_item_key]['name']);
    550.                         $pixlie_link_query = preg_replace('/%2F/','/',urlencode(utf8_encode($pixlie_query)));
    551.  
    552.                         if($pixlie_query==''){
    553.                             $pixlie_table_file[$pixlie_item_key]['link_get'] =
    554.                             '?'.$pixlie_config['http_var_name'].'=/'.$pixlie_link_file;
    555.                             $pixlie_table_file[$pixlie_item_key]['link_pathinfo'] =
    556.                             '/'.$pixlie_link_file;}
    557.                         else{
    558.                             $pixlie_table_file[$pixlie_item_key]['link_get'] =
    559.                             '?'.$pixlie_config['http_var_name'].'='.$pixlie_link_query.'/'.$pixlie_link_file;
    560.                             $pixlie_table_file[$pixlie_item_key]['link_pathinfo'] =
    561.                             $pixlie_link_query.'/'.$pixlie_link_file;}
    562.  
    563.                         $pixlie_table_file[$pixlie_item_key]['atime'] = fileatime($pixlie_item_path);
    564.                         $pixlie_table_file[$pixlie_item_key]['ctime'] = filectime($pixlie_item_path);
    565.                         $pixlie_table_file[$pixlie_item_key]['mtime'] = filemtime($pixlie_item_path);
    566.                         $pixlie_table_file[$pixlie_item_key]['size']    = filesize($pixlie_item_path);
    567.                         preg_match('/.*(\....)/',$pixlie_item_name,$pixlie_reg_extension);
    568.                         $pixlie_table_file[$pixlie_item_key]['extension'] = $pixlie_reg_extension[1];
    569.                         if ($pixlie_config['use_dims']) {
    570.                             $aDims = getimagesize($pixlie_item_path, $iptc_info);
    571.                             $pixlie_table_file[$pixlie_item_key]['width'] = $aDims[0];
    572.                             $pixlie_table_file[$pixlie_item_key]['height'] = $aDims[1];
    573.                             $pixlie_table_file[$pixlie_item_key]['html'] = $aDims[3];
    574.                         }
    575.  
    576.  
    577.     /*********************************** 9.3 IPTC Metadaten lesen ***********************************/
    578.  
    579.                         if($pixlie_config['show_metadata_iptc']=='on'){
    580.                             if (!$pixlie_config['use_dims'])
    581.                                 getimagesize($pixlie_item_path, $iptc_info);
    582.                             if(isset($iptc_info["APP13"])){
    583.                                 $iptc_data = iptcparse($iptc_info["APP13"]);
    584.                                 if(is_array($iptc_data)) {
    585.                                     foreach ($iptc_data as $iptc_key => $iptc_value){
    586.                                         if($iptc_key != '2#000'){
    587.                                             if(count($iptc_value)>1){
    588.                                                 $pixlie_table_file[$pixlie_item_key][$pixlie_iptc_codes[$iptc_key]] =
    589.                                                 utf8_encode(implode(',',$iptc_value));}
    590.                                             else{
    591.                                                 @$pixlie_table_file[$pixlie_item_key][$pixlie_iptc_codes[$iptc_key]] =
    592.                                                 utf8_encode($iptc_value[0]); }}}}}}
    593.  
    594.  
    595.     /*********************************** 9.4 EXIF Metadaten lesen ***********************************/
    596.  
    597.                         if($pixlie_config['show_metadata_exif']=='on') {
    598.                             if (function_exists('exif_read_data')) {
    599.                                 $exif_data = exif_read_data($pixlie_item_path ,1, true);
    600.                                 if($exif_data!=false){
    601.                                     foreach ($exif_data as $exif_key => $exif_section) {
    602.                                         if ((stristr($exif_key,'makernote')== false)) {
    603.                                             foreach ($exif_section as $exif_name => $exif_value) {
    604.                                                 if((stristr($exif_name,'makernote')== false)&&(stristr($exif_name,'usercomment')== false)&&
    605.                                                     (stristr($exif_name,'undefined')== false)){
    606.                                                         $pixlie_table_file[$pixlie_item_key]['exif_'.strtolower($exif_key).'_'.
    607.                                                             strtolower($exif_name)] = ((is_array($exif_value))?$exif_value:utf8_encode($exif_value)); }}}}} //$exif_value could be array
    608.                             } else
    609.                                 pixlie_error($pixlie_lang['exif_function_not_exist']);
    610.                     }} elseif(filetype($pixlie_item_path)=='dir'){
    611.  
    612.  
    613.     /*********************************** 9.5 Ordner Grunddaten lesen ********************************/
    614.  
    615.                         $pixlie_item_key = $pixlie_key_counter_dir;
    616.                         $pixlie_key_counter_dir ++;
    617.  
    618.                         $pixlie_link_file = urlencode(utf8_encode($pixlie_item_name));
    619.                         $pixlie_link_query = preg_replace('/%2F/','/',urlencode(utf8_encode($pixlie_query)));
    620.  
    621.                         if($pixlie_query==''){
    622.                             $pixlie_table_dir[$pixlie_item_key]['link_get'] =
    623.                             '?'.$pixlie_config['http_var_name'].'=/'.$pixlie_link_file;
    624.                             $pixlie_table_dir[$pixlie_item_key]['link_pathinfo'] = '/'.$pixlie_link_file;}
    625.                         else{
    626.                             $pixlie_table_dir[$pixlie_item_key]['link_get'] =
    627.                             '?'.$pixlie_config['http_var_name'].'='.$pixlie_link_query.'/'.$pixlie_link_file;
    628.                             $pixlie_table_dir[$pixlie_item_key]['link_pathinfo'] =
    629.                                 $pixlie_link_query.'/'.$pixlie_link_file;}
    630.                         $pixlie_table_dir[$pixlie_item_key]['name'] = utf8_encode($pixlie_item_name);
    631.                         $pixlie_table_dir[$pixlie_item_key]['atime'] = fileatime($pixlie_item_path);
    632.                         $pixlie_table_dir[$pixlie_item_key]['ctime'] = filectime($pixlie_item_path);
    633.                         $pixlie_table_dir[$pixlie_item_key]['mtime'] = filemtime($pixlie_item_path);}}}
    634.  
    635.             closedir($pixlie_dir_handle);
    636.             $pixlie_table_env['status'] = true;
    637.             $pixlie_table_env['numberof_file'] = count($pixlie_table_file);
    638.             $pixlie_table_env['numberof_dir']    = count($pixlie_table_dir);
    639.             $pixlie_table_env['query']    = utf8_encode($pixlie_query);
    640.  
    641.             $__FILE__ = (substr($_SERVER["DOCUMENT_ROOT"], 0, strlen('/kunden')) == '/kunden') ? '/kunden'.__FILE__ : __FILE__; // 1&1 workaround
    642.             if ( $pixlie_config['relative_path'] != '' ) {
    643.                 $relpath = $pixlie_config['relative_path'].((substr($pixlie_config['relative_path'], -1) != '/') ? '/' : '');
    644.             } else {
    645.                 $fullpath = str_replace('\\', '/', dirname($__FILE__));
    646.                 $fullpath = $fullpath.((substr($fullpath, -1) != '/') ? '/' : '');
    647.                 $istartpos = strpos($fullpath, $_SERVER["DOCUMENT_ROOT"]);
    648.                 $iendpos = $istartpos + strlen(str_replace('\\', '/', $_SERVER["DOCUMENT_ROOT"]));
    649.                 $relpath = substr($fullpath, $iendpos);
    650.                 $relpath .= (substr($relpath, -1) != '/') ? '/' : '';
    651.             }
    652.             $pixlie_table_env['path_pixlie'] = 'http://'.$_SERVER['HTTP_HOST'].
    653.                 ((substr($_SERVER['HTTP_HOST'],-1) != '/' && substr($relpath,0,1) != '/')?'/':'').
    654.                 $relpath.basename($__FILE__);
    655.         }
    656.         else{
    657.                 pixlie_error($pixlie_lang['dir_opendir_false']);}
    658.  
    659.  
    660.     /******************************* 9.6 Sortierung der Datentabellen *******************************/
    661.  
    662.         if(count($pixlie_table_file)>1){
    663.             foreach ($pixlie_table_file as $pixlie_sort_key => $pixlie_sort_row){
    664.                 $pixlie_first_sort_row[$pixlie_sort_key] = @$pixlie_sort_row[$pixlie_config['sort_file_first_row']];
    665.                 $pixlie_second_sort_row[$pixlie_sort_key] = @$pixlie_sort_row[$pixlie_config['sort_file_second_row']];}
    666.             array_multisort($pixlie_first_sort_row,    $pixlie_config['sort_file_first_order'],
    667.                                             $pixlie_config['sort_file_first_type'], $pixlie_second_sort_row,
    668.                                             $pixlie_config['sort_file_second_order'], $pixlie_config['sort_file_second_type'],
    669.                                             $pixlie_table_file);
    670.             unset($pixlie_first_sort_row,$pixlie_second_sort_row);}
    671.         if(count($pixlie_table_dir)>1){
    672.             foreach ($pixlie_table_dir as $pixlie_sort_key => $pixlie_sort_row){
    673.                 $pixlie_first_sort_row[$pixlie_sort_key] = @$pixlie_sort_row[$pixlie_config['sort_dir_first_row']];
    674.                 $pixlie_second_sort_row[$pixlie_sort_key] = @$pixlie_sort_row[$pixlie_config['sort_dir_second_row']];}
    675.             array_multisort($pixlie_first_sort_row,    $pixlie_config['sort_dir_first_order'],
    676.                                             $pixlie_config['sort_dir_first_type'], $pixlie_second_sort_row,
    677.                                             $pixlie_config['sort_dir_second_order'], $pixlie_config['sort_dir_second_type'],
    678.                                             $pixlie_table_dir);
    679.             unset($pixlie_first_sort_row,$pixlie_second_sort_row);}
    680.  
    681.  
    682.     /************************************* 9.7 Ausgabe via JSON *************************************/
    683.  
    684.      switch($pixlie_config['response_type']){
    685.          case 'php':
    686.                  //no content output. use the var $pixlie_table_file and $pixlie_table_dir in your php file
    687.              break;
    688.          case 'json':
    689.              header("Content-Type: text/html; charset=utf-8");
    690.              $json = array(
    691.                  'pixlie_table_env'=> $pixlie_table_env,
    692.                  'pixlie_table_dir'=> $pixlie_table_dir,
    693.                  'pixlie_table_file'=> $pixlie_table_file);
    694.              echo json_encode($json);
    695.              break;}
    696.  
    697.     //Diese Arrays koennen bei einem include verwendet werden.
    698.     /*
    699.         //Testausgabe:
    700.         echo '<pre>';
    701.         print_r($pixlie_table_env);
    702.         print_r($pixlie_table_file);
    703.         print_r($pixlie_table_dir);
    704.         echo '</pre>';
    705.     */
    706.     }
    707.     ob_flush(); //Ausgabe des Puffers
    708. ?>
     
    #7      
  8. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    das ist ja nur das kommentierte script. ich meinte eigentlich diese adresse http://pixlie.de/wiki/index.php , die nicht (mehr) aufrufbar ist.
     
    #8      
  9. Konzertjunkie

    Konzertjunkie Noch nicht viel geschrieben

    Dabei seit:
    27.12.2008
    Beiträge:
    36
    Geschlecht:
    männlich
    Ort:
    Göttingen
    Software:
    Photoshop, Illustrator, InDesign, Dreamviwer, Page Spinner
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    Danke das du mir gerade die ganze Zeit hilfst :)
    Hier kann man die Seite sich anschauen. Es ist schon was geschehen mit der jQuery Bildergalerie. Jetzt muss ich nur noch den Fehler finden warum die Galerie nach unten verschwindet xD
     
    #9      
  10. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    Da musst du mal schauen, ob dein stylesheet so
    HTML:
    1. <link rel="stylesheet" type="text/css" href="/jsjquery.lightbox-0.5.css">
    korrekt verlinkt ist - sieht nicht so aus.
     
    #10      
  11. Konzertjunkie

    Konzertjunkie Noch nicht viel geschrieben

    Dabei seit:
    27.12.2008
    Beiträge:
    36
    Geschlecht:
    männlich
    Ort:
    Göttingen
    Software:
    Photoshop, Illustrator, InDesign, Dreamviwer, Page Spinner
    Thums aus Bildern erstellen und dann per jquery auslesen
    AW: Thums aus Bildern erstellen und dann per jquery auslesen

    Vielen Vielen danke für die Hilfe lieber Sokie! Jetzt passt alles und ich bin ne Erfahrung weiter :)
     
    #11      
Die Seite wird geladen...
© 2002 - 2016 PSD-Tutorials.de – ein Projekt mit der 4eck Media GmbH & Co. KG
x
×
×