Come aprire una nuova tab di un menù via php/javascript
Inviato: 14 mar 2020, 15:51
Mi è capitato, quando utilizzo un menù che apre le applicazioni come tab, di voler aprire una nuova tab con un'applicazione ma non potendo usare il link standard di SC.
Guardando il codice ho visto che funzione chiamare per farlo in javascript, quindi per esempio se in una grid ho un campo di testo che voglio trasformare come link ad altra applicazione ma come nuovo tab del menù potrò fare:
nell'evento onScriptInit metto il codice della funzione javascript, in questo caso l'unico parametro è l'id della missione.
nell'evento OnRecord trasformo il campo testo dell'idmissione in un link passando l'id stesso come parametro:
la funzione js non fa altro che prendere la finestra top (se c'è il menù aperto è quella) e prendo il puntatore alla funzione createIframe, se è una funzione allora è il menù e quindi chiamo quella funzione per creare il nuovo tab con i vari parametri, altrimenti apre il link con una banale nuova finestra del browser.
Cosa significano i vari parametri della funzione:
str_id: stringa che identifica il tab, se si apre un tab con un certo id, se si chiama la funzione con lo stesso id, viene rimpiazzato il link dello stesso tab
str_label: testo che deve comparire come titolo del tab
str_hint: Testo di suggerimento quando si mette il cursore sul titolo del tab
str_img_on: filename dell'immagine quando il tab è attivo
str_img_off: filename dell'immagine quando il tab è non attivo
str_link: url dell'iframe dell'applicazione o altro che voglio visualizzare (comprensivo di eventuali parametri dopo ?)
tp_apl: tipo applicazione (es form, grid), serve nel caso non si specificano le immagini attivo/disattivo per selezionare le immagini, se non vengono specificate le immagini e tp_apl è vuoto l'icona che viene presa è quella si SC.
Spero vi possa essere utile.
Guardando il codice ho visto che funzione chiamare per farlo in javascript, quindi per esempio se in una grid ho un campo di testo che voglio trasformare come link ad altra applicazione ma come nuovo tab del menù potrò fare:
nell'evento onScriptInit metto il codice della funzione javascript, in questo caso l'unico parametro è l'id della missione.
Codice: Seleziona tutto
?>
<script type="text/javascript" >
function aprimissione( idmissione )
{
var func_menu_aba = null;
var padre = null;
padre = window.top;
if ( padre ) {
eval ("func_menu_aba = padre.createIframe");
}
if ( typeof func_menu_aba === 'function' ) {
func_menu_aba('Missioni', 'Missioni', '', '','', '../form_missioni?idesterna_missione='+idmissione , 'form');
} else {
window.open( '../form_missioni?idesterna_missione='+idmissione );
}
}
</script>
<?PHP
Codice: Seleziona tutto
{idmissione} = "<a href=\"javascript:aprimissione('{idmissione}');\" class=\"scGridFieldOddLink\" >{idmissione}</a>";
Cosa significano i vari parametri della funzione:
Codice: Seleziona tutto
function createIframe(str_id, str_label, str_hint, str_img_on, str_img_off, str_link, tp_apl)
str_label: testo che deve comparire come titolo del tab
str_hint: Testo di suggerimento quando si mette il cursore sul titolo del tab
str_img_on: filename dell'immagine quando il tab è attivo
str_img_off: filename dell'immagine quando il tab è non attivo
str_link: url dell'iframe dell'applicazione o altro che voglio visualizzare (comprensivo di eventuali parametri dopo ?)
tp_apl: tipo applicazione (es form, grid), serve nel caso non si specificano le immagini attivo/disattivo per selezionare le immagini, se non vengono specificate le immagini e tp_apl è vuoto l'icona che viene presa è quella si SC.
Spero vi possa essere utile.