Menù dinamico

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
magre66
Messaggi: 39
Iscritto il: 14 mar 2017, 08:04

Menù dinamico

Messaggio da magre66 » 25 set 2023, 14:09

Salve a tutti,
qualcuno ha esperienza con i menù dinamici?
Costruisco un menù dinamico composto da due pulsanti "fissi" e uno che, tramite un ciclo foreach, prende il sottomenù da una query
Il sottomenù si compone correttamente ma non funziona il click. Ho provato anche a creare i pulsanti come primo livello del menù ma niente. Funzionano quelli fissi ma non quelli creati con il ciclo foreach anche facendoli puntare ad una form fissa. Questo il codioce inserto nerll'evento onLoad del menù:

Codice: Seleziona tutto

 sc_appmenu_reset("menu_crd");
 sc_appmenu_create("menu_crd");
$sql="SELECT
   reparti_coord.idrep,
   reparti.reparto,
   reparti.menu
FROM
   reparti INNER JOIN reparti_coord ON reparti.id = reparti_coord.idrep
WHERE 
   (reparti_coord.iddip = ".[crd].")
ORDER BY
   reparti.reparto";
sc_lookup(rp,$sql,"conn_mysql");

sc_appmenu_add_item ('menu_crd', 'item_100',,'Area',,,,,);

foreach ({rp} as $arr_area)	{
	sc_appmenu_add_item ('menu_crd', 'item _'. $arr_area[0] ,'item_100',$arr_area[1],'menu_ar_'.$arr_area[2],,,,);	
	}
sc_appmenu_add_item ('menu_crd', 'item_101',,'Modica password','app_change_pswd',,,,);
sc_appmenu_add_item ('menu_crd', 'item_102',,'Esci','app_Login',,,,'_parent');
Grazie

Fabio
Messaggi: 439
Iscritto il: 20 feb 2014, 11:43

Re: Menù dinamico

Messaggio da Fabio » 25 set 2023, 15:49

Buongiorno,
nel menù, per impostazione predefinita, vengono disabilitati i link alle applicazioni che non esistono o che non sono autorizzate per l'utente.
Forse è per questo che i link non funzionano.
Nelle impostazioni dovrebbe esserci una voce da attivare/disattivare per abilitare i link senza controlloare se esistono.

magre66
Messaggi: 39
Iscritto il: 14 mar 2017, 08:04

Re: Menù dinamico

Messaggio da magre66 » 25 set 2023, 19:05

Grazie Fabio,
ho trovato l'impostazione ma non è quello, anche perchè non dovrebbero funzionare neanche quelli fuori dal foreach, invece gli atri funzionano.
Temo sia un bug di sc.
Provero a scrivere al supporto

rino
Messaggi: 621
Iscritto il: 18 giu 2015, 15:42
Località: Pinerolo
Contatta:

Re: Menù dinamico

Messaggio da rino » 26 set 2023, 18:50

foreach ({rp} as $arr_area) {
sc_appmenu_add_item ('menu_crd', 'item _'. $arr_area[0] ,'item_100',$arr_area[1],'menu_ar_'.$arr_area[2],,,,);
}

non credo possa funzionare , mi pare che il secondo parametro debba avere un nome variabile, tu generi lo stesso nome per ongi elemento
perchè usi una foreach invece che il ciclo di sc usando la macro sc_select? anche se più lungo in temrini di rigeh è meglio descrittivo e lavora meglio in modalità oggetto oltre ad avere un pefetto controllo di accesso
sc_select(my_data, "select clientId, clientName, limitecred from costumers");
if ({my_data} === false)
{
echo "Access error. Message =". {my_data_erro};
}
else
{
while (!{my_data}->EOF)
{
{clientName} = {my_data}->fields[1];
{my_data}->MoveNext();
}
{my_data}->Close();
}
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase

magre66
Messaggi: 39
Iscritto il: 14 mar 2017, 08:04

