| | #1 (permalink) |
| PostRank: 1 ![]() Registriert seit: 27.03.2008
Beiträge: 42
| php / js Frage 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()} 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> 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()" 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;
} Wie mache ich das denn nun, meine Lieben? ![]() Einen sonnigen Tag, su* |
| | |
| | #2 (permalink) |
| PostRank: 5 ![]() Registriert seit: 30.03.2008
Beiträge: 455
| 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. |
| | |
| | #3 (permalink) |
| PostRank: 1 ![]() Registriert seit: 27.03.2008
Beiträge: 42
| 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? |
| | |
| | #4 (permalink) |
| PostRank: 5 ![]() Registriert seit: 30.03.2008
Beiträge: 455
| 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. |
| | |
| | #5 (permalink) |
| PostRank: 1 ![]() Registriert seit: 27.03.2008
Beiträge: 42
| 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: myGallery: Problem mit der Anzeige des Bildtitels... 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! |
| | |
| | #6 (permalink) |
| PostRank: 5 ![]() Registriert seit: 30.03.2008
Beiträge: 455
| 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-Code: <a href="/media/bug.jpg" alt="500|300" title="was auch immer">TEST BILD</a> Wenn das nicht geht bei dir, dann im javascript des Plugins wieder feste Wert weiterhin benutzen. Geändert von codestyling (14.05.2008 um 11:33 Uhr). |
| | |
| | #8 (permalink) |
| PostRank: 5 ![]() Registriert seit: 30.03.2008
Beiträge: 455
| ... 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-Code: <a href="http://www.bmeise.test/media/bug.jpg">Testbild</a> HTML-Code: <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> 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. |
| | |
| | #9 (permalink) |
| PostRank: 1 ![]() Registriert seit: 27.03.2008
Beiträge: 42
| 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> Läuft das bei Dir? Einen schönen Wochenstart, |
| | |
| | #10 (permalink) |
| PostRank: 5 ![]() Registriert seit: 30.03.2008
Beiträge: 455
| Also nun wundere ich mich aber. Wie kommt es denn zu dieser Ausgabe ? Code: href=".../wp-content/uploads/2008/05/test.jpg" 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 ? |
| | |
![]() |
| Themen-Optionen | |
| Ansicht | |
| |