Imagecache richtig konfigurieren?
am 19.11.2006 - 12:29 Uhr in
Ich habe mit CCK einen neuen Inhaltstyp angelegt, klappt wunderbar. Darin enthalten ist ein imagefiled, damit in den Inhalt auch Bilder eingefügt werden können. Ich habe auch Mehrfachauswahl aktiviert, damit mehrere Bilder hinzugefügt werden können. Die Bildgröße ist auf 640x480 beschränkt, so dass die Bilder beim Upload verkleinert werden.
So nun möchte ich aber, dass die Bilder beim Anzeigen als Thumbnail ausgegeben werden und bei Klick größer werden. Dafür habe ich Anleitungen für Imagecache gefunden. Dies habe ich installiert und so eingerichtet wie in einigen Forenthemen bei drupal.org zu lesen ist.
Es funktioniert aber nicht! Imagecache legt seinen Ordner im files Verzeichnis nicht an und generiert auch keine Bilder.
Ich habe auch Clean-URL aktiviert. Die .htacces im files Ordner ist eigentlich auch so wie beschrieben.
Und nun?
- Anmelden oder Registrieren um Kommentare zu schreiben
Ratespiel
am 23.11.2006 - 00:37 Uhr
Servus.
Ich rate mal -- vielleicht sind einfach die Einstellungen in htaccess zu restriktiv und/oder es gibt keinen Schreibzugriff in files/... Also die .htaccess vielleicht mal auf das Wesentliche reduzieren (das ist die erste Zeile) und den rest auskommentieren, und chmod 777 für files einstellen... Ich habe bei gemischtem root und ftp Zugriff auch schon das Problem erzeugt, dass mit root angelegte Verzeichnisse unabhängig von den chmod flags weiterhin unlesbar blieben. Da half dann ein chown und chgrp auf www-data...
Trotzdem herzlichen Dank für den Hinweis, imagecache war mir bislang verborgen geblieben und das verursachte massives Kopfkratzen, wie ich diese Aufgabe lösen könnte. Also werde ich mich in Kürze mit dem Modul herumschlagen -- vielleicht kann ich dann ja was Griffigeres zu deinem Problem vermelden.
Norbert
Bei mir geht's...
am 23.11.2006 - 15:39 Uhr
Servus.
Ich habe mich nun in den imagecache gestürzt und das Dingens ist wirklich das missing link für die Bildverwaltung... Da die Installation ein ziemliches Gewürge war, das ich im Detail nicht schildern mag, versuche ich einen "step-by-step" Faden aus dem Gedächtnis zu protokollieren:
Da imagecache "post faktum" tätig wird, sollten alle Pfade, etc. vor dem Hochladen von Bildern mit imagefield richtig eingestellt sein. Sind sie es nicht, wird die Inbetriebnahme von imagecache ziemlich mühsam...
Damit imagecache sichtbare Ergebnisse produziert, MUSS der im README.TXT aufgeführte Code in einen Node implementiert werden. Da hier ein bisschen unklar ist, wie, ein Fallbeispiel:
Es sei ein CCK Record mit Namen "Artikel" gegeben, darin gibt es ein imagefield "bild".
Ein Preset wurde mit imagecache erstellt, das den Namen "Thumbnail" trägt.
Also ist eine Datei
node-content_artikel.tpl.php
anzulegen -- am einfachsten durch Kopieren der Datei node.tpl.php des Themes.In diese Datei ist an der passenden Stelle der Code für den Aufruf von imagecache einzustellen:
print theme('imagecache', 'Thumbnail', $node->field_bild[0]['filepath']);
Wichtig ist, dass die Einträge und Feldnamen exakt übereinstimmen - ein vergessener Buchstabe oder was auch immer führt zur "nicht Darstellung" oder zur Darstellung des Bildes, das in imagefield abgelegt wurde.
Wie gesagt, ich habe da ziemlich gezaubert, bis das letztlich funktioniert hat, und einige meiner Probleme möchte ich noch schildern, vielleicht hilft es bei der Diagnose:
So, ich glaube, das war's und ich habe nichts übersehen...
Auch wenn das alles ein wenig sperrig klingt, ich finde das Modul super und wenn ich das herkriege, was sich damit an Möglichkeiten eröffnet, sind die meisten Bildprobleme mit Drupal nun keine mehr. Nochmals herzlichen Dank für den Hinweis auf imagecache.
Happy hacking,
Norbert
Da imagecache "post faktum"
am 23.11.2006 - 16:40 Uhr
Da imagecache "post faktum" tätig wird, sollten alle Pfade, etc. vor dem Hochladen von Bildern mit imagefield richtig eingestellt sein.
Kannst du das erläutern?
Also ich schaffe es nicht.Muss ich das imagecache Verzeichnis selbst anlegen? Wann werden die Bilder erzeugt? Bei mir erden die Bilder per imagefield hoch geladen und liegen dann im files Ordner. Aber dann passiert nichts mehr!
Ich lege mein Template mit Contemplate an und im Quelltext wird dann auch an der Stelle eines Bildes im Verzeichnis ein Link angelegt, aber es sind keine Bilder da?
Gruß Florian
Drupal Latein :)
am 23.11.2006 - 18:56 Uhr
Servus!
"post factum" meint, dass so lang nichts passiert, als bis die Bilder abgerufen werden... (Das "Faktum" ist mit dem Hochladen eines Bildes gesetzt). Sprich: wenn im Pfad ein Wurm ist, wird imagecache niemals ein Bild skalieren und speichern können. Das Verzeichnis wird von imagecache angelegt, wenn es richtig konfiguriert ist (da gehört auch der Zugriff auf das files/ Verzeichnis und dessen htaccess dazu). Damit imagecache tätig wird, muss erst eine Seite mit Bildern abgerufen werden. Deshalb "post faktum". Nach dem Hochladen allein ändert sich in der Dateistruktur gar nichts.
Wenn du mit einem Con-Template keine Bilder siehst, hast du wahrscheinlich ein anderes Problem. Ich tippe mal auf ungenügende Rechte beim files/ Verzeichnis (chmod 777 oder 666 sollte angebracht sein). Siehst du Bilder, wenn du einen CCK Record ohne Contemplatisierung aufrufst?
Außerdem musst du die passende Zeile ( print theme (....)) wohl mit der Hand ins Template tippseln, ich nehme nicht an, dass contemplate das richtig macht...
Frohes Schaffen,
Norbert
<div class="field
am 23.11.2006 - 19:45 Uhr
<div class="field field-type-image field-field-einsatzbilder">
<h3 class="field-label">Einsatzbilder</h3>
<div class="field-items">
<?php foreach ((array)$field_einsatzbilder as $item) { ?>
<div class="field-item"><?php
print theme('imagecache', 'einsatzbilder', $field_einsatzbilder[0]['files']);?></div>
<?php } ?>
</div>
</div>
So sieht mein code im Con-Template aus. Ist daran etwas grundlegendes falsch?
Ich habe echt alles überprüft, aber es geht nicht. Ich verzweifel noch.
Danke
Gruß Florian
Ich habe es geschafft. Wie
am 23.11.2006 - 21:30 Uhr
Ich habe es geschafft. Wie im vorigen Post zu sehen, habe ich gedacht, ich müsste "filepath" gegen "files" austauschen, wo ja meine Bilder abgespeichert werden. Aber filepath bleibt so, wie es ist. Also ich bekomme nun den Thumbnail angezeigt.
Nun aber, wie sieht es aus, wenn ich auf das große Bild verlinken will?
Wie kann ich dem von Imagecache erzeugtem Bild den Title und Alt hinzufügen?
Gruß Florian
Links und so
am 24.11.2006 - 02:13 Uhr
Servus.
Es freut mich, dass es auch bei dir klappt. Das mit dem Link stelle ich mir derzeit (ohne es probiert zu haben) etwa so vor: Das Originalbild heißt ja gleich wie der Thumbnail, liegt nur im Verzeichnis "files". Also ist es keine große Aktion, den Dateinamen aus dem Pfad zum Bild zu lösen, ein "files/" davor zu stellen und fertig ist der Link. Daraus kann man sich per PHP den Code für ein Pop-Up Window basteln und fertig ist der Brei.
Im selben a tag kann man sich im selben Sinn aus dem Titel den Alt und Title Text generieren...
Da ich mich mit demselben Problem in einer Liste herumschlage (ein View listet Einträge mit Thumbnails, ein Klick auf die Thumbs öffnet die entsprechende Seite mit dem CCK Record, dort können noch mehr Bilder liegen, als Thumbnails in mittlerer Größe, die per Klick gezeigt werden sollen), werde ich da in Kürze handfesteren Code bieten können -- derzeit habe ich gerade wieder einen Expressfall reinbekommen, da steht die Codiererei leider wieder bis morgen abend...
Bin gespannt auf deine Ansätze,
Norbert
So, jetzt habe ich mich mal
am 24.11.2006 - 19:46 Uhr
So, jetzt habe ich mich mal damit beschäftigt. Zusammenfassend möchte ich jetzt nochmal alles auflisten.
Ich habe einen Inhaltstyp mit CCK angelegt. Hier ist auch ein Imagefield mit dabei. Es können beim Anlegen des Inhaltstypes mehrere Bilder hoch geladen werden. Die Bildgröße zu Hochladen habe ich dem Imagefield auf 640x480 begrenzt. Weiter nutze ich das Con-Template zum anlegen benutzerdefinierter Templates für die eigenen Inhaltstypen.
Da ich aber beim Anzeigen des Inhaltstyps die Bilder nicht so groß angezeigt bekommen möchte, habe ich Imagecache installiert, welches mit Imagefield zusammen arbeitet. Wie oben zu lesen, ist es nicht ganz so einfach Imagecach mit Imagefield zum Laufen zu bringen, aber es funktioniert.
Als ich jetzt die Thumbnails von Imagecache produziert in meinem Inhalt gesehen habe, habe ich mir aber gedacht, es wäre schön, wenn das Bild in 640x480 angezeigt wird, wenn auf den Thumbnail geklickt wird.
Damit das optisch auch ganz schön aussieht, habe ich gedacht, warum nicht Lightbox.
Also Lightbox Modul installiert und den Code über die Con-Template Oberfläche abgeändert und nach ein wenig Probieren, es funktioniert!
Anbei der Code aus meinem con-Template für meinen Inhaltstyp.Sicherlich könnte das PHP schöner sein, aber es funktioniert!
<div class="field field-type-image field-field-einsatzbilder">
<h3 class="field-label">Einsatzbilder</h3>
<div class="field-items">
<?php foreach ((array)$field_einsatzbilder as $item) { ?>
<a href="/<?php print '/files/'; print $item ['filename']; ?>" rel="lightbox[<?php print $field_einsatznummer ?>]" title="<?php print $item ['title']?>">
<div class="field-item" style="display:inline; margin:5px;">
<?php print theme('imagecache', 'einsatzbilder', $item ['filepath']);?>
</div>
</a>
<?php } ?>
</div>
</div>
Für Fragen oder Verbesserungsvorschläge bin ich immer offen.
Euer Baumeister
Gruß Florian