![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
Hi. Ich häng hier an einem Entwurfs-Problem und probier das mal zu schildern: Es geht um das einbetten von Bildern in einem Content-Management-System. Um Bilder in einer Komponente einzubetten, wird das Bild-Objekt unter der Angabe einer Bild-Klasse an ein Widget (Image oder Thumbnail) übergeben. Eine Bild-Klasse ist dabei keine PHP-Klasse, sondern im Wesentlichen einfach eine Definition, wie hoch und wie breit das Bild maximal sein darf. Um das Bild dann anzusprechen, wird ein Request mit der Angabe der Klasse an den Server geschickt. Dieser gibt das Bild entweder direkt aus (falls es im öffentlich zugänglichen Cache liegt) oder skaliert das Bild entsprechend runter und gibt es dann aus (und speichert es ggf. in den Cache). Mein Problem ist nun, dass ich gewährleisten möchte, dass Bilder nur in den Klassen gecached bzw. angezeigt werden, in denen sie im Template angewiesen werden. Konkret: Ich hab ein öffentlich lesbares Bild "xzy.jpg", dass in einem Template als Bild der Klasse "header_image" ausgespuckt wird. Jetzt gibt es aber noch weitere Bild-Klassen, wie fullsize, news_thumb. Zusätzlich gibt es die Option, ein Bild mit der direkten Angabe der Maximal-Maße, also ohne Klasse auszuspucken. Der Aufruf erfolgt dann über example.com/image.display/header_image/xyz.jpg Nun will ich verhindern, dass bei einem der folgenden Aufrufe das Bild entsprechend runterskaliert und angezeigt wird: example.com/image.display/news_thumb/xyz.jpg example.com/image.display/700x400/xyz.jpg etc. Das Problem ist, dass in den Views, genauer die Templates enschieden wird, in welche Klasser bzw. mit welchen Maximal-Maßen ein Bild ausgegeben werden soll, ich aber eigentlich nicht z.B. aus dem Widget heraus in die Datenbank schreiben möchte: Bild xyz.jpg wurde in der und der Klasse oder mit den und den Maximal-Maßen in der und der Komponente eingebunden. Könnt ihr was damit anfangen, habt ihr schonmal ein ähnliches Problem gehabt und wie habt ihr es gelöst? Widgets sollten nicht auf die Datenbank zugreifen, Views höchstens read-only, aber nur die Views/Widgets wissen, wie ein Bild dargestellt werden soll und muss diese Information eigentlich an das System/die Datenbank weitergeben. Session (z.B. Challenge-IDs) ist kein Weg, da die Bilder fixe URIs brauchen, um extern verlinkt werden zu können. Würdet ihr den Widget DB-Access geben oder vielleicht Observer einklinken? Hoffe, dass sich da jemand eindenken kann und seine Anregungen oder Erfahrungen mit mir teilt. Einen sonnigen Tag wünscht der Basti |
| | |
| | Nach oben #2 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
Ich sehe hier gerade keinen "bearbeiten"-Button, von daher noch ein klener Nachtrag: Der Sinn und Zweck, diese Requests zu verhindern liegt natürlich darin, mir nicht die Platte zuzuballern: PHP-Code: Basti |
| | |
| | Nach oben #3 | |
| Jann Hendrik Bekaan Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.214
| Zitat:
Das ist jedenfalls mein Eindruck, darum würde ich dann eher dazu tendieren die Bilder mehrfach als echten thumb auf die Platte zu packen, was im übrigen auch den traffic veringert.
__________________ Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! | |
| | |
| | Nach oben #4 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
Das mach ich ja auch so. Eben darum gehts ja auch, sonst würde ich das Bild immer in Originalgröße ausspucken und es wäre kein Problem, dass die Templates hier entscheiden, wie groß das eingebunden wird. Aber klar, der Ansatz ist Käse und den kann (und will) ich nicht verkaufen. Ich werde das jetzt irgendwie mit Observern lösen, die die Widgets beobachten und sich vielleicht bei der Widget-Factory anmelden. Ich denke, das wird sich auch gut machen, um Links zu beobachten und ggf. auch später ein differenzierendes Cacheing einzubauen. Wie genau, weiß ich allerdings noch nicht - werds erstmal irgendwie zusammenschustern und dann sehen, wohin es sich entwickeln will. Basti |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem bei Verarbeitung von Templates (Eigene Klassen) | dago | PHP-Programmierung | 21 | 31.08.2006 16:02 |
| performanceprobleme wegen zu großer datenbank? | *the_rob* | PHP-Programmierung | 31 | 26.06.2006 17:02 |
| welche Datenbank - Datentyp für Dateien | risa | Datenbanken | 5 | 01.12.2005 15:17 |
| Datenbank und Sicherheit | sparrow | Datenbanken | 23 | 05.11.2005 17:45 |
| Datenbank Verwaltung | taskin73 | Datenbanken | 7 | 30.07.2005 17:07 |