custom button & custom filter

alessapan

Member
DaDaBIK version 10.3-Manarola enterprise, installed on 27/08/2020 ), the latest version of DaDaBIK is 10.3-Manarola released on 26/08/2020

System info
PHP Version: 7.2.33
mysql version: 5.7.29-32-log
Web server: Apache
Client: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36

Ciao Eugenio,

vorrei attivare un custom filter in funzione dell'uso di un custom button.
Dalla tabella "missioni in carico" con custom button a livello di riga, vorrei aprire una nuova tabella "ristampa" dove vengono filtrati una serie di elementi tramite un gruppo "protocollo_stampa".
Riesco a memorizzare all'interno della funzione una variabile $_cp_filtro che assume l'ID del record, indice univoco corrispondente poi a molti "protocollo_stampa".

Quello che mi manca è riuscire a PASSARE la variabile $_cp_filtro nella funzione dei custom filters. Sicuramente non so come definire la variabile e riutilizzarla in un altra tabella.

Grazie dei preziosi suggerimenti che spero arrivino...presto ;)

Incollo di seguito i relativi codici:

$cnt = 0;
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['type'] = 'php_standard';
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['callback_function'] = 'dadabik_ristampa_filtra';
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['permission_needed'] = 'custom_function';
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['permission_custom_function'] = 'dadabik_permission_change_status';
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['show_in'][] = 'results_grid';
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['position_form'] = 'row';
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['label_type'] = 'fixed';
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['label'] = 'ristampa';
$custom_buttons['rimborsi_protocollo_in_carico'][$cnt]['style'] = 'background:#FF8C00;width:100px';
$cnt++;

function dadabik_ristampa_filtra($table_name, $where_field, $where_value)
{
$_cp_filtro =$where_value;
header('Location:index.php?function=search&tablename=ristampa_rimborsi');
exit;
}


$custom_filters['ristampa_rimborsi'] = 'dadabik_custom_filter_rimborsi';
function dadabik_custom_filter_rimborsi()
{
//$_cp_filtro='32'; se lo utilizzo così la sintassi è giusta ma ovviamente non è più la variabile passata dal custom button
return 'Rprotocollo_stampa = '.$_cp_filtro;
}
 

alessapan

Member
Ciao Eugenio,

credo di aver trovato la soluzione ma se non ti dispiace vorrei un tuo parere.
Ho risolto memorizzando il valore tramite la variabile $SESSION.

Grazie
Alessandro :)

Ecco il codice modificato:
- da custom buttons
function dadabik_ristampa_filtra($table_name, $where_field, $where_value)
{
$_cp_filtro =$where_value;
$_SESSION['valore']=$_cp_filtro;
header('Location:index.php?function=search&tablename=ristampa_rimborsi');
exit;
}

- da custom filters
$custom_filters['ristampa_rimborsi'] = 'dadabik_custom_filter_rimborsi';

function dadabik_custom_filter_rimborsi()
{
$_cp_filtro=$_SESSION['valore'];
return 'Rprotocollo_stampa = '.$_cp_filtro;

}
 

eugenio

Administrator
Staff member
riesumo un post un po' vecchio, dove trovo documentazione circa l'utilizzo della variabile $SESSION?
Non c'è documentazione specifica di DaDaBIK, la variabile $SESSION è un array di PHP in cui si possono memorizzare dati che permangono durante la sessione.
 
Top