3.x/Koppelingen in nieuw venster

Uit phpBB.nl Wiki
Ga naar: navigatie, zoeken

Bron: Links in New Window door CyberAlien

In phpBB3's prosilver stijl openen alle koppelingen (links) in hetzelfde venster. Hier lees je waarom dit zo is, en hoe je het eventueel kunt veranderen.

Waarom openen links in hetzelfde venster

Hier is bewust voor gekozen. De ontwerpers van prosilver hebben zich aan de richtlijnen voor XHTML 1.0 strict gehouden, dit zijn regels opgesteld door het World Wide Web Consortium. XHTML is vrijwel hetzelfde als gewone HTML, maar wordt ook begrepen door XML browsers. Om dat XML browsers heel strikt zijn zullen deze een foutmelding opleveren wanneer de code niet precies volgens de richtlijnen is geschreven.

Is dat erg? Niet echt. Vrijwel iedereen surft op het internet met een browser die ouderwetse HTML prima begrijpt. Mogelijk zal XML in de toekomst HTML gaan verdringen, maar zeker niet in de komende jaren.

Oplossing

Door het attribuut 'target="_blank"' op te nemen in HTML-tag <a> voor verwijzingen, openen de koppelingen voortaan in een nieuw venster. Door deze aanpassing is de code dus niet meer XHTML 1.0 strict.

Je kan verwijzingen ook zonder aanpassing in een nieuw venster openen met shift+klik. Als je een browser met tabbladen gebruikt, kun je met Ctrl+Klik of muiswielklik een pagina in een nieuw tabblad openen. Op deze manier leg je de keuze bij de gebruiker, die zich vaak irriteert aan nieuwe vensters die openen zonder dat hij of zij daar om vraagt!

Code wijzigingen

Door deze wijzigingen in de HTML en PHP code door te voeren zullen koppelingen voortaan automatisch in een nieuw venster openen.

Forums met type=link

Zoek in styles/prosilver/template/forumlist_body.html naar deze regel:

  <a href="{forumrow.U_VIEWFORUM}" class="forumtitle"> 

..en vervang deze met dit:

  <a href="{forumrow.U_VIEWFORUM}" class="forumtitle" target="_blank"> 

Links in berichten

Zoek in styles/prosilver/template/bbcode.html naar deze regel:

  <a href="{URL}" class="postlink">{DESCRIPTION}</a> 

..en vervang deze met dit:

  <a href="{URL}" class="postlink" target="_blank">{DESCRIPTION}</a>  

Zoek vervolgens in includes/functions.php naar deze regel (rond regel 2704):

  $html    = "$whitespace<a$class href=\"$url\">$text</a>$append"; 

..en vervang deze met dit:

  $html    = "$whitespace<a$class href=\"$url\" target=\"_blank\">$text</a>$append";

Alternatief met JavaScript

Je kan ook JavaScript gebruiken om koppelingen in een nieuw venster te openen, zo blijft de code volledig XHTML 1.0 strikt. De gebruiker moet JavaScript wel aan hebben staan, maar dat is in 99,9% van de gevallen ook wel zo.

Deze code heb je dan niet nodig:

  target="_blank"

Maar vervang in de hierboven aangegeven regels dit:

  <a href="[URL]"
  <a href=\"[URL]\"

..met dit:

  <a href="javascript: window.open('[URL]'"
  <a href=\"javascript: window.open('[URL]'\"