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