Unterschiedliche Bildgrößen auf "Anfrage"..., per ModRewrite werden Bilder neu berechnet und gecached! |
Willkommen, Gast ( Anmelden | Registrierung ) [ Hilfe | Mitglieder | Suche ]
Unterschiedliche Bildgrößen auf "Anfrage"..., per ModRewrite werden Bilder neu berechnet und gecached! |
Sun. 3. December 2006, 23:06
Beitrag
#1
|
|
Advanced Member Gruppe: Moderators Beiträge: 911 Mitglied seit: 26.06.2006 Wohnort: Essen; Ruhrgebiet Mitglieds-Nr.: 4 |
So, während ich nach einem ImageEditor gesucht habe bin ich auf folgenden Codeschnippsel gestoßen.
ACHTUNG! Der Hack ist übelst und sollte nicht in einem Produktivsystem eingesetzt werden. Vermutlich sind große Sicherheitslücken drin. Es geht hier erstmal nur ums Anschauen und Rumspielen! Worum geht es überhaupt? Ich hatte immer das Problem, dass meine Redakteure Bilder hochladen, die möglicherweise nicht die korrekte Größe haben. Vor allem bei Galerien wurde da gerne mal direkt aus Digitalkameras reinkopiert. Nun wird ja das Sefrengo Thumbnail direkt erstellt, dass ist also da. Dummerweise brauche ich öfter aber auch passende Bilder in Groß oder in ganz anderen Größen. Manchmal auch ein und das selbe Bild in 3-4 Größen. Lösung In dem anghängten Zipfile befindet sich eine htaccess datei und eine image.php. Durch die modifizierte Sefrengo htaccess Datei wird ein Bild auch mit anderen Adressen erreichbar: Orginal: http://www.domain.de/media/images/testbild.jpg Zusätzlich: http://www.domain.de/media/images/small/testbild.jpg http://www.domain.de/media/images/medium/testbild.jpg http://www.domain.de/media/images/large/testbild.jpg Per ModRewrite wird das ganze dann auf die image.php umgeleitet. Diese erstellt Bilder in der gewünschten, Voreingestellten Größe. Das Bild wird sogar gecached und in ein cache verzeichnis geschrieben. Bei erneutem Aufruf wird getestet ob das Bild schon erstellt wurde und ob sich das Orginal verändert hatte seit dem. Wen nicht wird das Bild aus dem Cache genommen. Damit kann ich jetzt super Module schrauben, indem ich zum Beispiel anstelle des Orginals gleich die Größe nutze, die ich an der STelle haben will. So kann der Redakteur dann ein Bild auswählen und sollte es zu groß sein, wird es runter gerechnet. Installation
- Testen und vor allem Sicherheitslücken klären. Stelle mir vor, dass ich durch die Übergabe von $path und $image große Scheunentore aufgemacht habe! - Besser an Sefrengo anbinden und konfigurierbar machen - Bildgrößen konfiguration flexibeler machen und aus der htaccess datei holen und ganz wichtig: - Feedback von Euch einholen!!!! So, was sagt ihr dazu? Das ersetzt meines Erachtens nicht einen guten Dateimanager im Backend, der das komfortable Bearbeiten von Bildern ermöglicht (min. Drehen, Beschneiden und Skalieren), hilft aber schon mal bei vielen Problemen! Freu mich auf Feedback. imagecache.zip ( 1.71KB ) Anzahl der Downloads: 26 -------------------- |
|
|
Guest_bkm_* |
Wed. 19. March 2008, 20:52
Beitrag
#2
|
Guests |
in der galerie funktioniert das ganze weil die werte aus der db gebaut werden.
bild 1.2 , list- && cflex benutzen cms:tags , die ja auf bestimmte art vorgegeben und nicht immer einheitlich sind. ( so gibt es im cms:tag <<file>> filename aber im <<image>> ist dieser nicht vorhanden. dafür könnte man aber das ganze mit <<basename>> ausgeben. output im bild 1.2 QUELLTEXT <?PHP $myImage['style'] = "MOD_VALUE[4]"; $myImage['desc'] = <cms:mod type="image" id="1" mode="desc" addslashes="true" />; //Stylesheet für Text hinzufügen $myImage['desc'] = ( "MOD_VALUE[4]" == "") ? $myImage['desc'] : '<span class="MOD_VALUE[4]">'. $myImage['desc'] .'</span>'; //Gibt es mehrere Tags, bei denen type und id gleich sind, ist es wichtig, dass das letzt "gleiche" Element alle erweiterten //Konfigurationsvariablen enthält (z.B. folders, subfolders) . Den nur die Variablen des "letzten" Tags können im Formular //weiterverarbeitet werden. Andernfalls bleibt z.B. die Auswahl von bestimmten Dateitypen ohne Wirkung. $myImage['fmtitle'] = <cms:mod type="image" id="1" mode="fmtitle" addslashes="true" />; $myImage['fmdesc'] = <cms:mod type="image" id="1" mode="fmdesc" addslashes="true" />; $myImage['filesize'] = <cms:mod type="image" id="1" mode="filesize" addslashes="true" />; $myImage['filethumb'] = <cms:mod type="image" id="1" mode="thumb" addslashes="true" />; $myImage['imagename'] = basename(<cms:mod type="image" id="1" mode="url" addslashes="true" menuoptions="false" />); $myImage['imageurldavelee']= str_replace($myImage['imagename'],"",<cms:mod type="image" id="1" mode="url" addslashes="true" menuoptions="false" />); $myImage['image'] = <cms:mod type="image" id="1" title="MOD_VALUE[0]" filetypes = "MOD_VALUE[5]" folders = "MOD_VALUE[6]" subfolders ="MOD_VALUE[7]" menuoptions ="MOD_VALUE[8]" addslashes="true" />; $myTplVars['style'] = '{style}'; $myTplVars['desc'] = '{desc}'; $myTplVars['fmtitle'] = '{fmtitle}'; $myTplVars['fmdesc'] = '{fmdesc}'; $myTplVars['filesize'] = '{filesize}'; $myTplVars['imagethumb'] = '{imagethumb}'; $myTplVars['imagename'] = '{imagename}'; $myTplVars['imageurldavelee'] = '{imageurldavelee}'; $myTplVars['image'] = '{image}'; $myTpl = "MOD_VALUE[2]"; $myTpl = str_replace($myTplVars, $myImage, $myTpl); eval('?>'.$myTpl); unset($myTpl, $myTplVars, $myImage); ?> deine ausgabe QUELLTEXT <a href="{imageurldavelee}large/{imagename}" title=" ">{imagethumb}</a> habe das aber nicht getestet, weil das gerade hier im editor entstanden ist |
|
|
Vereinfachte Darstellung | Aktuelles Datum: 27.9.24 - 00:05 |