Back to top

Autore Topic: target _blank  (Letto 3330 volte)

sampo

  • Visitatore
target _blank
« il: 07 Gen 2010, 10:35:25 »
salve a tutti. come ben saprete nella dtd strict l'attributo target è deprecato. ho provato alcune soluzioni alternative:
- onclick="return ! window.open(this.href);" (funziona, ma chiaramente non con IE...)
- http://articles.sitepoint.com/article/standards-compliant-world/3
la seconda mi sembrava la migliore... ma non mi funziona! perchè?? aiutatemi per favore, anche con ulteriori alternative :)
grazie in anticipo a tutti

Offline dalziani

  • Nuovo arrivato
  • *
  • Post: 28
  • Sesso: Maschio
    • Mostra profilo
Re:target _blank
« Risposta #1 il: 07 Gen 2010, 12:55:51 »
Ciao Sampo,

io ho sperimentato una procedura, un tantino complicata ma logica (non sono programmatore e ci sono riuscito).

Questa procedura si applica al modulo mod_banner e prevede un override del file default.php e del file funzione helper.php.

La spiegazione è lunga e apparentemente complessa, non so se possa essere gradita e se la gestione del Forum consigli l'inserimento di risposte lunghe e con molto codice.

Oppure possiamo vedere quale modulo vuoi modificare, potrebbe essere più semplice.

Un caro saluto

Francesco

Offline dalziani

  • Nuovo arrivato
  • *
  • Post: 28
  • Sesso: Maschio
    • Mostra profilo
Io mi sa che la post_o
« Risposta #2 il: 07 Gen 2010, 20:04:24 »
Ciao Sampo,

per eliminare l'apertura della pagina in una nuova finestra puoi fare un override del file funzione.

Ti riporto la procedura che ho usato per il modulo banner:

puoi creare all'interno della cartella Html del tuo template una cartella dal nome mod_banners, il contenuto della quale andrà a sostituire il codice (attualmente usato da Joomla) dei file della cartella originale del core modules/mod_banners.
All'interno di questa nuova cartella devi inserire:
- una copia del file default.php della cartella tmpl del core;
- una copia dell'originale helper.php;
- una copia di index.html.

Questi due file interagiranno: default.php darà la formattazione, helper.php conterrà la funzione modificata nel senso di eliminare l'apertura della nuova finestra.

Puoi rinominare helper.php in noBlank_helper.php.
Aprilo e sostituisci il nome della classe modBannersHelper in modBannersHelperNoBlank.
Adesso devi eliminare la funzione condizionale che fa aprire la pgina in una nuova finestra: sostituisci il blocco
----------------------------------------------------------------------------------------
else if (BannerHelper::isImage( $item->imageurl ))
      {
         $image    = '<img src="'.$baseurl.'images/banners/'.$item->imageurl.'" alt="'.JText::_('Banner').'" />';
         if ($item->clickurl)
         {
            switch ($params->get( 'target', 1 ))
            {
               // cases are slightly different
               case 1:
                  // open in a new window
                  $a = '<a href="'. $link .'" target="_blank">';
                  break;

               case 2:
                  // open in a popup window
                  $a = "<a href=\"javascript:void window.open('". $link ."', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550'); return false\">";
                  break;

               default:   // formerly case 2
                  // open in parent window
                  $a = '<a href="'. $link .'">';
                  break;
               }

            $html = $a . $image . '[/url]';
         }
         else
         {
            $html = $image;
         }
      }
-------------------------------------------------------------------------------------------

con il blocco
-------------------------------------------------------------------------------------------

else if (BannerHelper::isImage( $item->imageurl ))
      {
         $image    = '<img src="'.$baseurl.'images/banners/'.$item->imageurl.'" alt="'.JText::_('Banner').'" />';
         if ($item->clickurl)
         {
            $a = '<a href="'. $link .'">';
            $html = $a . $image . '[/url]';
         }
         else
         {
            $html = $image;
         }
      }
--------------------------------------------------------------------------------------------

Chiudilo pure.

Apri default.php e all'inizio del codice inserisci un richiamo al nuovo file funzione:
<?php
require_once dirname(__FILE__). '/noBlank_helper.php';
?>
Poi cerca la funzione echo modBannersHelper e sostituisci il nome in echo modBannersHelperNoBlank.
Chiudi pure default.php.

Spedisci la cartella mod_banner con i tre file
- default.php,
- noBlank_helper.php,
- index.html
all'interno della cartella Html del tuo template e dovrebbe funzionare.

Un caro saluto

Francesco

 



Web Design Bolzano Kreatif