• Hi.
    Ist wohl das falsche Board, aber hier kann mir bestimmt jemand helfen. :)

    Es gibt da dieses JS:

    Code
    var win=null;
    function NewWindow(mypage,myname,w,h,scroll,pos){
    if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
    if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
    else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
    settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
    win=window.open(mypage,myname,settings);
    if(win.focus){win.focus();}}
    function CloseNewWin(){if(win!=null && win.open)win.close()}

    Der Code, um ein Popup zu öffnen sieht z.B. so aus:

    Code
    <a href="test/test.jpg" onclick="NewWindow(this.href,'image','850','578','yes','center');return false" onfocus="this.blur()"  name="image" alt="image">test</a>

    Funktioniert wunderbar.
    Nun möchte ich das automatisiert auf alle Links anwenden, die auf ein Bild verweisen. Dazu habe ich mir ein Plugin geschnappt, welches eigentlich nur das rel="lightbox" Attribut hinzufügt und anstelle dessen versucht das

    Code
    onclick="NewWindow(this.href,'image','850','578','yes','center');return false" onfocus="this.blur()"

    einzusetzen.

    so, z.B.

    Code
    add_filter('the_content', 'addlightboxrel_replace');
    function addlightboxrel_replace ($content)
    {   global $post;
    	$pattern = "/<a(.*?)href=('|\")([^>]*).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>(.*?)<\/a>/i";
        $replacement = '<a$1href=$2$3.$4$5 onclick="NewWindow(this.href,image,850,578,yes,center);return false" onfocus="this.blur()" name="image" alt="image">$7</a>';
        $content = preg_replace($pattern, $replacement, $content);
        $content = str_replace("%LIGHTID%", $post->ID, $content);
        return $content;
    }

    Behalte ich die ' ' bei image, 850, usw drin gibt es einen php Error, nehme ich sie raus, so wie oben zu sehen, oder ersetze sie durch " " passiert leider nichts.

    Wie mache ich das denn nun, meine Lieben? :confused:

    Einen sonnigen Tag,
    su*

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo,

    es gibt da einige Möglichkeiten, das zu automatisieren. Da du sowieso Javascript voraussetzt, ist es unnötiger Rechenaufwand, die Fenster auf dem Server reincodieren zu lassen. Das kann auch ein weiteres Script auf dem Client erledigen und verringert deine Serverbeanspruchung.

    Allerdings müsste man wissen, ob du immer nur jpg oder auch andere Bildformate benutzt, welche WP Version du einsetzt und ob das für alle <a> gilt, deren href auf ein Bild verweist.

    Der Vorteil in clientseitigen Bearbeitung (per Script) liegt in der weiterhin gegebenen Validierung und für Leute, die kein Javascript angeschaltet haben, in der Benutzung der Links, die dann trotzdem funktionieren sollten (könnte man ja noch einen target='_blank' reinmachen).

    Du kannst die o.g. Informationen hier posten oder mir eine PM schicken, dann kann ich dir die max. 10 Zeilen JS Code anpassen und bereitstellen.

  • hi!
    ich habe es jetzt zwar hinbekommen, das o.g. script läuft, aber wenn du noch eine bessere Lösung weisst, dann immer her damit! :)

    Hier die Infos:
    - wp: 2.5.1
    - jpg, gif, png
    - alle a innerhalb des contents

    Zwei Fragen: bekommst Du es auch hin, dass das Popup genausogroß wie das zu öffnende Bild ist? Und kannst Du dem Popup auch css styles zuweisen?

    :) s.

  • Bei diesen Zusatzwünschen und möglichen Blockierung der Popup Windows durch Popup Blocker, wäre es vermutlich eine bessere Option, eines der Plugins zu verwenden, die Bilder in div overlays darstellen.
    So was wie Gallery Plugins usw.

    Ich selbst benutze diese Plugins allerdings nicht, denn ich habe keine Gallerien. Allenfalls ein Bild, das ich gezoomed in einem div als Overlay haben will. Dafür hab ich eigene Scripts, die allerdings etwas Ballast mit sich bringen, denn das ist nicht das Einzige, was ich mit Scripts mache.

    Wenn du dennoch auf der window.open( Variante bestehts, dann kann ich dir das Script bereitstellen. Aber Freude macht das dann den Besuchern deiner Seite nicht, denn der Popup Blocker wird da u.U. eingreifen.

  • Danke für die schnelle Antwort! :)

    Leider kann ich keine Lightbox o.ä. benutzen, da der Blog in einem Iframe (ja, muss so, leider) läuft. Dazu gibt es auch schon einen Thread: http://forum.wordpress-deutschland.org/plugins-und-wi…html#post165757

    Bin jetzt mit popups auch ganz zufrieden und finde sie auch hinsichtlich der großen Verbreitung von Lightbox und co. schon wieder ganz cool.

    Würde also bei win.open bleiben wollen, ja.
    Aber Danke für den Tipp! :)

  • Anbei ein kleines Plugin (kannst je gern umbenennen), das alle Links in einer Seite, deren href auf png | jpg | gif enden, in einem Popup darstellen.
    Um die Größen korrekt automatisch zu ermitteln, müsste ich mehr Zeit reinstecken in die Entwicklung, wäre aber machbar.

    In dieser Version ist deshalb die Größe der Öffnung halbautomatisch:

    HTML
    <a href="/media/bug.jpg" alt="500|300" title="was auch immer">TEST BILD</a>

    Im alt Attribute musst du Breite und Höhe als erstes mit | getrennt angeben, dann wird das Fenster in dieser Größe geöffnet.
    Wenn das nicht geht bei dir, dann im javascript des Plugins wieder feste Wert weiterhin benutzen.

  • ... Anhang geupdated, jetzt sollte es auch automatisch die richtigen Größen als alt Attribute in die <a> Tags reinschreiben.
    Also nun braucht's nur so zu sein:

    HTML
    <a href="http://www.bmeise.test/media/bug.jpg">Testbild</a>

    und daraus macht das Plugin dann:

    HTML
    <a title="Bugfix: WordPress 2.3.3 und TinyMCE 2.1.1.1" alt="300|200" name="image" href="http://www.bmeise.test/media/bug.jpg">Testbild</a>

    Der Title des Bildes ist dann zusätzlich der Post Title, wenn du das nicht möchtest, nimms raus.
    Ist so konzipiert, das es auch mit relativen URI Angaben zurechtkommen sollte, hängt aber im Einzelfall davon ab, woher die Bilder kommen, ob es dann auch geht.

  • Gerade getestet. (OS X - FF, Safari, Opera, jeweils neueste Verision)
    Leider führt das Popup zu einem 404. :(

    Der Code, der im Frontend generiert wird, sieht so aus:

    Code
    <a href=".../wp-content/uploads/2008/05/test.jpg" name="image" alt="850|580" title="Bild Test"><img class="alignnone size-medium wp-image-14" title="lykke-li1" src=".../wp-content/uploads/2008/05/test-500x341.jpg" alt="" width="500" height="341" /></a>

    Geändert habe ich nichts ausser, dass ich das Plugin und die Dateien von Susanne81 in img_popup umbenannt habe. ;) (Ebenfalls in der php Zeile 31)

    Läuft das bei Dir?

    Einen schönen Wochenstart,
    :) die su*

  • Also nun wundere ich mich aber.
    Wie kommt es denn zu dieser Ausgabe ?

    Code
    href=".../wp-content/uploads/2008/05/test.jpg"

    Dies ist keine gültige, relative Angabe für das Bild. 2 Punkte würde ich ja noch verstehen, aber wie kommt es zu 3 Punkten ?
    Es ist dadurch natürlich nicht möglich, das Bild zu finden und somit kommt ein 404. Werden die Bilder mit einem anderen Plugin in den Post integriert oder schreibst du das selbst in den Post ?

  • :) Nein, da steht natürlich http://www.domain.xy anstelle der Punkte. Die habe ich nur rausgenommen und durch die Punkte ersetzt, weil das ein privates Projekt von mir ist, was jetzt noch nicht öffentlich zu sehen sein sollte.

    Die Bilder füge ich mit dem WP 2.5.1 eigenen Bilduploader ein. Dazu habe ich keine eigenes Plugin verwendet. Nur das "No Flash" Plugin, was aber dazu keine Relevanz haben sollte, oder?

    Die Bilder werden von WP automatisch kleinerskaliert, jedoch erkennt dein Plugin korrekt die Originalgröße wie man am alt-tag sehen kann.

    :confused: s.

  • Vielleicht sollte ich noch erwähnen, dass die URL des Bildes ansich korrekt ist. Dort liegt in der Tat das große Bild, welches sich im Popup öffnen soll. Gibt man die URL direkt in die Adresszeile ein, wird man korrekt dorthingeführt.
    Nur bei Klick auf den Link im Blog öffnet sich ein neues Fenster mit 404.
    Vielleicht hilft dir das ja... ;)

  • Wie schon gesagt, es ist schwierig rauszufinden, was nicht geht, wenn man's nicht testen kann.
    Ich meinte damit, ob die Zugriffe auf deine Domain direkt stattfinden, weil sie deine ist, oder ob die so gehostet ist, das die Anfragen erstmal woanders hin gehen und dann an deine Domain weitergeleitet werden.

    "Ist ein bischen so wie halt mal den Finger zu Fenster raus und sag mir, wie dunkel es draussen ist." :mrgreen:

  • Achso. hihi. :)
    Nein. Die Zugriffe sind alle innerhalb meiner Domain.
    Es handelt sich nur um Bilder, die ich auf meinen Webspace und nur direkt über Wordpress hochlade und keine Bilder, die auf Marions Kochbuch liegen. ;)

  • Also, ich hab das Quickplugin nochmal getestet und es funktioniert auf meinen Testblogs so wie es sollte.
    Getestet hab ich das mit IE7 / Opera / FireFox und Safari für Windows.
    Da es nicht durch den HTML Validator ging, hab ich statt alt= nun rel= genommen, sorry, hab nicht dran gedacht, das es nur ein <a> und kein <img> ist.

    Als Anhang die getestete und validierte Variante nochmal, ich bekomme kein 404'er, weiss nicht wie du das machts.

  • Ich benutz WordPress "out of the box", will heißen, so wie es in Version 2.5.1 kommt in de_DE. Also auch mit flash uploader.
    Aber mit oder ohne Flash hat da keinen Einfluß, es stimmt irgendwas nicht bei der Abfrage der Bilder am Server.
    Ohne eine Live Ansicht (das ich die Anfragen/Antworten) prüfen kann, sind mir die Hände gebunden, leider. :cry:

  • Also bei mir funzt es auch übrigens. :)

    Wäre vllt mal interessant zu wissen, ob das Popup in der Größe des zu verlinkenden Bildes öffnet. Wenn es das nicht tut, wird die Pfadangabe wohl falsch geschrieben:

    PHP
    $img_file = ABSPATH."/".$img_file;

    Was mir daher noch in den Sinn kommen könnte, ist die Angabe der URL des Blogs:

    PHP
    $img_file = str_replace(get_option( 'siteurl' ), "", $img_file);


    vielleicht mal ersetzen mit

    PHP
    $img_file = str_replace(get_bloginfo( 'url' ), "", $img_file);


    oder

    PHP
    $img_file = str_replace(get_bloginfo( 'wpurl' ), "", $img_file);


    Vllt hat Susanne81 verschiedene URLs für Website- und Blog-URL angegeben...

    wpseek.com - Die WordPress-Code-Suchmaschine

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!