Re: Menù dinamico

Messaggio da magre66 » 27 set 2023, 17:44

Grazie Rino e ben ritrovato,
anche utilizzando il tuo metodo il problema non cambia.
Il menù viene regolarmente creato con entrambi i metodi ma le voci non generano effetto al click anche se sono cliccabili.
Ho scritto al supporto di sc e attendo risposta

Mario Greco

rino
Messaggi: 621
Iscritto il: 18 giu 2015, 15:42
Località: Pinerolo
Contatta:

Re: Menù dinamico

Messaggio da rino » 28 set 2023, 09:36

Gira ;-)

prova questa e ...
$x = 1;
sc_appmenu_create("menu_1");
do {
$item='item_'.$x;
$testo='meniopzione_'.$x;
$app='app'.$x;
sc_appmenu_add_item ('menu_1', $item,,$testo,$app,,,,);

$x++;
} while ($x <= 5);

sc_appmenu_add_item ('menu_1', 'item_101',,'Modica password','app_change_pswd',,,,);
sc_appmenu_add_item ('menu_1', 'item_102',,'Esci','app_Login',,,,'_parent');
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase

rino
Messaggi: 621
Iscritto il: 18 giu 2015, 15:42
Località: Pinerolo
Contatta:

Re: Menù dinamico

Messaggio da rino » 29 set 2023, 09:36

il problema è nel fatto che alcune macro SC non accettano la costruzione di variabili nei parametri, è quindi corretto creare sempre delle variaibli localie poi usarle come parametri .
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase

magre66
Messaggi: 39
Iscritto il: 14 mar 2017, 08:04

Re: Menù dinamico

Messaggio da magre66 » 02 ott 2023, 15:49

GRAZIE!!
Il problema era proprio nella costruzione delle variabili all'interno della macro sc_appmenu_create. Da notare che l'esempio l'ho preso dal sito ufficiale Scriptcase. No comment
Creando le variabili all'interno del ciclo (indipendentemente da quello che si usa) e poi inserendole nella macro, il menù funziona.
Riporto il codice funzionante

Codice: Seleziona tutto

 sc_appmenu_reset("menu_crd");
 sc_appmenu_create("menu_crd");

$sql="SELECT
   reparti_coord.idrep,
   reparti.reparto,
   reparti.menu
FROM
   reparti INNER JOIN reparti_coord ON reparti.id = reparti_coord.idrep
WHERE 
   (reparti_coord.iddip = ".[crd].")
ORDER BY
   reparti.reparto";
sc_lookup(rp,$sql,"conn_mysql");

sc_appmenu_add_item ('menu_crd', 'item_100',,'Area');

$x=1;
foreach ({rp} as $arr_area)	{
	$item='item_'.$x;
	$testo=$arr_area[1];
	$dst='menu_ar_'.$arr_area[2];
	sc_appmenu_add_item ('menu_crd', $item,'item_100',$testo,$dst);
	$x++;
	}
	

rino
Messaggi: 621
Iscritto il: 18 giu 2015, 15:42
Località: Pinerolo
Contatta:

Re: Menù dinamico

Messaggio da rino » 02 ott 2023, 22:42

gli esempi non sempre sono allineati all'ultima versioen ed è logico attendersi comportamenti divesi nel tempo.
esistono però delle vecchie abituidni che salvano sempre, in fondo oggi una variabile in più o in men onon fa differenza , una volta (tempi d oro ) facevano differenza anche le if messe all'incontrario.
Certo chi ha esperienza ,specie storica, ne viene fuori più rapidamente ma per questo esistono luoghi di incontro come i forum.
Buon lavoro
Rino Lo Turco
Consulente Informatico; Analista e Sviluppatore; ex IT Manager; Cons. Direzionale di Organizzazione; Consulente Tecnico legale; Esperto protezione dati personali; Internet Service Provider
felice utente e fruitore di ScriptCase

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti