02.05.2008, 17:06
|
#1 (permalink)
| | PostRank: 4
Registriert seit: 08.05.2006
Beiträge: 265
| WP 2.5 Gallery - Bilder in neuem Fenster öffnen Hallo,
gibt es eine Möglichkeit, die mit [gallery] angezeigten Bilder einer Galerie beim Klick in voller Größe und in einem neuen Fenster zu öffnen?
Grüße, Marcel |
| |
05.05.2008, 09:20
|
#2 (permalink)
| | PostRank: 0
Registriert seit: 21.01.2008
Beiträge: 6
| Hallo,
die selbe Frage!
Ich habe versucht beim Einfügen der Galerie die verschiedenen Einstellungen zu verwenden/speichern. URL: Keine / Datei URL / Artikel- URL (siehe Anhang)
Die verschiedenen URL Einstellungen bleiben wirkungslos, es wird immer Artikel- URL verwendet.
Kann uns jemand weiterhelfen?
Gruss Hansi
__________________
Mac OSX 10.5.2 Mac Pro 2.66 GHz Speicher: 6 GB
|
| |
05.05.2008, 11:07
|
#3 (permalink)
| | WPD-Moderator
Registriert seit: 31.05.2005 Ort: Gera Ghetto
Beiträge: 3.249
| Also ich hatte mal die Stelle im Code angeschaut, wo der Link zu den Bildern erstellt wird, und habe dort keinen Hook gefunden, wo man einhaken könnte mit einem Plugin. Man möge mich korrigieren. |
| |
09.05.2008, 09:51
|
#4 (permalink)
| | PostRank: 0
Registriert seit: 21.01.2008
Beiträge: 6
| --schieb--
Hat noch keiner eine Lösung?
__________________
Mac OSX 10.5.2 Mac Pro 2.66 GHz Speicher: 6 GB
|
| |
09.05.2008, 14:29
|
#5 (permalink)
| | PostRank: 4
Registriert seit: 23.01.2007 Ort: Erlangen
Beiträge: 205
| Man könnte den Filter 'post_gallery' eine eigene Galleriefunktion übergeben die dann auf das Bild in Rohform verweist oder ein eigenes Template o.Ä.
Nachteil ist dass man dann die komplette Gallerieanzeige auch implementieren muss...
Edit: Oder man gibt dem gallery-Shorttag eine neue Funktion (Overriding), das Original in /wp-includes/media.php: Code: add_shortcode('gallery', 'gallery_shortcode');
function gallery_shortcode($attr) {
global $post;
// Allow plugins/themes to override the default gallery template.
$output = apply_filters('post_gallery', '', $attr);
if ( $output != '' )
return $output;
// We're trusting author input, so let's at least make sure it looks like a valid orderby statement
if ( isset( $attr['orderby'] ) ) {
$attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
if ( !$attr['orderby'] )
unset( $attr['orderby'] );
}
extract(shortcode_atts(array(
'orderby' => 'menu_order ASC, ID ASC',
'id' => $post->ID,
'itemtag' => 'dl',
'icontag' => 'dt',
'captiontag' => 'dd',
'columns' => 3,
'size' => 'thumbnail',
), $attr));
$id = intval($id);
$attachments = get_children("post_parent=$id&post_type=attachment&post_mime_type=image&orderby={$orderby}");
if ( empty($attachments) )
return '';
if ( is_feed() ) {
$output = "\n";
foreach ( $attachments as $id => $attachment )
$output .= wp_get_attachment_link($id, $size, true) . "\n";
return $output;
}
$listtag = tag_escape($listtag);
$itemtag = tag_escape($itemtag);
$captiontag = tag_escape($captiontag);
$columns = intval($columns);
$itemwidth = $columns > 0 ? floor(100/$columns) : 100;
$output = apply_filters('gallery_style', "
<style type='text/css'>
.gallery {
margin: auto;
}
.gallery-item {
float: left;
margin-top: 10px;
text-align: center;
width: {$itemwidth}%; }
.gallery img {
border: 2px solid #cfcfcf;
}
.gallery-caption {
margin-left: 0;
}
</style>
<!-- see gallery_shortcode() in wp-includes/media.php -->
<div class='gallery'>");
foreach ( $attachments as $id => $attachment ) {
$link = wp_get_attachment_link($id, $size, true);
$output .= "<{$itemtag} class='gallery-item'>";
$output .= "
<{$icontag} class='gallery-icon'>
$link
</{$icontag}>";
if ( $captiontag && trim($attachment->post_excerpt) ) {
$output .= "
<{$captiontag} class='gallery-caption'>
{$attachment->post_excerpt}
</{$captiontag}>";
}
$output .= "</{$itemtag}>";
if ( $columns > 0 && ++$i % $columns == 0 )
$output .= '<br style="clear: both" />';
}
$output .= "
<br style='clear: both;' />
</div>\n";
return $output;
}
Die Idee ist interessant, soll das Bild an sich im Browserfenster geöffnet werden oder eine Templateseite mit dem Bild als Inhalt? Diese Variante ist für mich auch interessant, vielleicht setze ich mich dran falls Zeit bleibt.
Geändert von cywhale (09.05.2008 um 14:43 Uhr).
|
| |
09.05.2008, 15:41
|
#6 (permalink)
| | PostRank: 0
Registriert seit: 21.01.2008
Beiträge: 6
| Danke!
Ich werde das Skript bei Gelegenheit testen.
Eine "Templateseite mit dem Bild" währe eine tolle Lösung, es müsste nicht ein neues Fenster sein.
Gruss Hansi
__________________
Mac OSX 10.5.2 Mac Pro 2.66 GHz Speicher: 6 GB
|
| |
09.05.2008, 15:46
|
#7 (permalink)
| | PostRank: 4
Registriert seit: 23.01.2007 Ort: Erlangen
Beiträge: 205
| Momeeeent - das oben ist kein 'Script zum testen' sondern ein Auszug des Originalcodes (sh. URL).
Habe gerade etwas rumgespielt, eine Ansicht des grossen Bildes in eigener Unterseite lässt sich so erreichen (WP 2.5+):
- WEnn nicht vorhanden eine templateverzeichnis/image.php anlegen (kopierte single.php)
- Alle unnötigen Ausgaben entfernen (the_content, the_excerpt..., Kommentare, Metadaten,...)
- statt the_content-Ausgabe folgendes einfügen (an gleicher Stelle) Code: <?php echo wp_get_attachment_image( $post->ID, 'large' ); ?>
Da kein Link drumrum ist wird einfach das Bild angezeigt, fertig. Funktioniert in meiner Theme-Screenshot-Gallery gut, jetzt muss ich mich nur noch ums schönere Formatieren kümmern  |
| |
09.05.2008, 16:00
|
#8 (permalink)
| | WPD-Moderator
Registriert seit: 31.05.2005 Ort: Gera Ghetto
Beiträge: 3.249
| Zitat:
Zitat von cywhale Man könnte den Filter 'post_gallery' eine eigene Galleriefunktion übergeben die dann auf das Bild in Rohform verweist oder ein eigenes Template o.Ä. | Das wird IMO nicht viel bringen, da dieser Hook nur das Gallery-"Aussehen" beeinflusst. Der eigentliche Link der Bilder wird mit PHP-Code: wp_get_attachment_link($id, $size, true);
erstelllt. Und diese Funktion hat leider keinen Eingreifpunkt/Hook, sodass man ohne
1. die Kern-Datei zu bearbeiten
2. den gesamten Gallery-Code zu kopieren und bearbeiten zu müssen
den Link wohl derzeit nicht auf "Direktlink zum Bild" umbauen kann. |
| |
09.05.2008, 16:21
|
#9 (permalink)
| | PostRank: 4
Registriert seit: 23.01.2007 Ort: Erlangen
Beiträge: 205
| Ja, wp_get_attachment_url() benutzen (wenn es denn funktioniert, ungetestet) und den obigen Originalcode bearbeiten und als gallery-Shortcode benutzen, das müsste das Ziel 'Grosses Bild als Direktlink' erreichbar machen.
Für meinen Teil bin ich mit dem 'image.php'-Template zur Anzeige des Grossformats recht zufrieden, werde da etwas weiter rumprobieren.
Edit: Alphawolf, gerade gefunden : Plugin API/Filter Reference « WordPress Codex
Da ist ein Filter für 'attachment_link' gelistet.
Geändert von cywhale (09.05.2008 um 17:01 Uhr).
|
| |
09.05.2008, 18:44
|
#10 (permalink)
| | WPD-Moderator
Registriert seit: 31.05.2005 Ort: Gera Ghetto
Beiträge: 3.249
| Zitat:
Zitat von cywhale | Damit lässt sich was anfangen.  Danke dir!
Hier nun ein kleines Plugin, das nun doch die Links der Gallery auf die Vollbild- URL zeigen lässt: PHP-Code: <?php /* Plugin Name: WP Gallery 2.5 Full Image Link Plugin URI: http://forum.wordpress-deutschland.org/konfiguration/34101-wordpress-2-5-gallery-bilder-neuem-fenster-oeffnen.html Description: Link gallery images to full size instead of in their templated view. Version: 0.7 Author: Oliver Schlöbe Author URI: http://www.schloebe.de/ */
function os_wp_gallery_img_full( $link, $id ) { global $post; if( !$id ) $id = (int) $post->ID; $link = wp_get_attachment_url( $id ); return $link; }
add_filter('attachment_link', 'os_wp_gallery_img_full', 500, 2); ?> Im wp- content/plugins - Verzeichnis ein Verzeichnis wp-gallery-img-full anlegen, darin eine Datei wp-gallery-img-full.php erstellen und den obigen Code einfügen. Plugin aktivieren, fertig.
Allerdings bin ich mir nicht ganz sicher, was damit noch alles umgeschrieben wird, da ja zu Attachments neuerdings auch Audio- und flash-Dateien gehören können... wenn möglich mal testen.  |
| | | Themen-Optionen | | | | Ansicht | Linear-Darstellung |
Forumregeln
| Es ist dir nicht erlaubt, neue Themen zu verfassen. Es ist dir nicht erlaubt, auf Beiträge zu antworten. Es ist dir nicht erlaubt, Anhänge hochzuladen. Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten. HTML-Code ist aus. | | | Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 Uhr. | |