Frage zum Image Modul.
Eingetragen von Alavin (100)
am 29.08.2006 - 16:36 Uhr in
am 29.08.2006 - 16:36 Uhr in
Weiß jemand eine Möglichkeit das Image Modul so anzupassen, das wenn ich in einer
Gallerie ein Originalbild anzeige, es mir in einem neuen Fenster angezeigt wird ?
Ich habe das problem das mir sonst das Layout der Seite immer auseinander geschoben wird.
Plz Hilfe ^^
- Anmelden oder Registrieren um Kommentare zu schreiben
Weiß da niemand weiter ????
am 31.08.2006 - 02:28 Uhr
Weiß da niemand weiter ????
Leider kein triviales Problem
am 31.08.2006 - 12:58 Uhr
Drupal geht mit den Originalbildern wirklich komisch um. Die Benutzer gehen meist davon aus, dass das Originalbild in einem neuen Fenster angezeigt wird. Wenn man nun nichts am Quellcode des Moduls - und das sollte man nicht - ändern will, muss man das Drupal Theming benutzen.
Wir wollen das vom Modul generierte HTML des Links "Original" ändern.
Dazu müssen wir die Drupal 'themeable' Funktion 'theme_links' überschreiben.
Zuerst fügen wir der Datei template.php (falls diese noch nicht existiert, muss sie neu erstellt werden) folgenden Code hinzu:
<?php
function phptemplate_links($links = array(), $delimiter = ' | ') {
return _phptemplate_callback('links', array('links' => $links, 'delimiter' => $delimiter));
}
?>
Dann erzeugen wir eine Datei 'links.tpl.php'. Beide Dateien müssen im Ordner des benutzten Themes liegen. Ein erster Ansatz zur Lösung des Problems könnte so aussehen:
<?php
foreach ( $links as $lnk ) {
$key = strstr($lnk, 'original'); // wenn der Link anders heisst , entsprechend ändern
if ($key !== FALSE) {
$link = str_replace('<a ', "<a target=\"_blank\" ", $lnk);
print " " . $link ;
}
else {
print " " .$lnk;
}
}
?>
Wie gesagt, dass ist nur ein erster Lösungsansatz, der noch nicht viel bringt. Jetzt wird ja nur der komplette Node in einem neuen Fenster geöffnet. Das leigt u.A. daran, dass das Image Modul Bilder in allen Ausprägungen als Node behandelt.
Aber der Code zeigt die grundsätzliche Vorgehensweise.
Weitere Schritte wären:
- ermitteln der Bildquelle
- href entprechend ändern
- mit JS ein Popup-Fenster mit der Größe des Bildes erstellen
Vielleicht hat ja jemand Lust an der Lösung dieses Problems mitzuarbeiten. Oder auch einen anderen Ansatz. Ich glaube, dass es ein häufiger Wunsch ist, Bilder in einem neuen Fenster anzuzeigen.
Ich mach mir natürlich auch weiter Gedanken.
md - drupalcenter
-----------------
www.mdwp.de
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Supi
am 31.08.2006 - 14:00 Uhr
Ich bin leider nur nicht so der PHP Freak und kann da selber wenig machen, aber es finden sich bestimmt mehrere Nutzer die
das gleiche Problem haben.
Gallerie Links themen
am 03.09.2006 - 15:19 Uhr
Ich hab eine Möglichkeit gefunden, die leider ein gravierendes Problem hat.
Folgender Code 'erkennt' das Bild und schreibt den Link um.
<?php
$result = db_query("SELECT filename, filepath FROM {files} WHERE nid=%d", arg(1));
$node->images = array();
while ($file = db_fetch_object($result)) {
$node->images[$file->filename] = $file->filepath;
}
foreach ( $links as $lnk ) {
$key = strstr($lnk, 'original'); // wenn der Link anders heisst , entsprechend ändern
if ($key !== FALSE) {
$src = $node->images['_original'];
//$img = str_replace('node','files',$src);
//$link = str_replace('<a ', "<a target=\"_blank\" ", $lnk);
// $link = "<a href=\"$src\" target=\"_blank\">Original</a>";
//$img = str_replace('node','files',$link);
print "<a href=\"files/$src\" target=\"_blank\"> Original</a>";
}
else {
print " " .$lnk;
}
}
?>
Damit könnte alles erledigt sein, wäre da nicht folgender Haken.
Dieser Link wird generiert: node/files/images/kinderkunst_klein12.jpg
Der ist leider falsch. 'node' gehört da nicht hin. Steht aber wie man unschwer sehen kann nicht im Code. Kommt also aus dem image.modul und zwar nach dem hier. Und das ist das Problem. So wie ich es sehe bekommt man 'node' nicht raus ohne an den Code des image Moduls zu gehen.
Oder hat jemand eine Idee. Wäre sonst eine gute Sache für Bildgallerien mit großen Bildern.
md - drupalcenter
-----------------
www.mdwp.de
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Lightbox2
am 15.09.2006 - 08:26 Uhr
Hey, bisschen spaet zwar, aber vielleicht hilfts:
Ich hatte vor kurzem dasselbe problem, und versteh eigentlich ueberhaupt nicht
wieso es bei dem Modul nur diese eine Möglichkeit gibt, da ja das Layout dadurch
komplett zerstört wird.
Ich verwende jetzt das Modul Lightbox2 (http://drupal.org/project/lightbox2) da werden
die Bilder (mit img_assist eingefuegt) in einem Layer ueber der Seite angezeigt, was mir
ziemlich gut gefaellt.
gruss,
Christoph
Lightbox
am 18.09.2006 - 10:22 Uhr
Also ich habe das lightbox modul und wenn du thumbnails anklickst werden die on einem neuen fenster geöffnet. was aber keine wirklich neuen fenster sind. kannst du unter http://www.caw-webdesign.com anschauen
C.A.W. Webdesign
Re: Lightbox
am 18.09.2006 - 12:43 Uhr
Also ich habe das lightbox modul und wenn du thumbnails anklickst werden die on einem neuen fenster geöffnet. was aber keine wirklich neuen fenster sind. kannst du unter http://www.caw-webdesign.com anschauen
Ich seh da kein neues Fenster wenn du das "Original" anklickst,
sondern es schiebt dir dein Layout in die Breite. (;
http://www.caw-webdesign.com/de/node/108?size=_original
du sollst ja auch das
am 18.09.2006 - 15:23 Uhr
du sollst ja auch das thumbnail anklicken! und nicht unten die links mit den verschiedenen größen!
C.A.W. Webdesign