Come aprire una nuova tab di un menù via php/javascript

Raccoglitore di domande e risposte relative a ScriptCase, il generatore di codice php per lo sviluppo rapido di applicazioni.
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Rispondi
Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Come aprire una nuova tab di un menù via php/javascript

Messaggio da Vincenzo » 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.

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
nell'evento OnRecord trasformo il campo testo dell'idmissione in un link passando l'id stesso come parametro:

Codice: Seleziona tutto

{idmissione} = "<a href=\"javascript:aprimissione('{idmissione}');\" class=\"scGridFieldOddLink\" >{idmissione}</a>";
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:

Codice: Seleziona tutto

 function createIframe(str_id, str_label, str_hint, str_img_on, str_img_off, str_link, tp_apl)
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.

admin
Site Admin
Messaggi: 218
Iscritto il: 30 gen 2014, 21:33

Re: Come aprire una nuova tab di un menù via php/javascript

Messaggio da admin » 17 mar 2020, 12:01

Molto utile,
si potrebbe usare il tuo post per inaugurare la sezione no_spam_please.
Che ne pensi?
Scriptcase supporto e vendita per l'italia
www.scriptcasecommunity.it

Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Re: Come aprire una nuova tab di un menù via php/javascript

Messaggio da Vincenzo » 17 mar 2020, 21:29

admin ha scritto: 17 mar 2020, 12:01 Molto utile,
si potrebbe usare il tuo post per inaugurare la sezione no_spam_please.
Che ne pensi?
non so cosa sia una sezione no_spam_please. :mrgreen:

Vincenzo
Messaggi: 139
Iscritto il: 11 apr 2014, 11:06

Re: Come aprire una nuova tab di un menù via php/javascript

Messaggio da Vincenzo » 19 mar 2020, 11:16

Una cosa mi son dimenticato di scrivere, ho fatto la funzione guardando il codice esistente, prodotto da SC, non essendo documentata ufficialmente, se un giorno in SC cambiano qualcosa, potrebbe smettere di funzionare, ma fino ad allora... ;)

Rispondi

Chi c’è in linea

Visitano il forum: Ahrefs [Bot], Google [Bot] e 8 ospiti