Source for file scheda.php
Documentation is available at scheda.php
* Generatore della maschera per tabelle e viste.
* Questo file rappresenta il cuore dell'applicazione VFront: attraverso questo file vengono
* generate le maschere per utilizzare il database, mediante permessi e regole definite nei registri
* E' un file complesso che genera HTML e codice dinamico Javascript.
* Si appoggia a numerose librerie php e Javascript: il file principale che viene utilizzato
* a lato client è ./js/proto-scheda.js
* @author Mario Marcello Verona <marcelloverona@gmail.com>
* @copyright 2007 Mario Marcello Verona
* @license http://www.gnu.org/licenses/gpl.html GNU Public License
require_once("./inc/conn.php");
require_once("./inc/layouts.php");
require_once("./inc/func.comuni.php");
require_once("./inc/func.frontend.php");
require_once("./inc/func.hash_iframe.php");
require_once("./inc/func.browser_detection.php");
$info_browser= browser_detection('full');
include("./inc/func.var_frontend.php");
* Funzione per la definizione di larghezza del campo
if($xg_tipo== "timestamp"){
* Creazione del pulsante per le sottomaschere
$nome_front= (trim($sm['nome_frontend'])!= "") ? $sm['nome_frontend']: $sm['nome_tabella'];
echo "<input class=\"pulsante-submask\" type=\"button\" name=\"sm[". $sm['nome_tabella']. "]\" id=\"sm_". $sm['nome_tabella']. "\" value=\"$nome_front\" "
. "onclick=\"apri_submask(". $sm['id_table']. ",". $sm['id_submask']. ");\" />\n";
#####################################################################
# PRENDI LE IMPOSTAZIONI DA FRONTEND
$oid = (int) $_GET['oid'];
$query1 = vmsql_query("SELECT * from {$db1['frontend']}.registro_tab
$nome_tab= $data_tab['table_name'];
$query2 = vmsql_query("SELECT column_name , data_type , character_maximum_length as maxsize, is_nullable,
in_richiesto, in_search, in_suggest, in_tipo, in_default, commento, extra, jstest
FROM {$db1['frontend']}.registro_col
ORDER BY in_ordine,ordinal_position",$link);
list ($data_col, $data_type, $maxsize, $is_nullable, $in_richiesto,
$in_search, $in_suggest, $in_tipo, $in_default, $commento,$extra,$jstest) = vmsql_fetch_row_all($query2,true);
// Colonne della TABELLA per la vista tabellare
$query3 = vmsql_query("SELECT column_name , data_type , character_maximum_length as maxsize,
FROM {$db1['frontend']}.registro_col
ORDER BY ordinal_position",$link);
list ($x_column_name, $x_data_type, $x_maxsize, $x_in_tipo, $x_in_default) = vmsql_fetch_row_all($query3,true);
############################################################################
// SE c'è l'id in GET prendi calcola a che punto dell'elenco si è arrivati
if(isset ($_GET['id']) && intval($_GET['id'])> 0){
// Prendi il moe del campo orderby ed il vaolre relativo all'id
$sql_calcola_sub = "SELECT ". $data_tab['orderby']. "
FROM ". $data_tab['table_name']. " WHERE ". $info_pk[0]. "='". $_GET['id']. "'";
$sql_calcola = "SELECT count(*) FROM ". $data_tab['table_name']. "
WHERE ". $data_tab['orderby']. "<($sql_calcola_sub)";
else if(isset ($_GET['counter']) && intval($_GET['counter'])> 0){
$counter= intval($_GET['counter']);
############################################################################
$FORM = "<form action=\"". $_SERVER['PHP_SELF']. "\" method=\"post\" id=\"singleform\" name=\"singleform\">\n";
#########################################
// Variabili da impostare prima del ciclo.
$carica_calendario= false;
for($i= 0;$i< count($data_col);$i++ ){
// variabili da impostare dentro il ciclo.
if($GLOBALS['_VARIABILI']['js_test']){
if($jstest[$i]!= '') $rules[]= trim($jstest[$i]);
// SE IMPOSTATO, sovrascrivo il tipo sovraimposto a quello di default
$data_type[$i] = ($in_tipo[$i]== '' || $in_tipo[$i]== null) ? $data_type[$i] : $in_tipo[$i];
// Impostazioni del campo
// INT ----------------------------------------------------------------------------------------------------------------
if(($data_type[$i]== 'int' || $data_type[$i]== 'tinyint' || $data_type[$i]== 'mediumint' || $data_type[$i]== 'float' || $data_type[$i]== 'double')){
$input= "<input onkeypress=\"mod(this.id);\" onchange=\"mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" value=\"\" size=\"$size\" readonly=\"readonly\" type=\"text\" />";
// VARCHAR ---------------------------------------------------------------------------------------------------------------
elseif($data_type[$i]== 'varchar' || $data_type[$i]== 'char'){
if($maxsize[$i]<= 80) $size= $maxsize[$i];
$input= "<input onkeypress=\"mod(this.id);\" onchange=\"mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" value=\"\" size=\"$size\" readonly=\"readonly\" type=\"text\" />";
// IMPOSTAZIONI SUGGEST PER LA RICERCA -----------------------
if($in_search[$i]== "1" && $in_suggest[$i]== "1"){
< div id=" suggest-{ $data_col[$i]}" class=" campo- update" style=" display: none; border:1 px solid black; background- color: white;"></ div>
< script type=" text/ javascript" language=" javascript" charset=" iso-8859-1">
new Ajax. Autocompleter(' dati_{ $data_col[$i]}',' suggest-{ $data_col[$i]}',' rpc. suggest. php? t={ $data_tab['table_name']}', {});
// TEXTAREA -----------------------------------------------------------------------------------------------
elseif($data_type[$i]== 'text' || $data_type[$i]== 'mediumtext'){
$input= "<textarea onkeypress=\"mod(this.id);\" onchange=\"mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" cols=\"132\" rows=\"9\" readonly=\"readonly\" ></textarea>";
// BOOL -----------------------------------------------------------------------------------------------
elseif($data_type[$i]== 'bool'){
if($db1['dbtype']== 'postgres'){
$input= "<input type=\"checkbox\" onclick=\"this.value=(this.value=='f' || this.value=='')?'t':'f'; mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" disabled=\"disabled\" style=\"margin-left:0;\" value=\"0\" />";
$input= "<input type=\"checkbox\" onclick=\"this.value=(this.value==0 || this.value=='')?1:0; mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" disabled=\"disabled\" style=\"margin-left:0;\" value=\"0\" />";
// PASSWORD -----------------------------------------------------------------------------------------------
elseif($data_type[$i]== 'password'){
// se c'è almeno una codifica MD5 carica il file JS
if($carica_md5 || $in_default[$i]== 'md5') $carica_md5= true;
if($carica_sha1 || $in_default[$i]== 'sha1') $carica_sha1= true;
$input= "<input onkeypress=\"mod(this.id);\" onchange=\"mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" value=\"\" size=\"59\" readonly=\"readonly\" type=\"password\" title=\"$in_default[$i]\" />";
// Tipo richtext: FCKEDITOR -------------------------------------------------------------------------------
elseif($data_type[$i]== 'richtext'){
include_once("./plugins/FCKeditor/fckeditor.php");
$nome_dir= (dirname($_SERVER['PHP_SELF'])== '/') ? "" : dirname($_SERVER['PHP_SELF']);
$oFCKeditor = new FCKeditor('dati_'. $data_col[$i]);
$oFCKeditor->BasePath = $nome_dir. "/plugins/FCKeditor/";
$oFCKeditor->ToolbarSet = 'Custom';
$oFCKeditor->Height = '290';
$oFCKeditor->Width = '600';
$input = $oFCKeditor->CreateHtml() . "<br />";
$FCK_EDITOR_VARS.= $data_col[$i]. ",";
// tipo speciale hidden -------------------------------------------------------------------------------
elseif($data_type[$i]== 'hidden'){
if(isset ($in_default[$i])){
$valore_hidden = $in_default[$i];
// stringa per il default
$str_hidden_default= "<span style=\"display:none\" id=\"hd_dati_". $data_col[$i]. "\" >$valore_hidden</span>\n";
if($extra[$i]== '1'){ // sovrascrittura in modifica
$classe_hidden= ' class="nomodify"';
else{ // scrittura solo in insert
<input name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" $classe_hidden value=\"". utf8_encode($valore_hidden). "\" type=\"hidden\" />";
// tipo speciale SELECT -------------------------------------------------------------------------------
elseif($data_type[$i]== 'select'){
$input= "<select onchange=\"mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" disabled=\"disabled\" >\n";
$valori = explode("[|]",$in_default[$i]);
foreach($valori as $k=> $val){
// se sono stati messi i separatori chiave, valore
$input.= "\t\t<option value=\"$kk\">$val</option>\n";
// tipo speciale SELECT FROM -------------------------------------------------------------------------------
elseif($data_type[$i]== 'select_from'){
$IFRAME = new hash_iframe($data_col[$i],$in_default[$i]);
$input= "<div id=\"target_". $data_col[$i]. "\"></div>\n";
$input.= "<iframe style=\"width:1px;height:1px;border:0;\"
id=\"i_id_". $data_col[$i]. "\"
// SE LA TABELLA E' SCRIVIBILE METTI UN LINK
if($IFRAME->in_insert_tab== "1" && $IFRAME->in_visibile && $_VARIABILI['permetti_tparent_link']){
$href_nuovo_record= " <a class=\"inalto\" href=\"javascript:;\" onclick=\"openWindow('scheda.php?oid=". $IFRAME->id_table_ref. "&parent_field=". $data_col[$i]. "&parent_table={$nome_tab}','nuovo_valore',80)\" title=\"Inserisci un nuovo valore per questo elenco\">Nuovo valore</a>\n";
// DATA ---------------------------------------------------------------------------------------------------------------
elseif($data_type[$i]== 'date' && $_VARIABILI['usa_calendari']== 1){
$carica_calendario = true;
$input= "<input onkeypress=\"mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" value=\"\" size=\"$size\" readonly=\"readonly\" type=\"text\" />";
< script type=" text/ javascript">
inputField : " dati_{ $data_col[$i]}", // id of the input field
ifFormat : "% Y-% m-% d", // format of the input field
// Caso sconosciuto (default) -------------------------------------------------------------------------------
$input= "<input onkeypress=\"mod(this.id);\" class=\"off\" name=\"dati[". $data_col[$i]. "]\" ".
"id=\"dati_". $data_col[$i]. "\" value=\"\" size=\"$size\" readonly=\"readonly\" type=\"text\" />";
//-- FIne impostazione dei campi
// Impostazioni di campi obbligatori
if($is_nullable[$i]== "NO" || $in_richiesto[$i]== "1"){
$obbligatorio = "<span class=\"red\">*</span>";
// metto in array che usero' ne javascript
$campi_req.= "'". $data_col[$i]. "',";
// Se � tendina dinamica metti un span di feedback
$span_feed = ($data_type[$i]== 'select_from')
? " <span id=\"feed_". $data_col[$i]. "\" class=\"feed-tendina\">"
. "<img src=\"img/refresh1.gif\" alt=\"caricamento\" /> Caricamento in corso...</span>" : "";
$str_label = ($label) ? "<label for=\"dati_". $data_col[$i]. "\" title=\"". htmlentities($commento[$i],ENT_QUOTES). "\">". $data_col[$i] . $obbligatorio . $span_feed . $href_nuovo_record . "</label>" : "";
// Impostazione sui campi search
$campi_search.= "'". $data_col[$i]. "',";
if($in_suggest[$i]== "1"){
$campi_suggest.= "'". $data_col[$i]. "',";
</div><br class=\"sep\" />
} // -- fine ciclo sui campi
$campi_req= substr($campi_req,0,- 1);
$campi_search= substr($campi_search,0,- 1);
$campi_suggest= substr($campi_suggest,0,- 1);
############################################
for($i= 0;$i< count($x_column_name);$i++ ){
$lentxt= campo_len($x_column_name[$i],$x_data_type[$i]);
$xg_campi.= $x_column_name[$i]. ", ";
// Impostazioni lunghezza campi
if(!isset ($maxlen[$x_column_name[$i]]) || $maxlen[$x_column_name[$i]]< $lentxt) {
if(($x_data_type[$i]== 'varchar'
|| $x_data_type[$i]== 'text'
|| $x_data_type[$i]== 'mediumtext'
$maxlen[$x_column_name[$i]]= 140;
$maxlen[$x_column_name[$i]]= $lentxt;
$xg_misure.= $maxlen[$x_column_name[$i]]. ",";
$xg_sort.= ($x_data_type[$i]== "int") ? "int,": "str,";
$xg_align.= ($x_data_type[$i]== "int") ? "right,": "left,";
#############################################
// tolgo la virgola dai campi xgrid
$xg_campi = substr($xg_campi,0,- 2);
$xg_misure= substr($xg_misure,0,- 1);
$xg_tipo= substr($xg_tipo,0,- 1);
$xg_sort= substr($xg_sort,0,- 1);
$xg_align= substr($xg_align,0,- 1);
# Hidden per le chiavi primarie
for($k= 0;$k< count($info_pk);$k++ ){
$FORM_0.= "\t\t<input type=\"hidden\" name=\"pk[". $info_pk[$k]. "]\" id=\"pk_". $info_pk[$k]. "\" value=\"\" />\n";
$FORM.= "<div>$FORM_0</div>\n";
#############################################################################################################
# INIZIA L'APERTURA DEL LAYOUT
#############################################################################################################
"js/scriptaculous/lib/prototype.js",
"js/scriptaculous/src/scriptaculous.js",
$files[]= "js/dhtmlxGrid/css/my_dhtml.css";
$files[]= "js/dhtmlxGrid/js/dhtmlXCommon.js";
$files[]= "js/dhtmlxGrid/js/dhtmlXGrid.js";
$files[]= "js/dhtmlxGrid/js/dhtmlXGridCell.js";
$files[]= "js/tinydhtmlHistory.js";
$files[]= "js/mostra_nascondi_id.js";
// SE ci sono campi data , datetime o timestamp, prendi il calendario
$files[]= "js/jscalendar/calendar.js";
$files[]= "js/jscalendar/lang/calendar-it.js";
$files[]= "js/jscalendar/calendar-setup.js";
$files[]= "sty/jscalendar/calendar-win2k-cold-1.css";
$files[]= "js/yav/yav-config-it.js";
$files[]= "js/yav/yav.js";
$LAYOUT = openLayout1("Scheda ". $data_tab['table_name'],$files);
if($GLOBALS['_VARIABILI']['shortcut_tastiera_attivi']== 1)
$LAYOUT = str_replace("<body>","<body onload=\"\" onkeydown=\"hotKeys(event);\">",$LAYOUT);
$LAYOUT = str_replace("<body>","<body onload=\"\">",$LAYOUT);
$usaHistory = (isset ($_VARIABILI['usa_history']) && $_VARIABILI['usa_history']== 1) ? "true": "false";
// VARIABILI RELATIVE ALL'FCKEDITOR
if(strlen($FCK_EDITOR_VARS)> 0){
$add_fck= "var fck_attivo=true;";
$vars_fck= "var fck_vars=new Array('". str_replace(",","','",substr($FCK_EDITOR_VARS,0,- 1)). "');";
$fck_pronti= "var fck_pronti=0;";
$oFCK= "var oFCK=new Array();";
$add_fck= "var fck_attivo=false;";
$vars_fck= "var fck_vars=new Array();";
$alias_tabella = ($data_tab['table_type']== 'VIEW' && isset ($data_tab['fonte_al']) && $data_tab['fonte_al']!= '')
? $data_tab['fonte_al'] : $data_tab['table_name'];
if(!isset ($_GET['parent_field'])) $_GET['parent_field']= '';
if(!isset ($_GET['parent_table'])) $_GET['parent_table']= '';
// PRENDI LE SOTTOMASCHERE
$array_fk_parent= array();
$array_id_submask= array();
for($i= 0;$i< count($submasks);$i++ ){
$lista_submask.= "'". $submasks[$i]['nome_tabella']. "',";
$nome_front= (trim($submasks[$i]['nome_frontend'])!= "") ? $submasks[$i]['nome_frontend']: $submasks[$i]['nome_tabella'];
$alias_submask.= "'". $nome_front. "',";
$array_id_submask[]= $submasks[$i]['id_submask'];
$array_fk_parent[]= 'fkparent['. $submasks[$i]['id_submask']. ']=\''. $submasks[$i]['campo_pk_parent']. "';";
$lista_submask= (strlen($lista_submask)> 0) ? substr($lista_submask,0,- 1): $lista_submask;
$alias_submask= (strlen($alias_submask)> 0) ? substr($alias_submask,0,- 1): $alias_submask;
$pathRelativo = (dirname($_SERVER['PHP_SELF'])== '/') ? "" : dirname($_SERVER['PHP_SELF']);
$jstest_js = ($GLOBALS['_VARIABILI']['js_test']== 1 && count($rules)> 0) ? 'true': 'false';
$permetti_link = ($data_tab['permetti_link'] == 1 || $data_tab['permetti_link']== 't') ? 1: 0;
$permetti_allegati = ($data_tab['permetti_allegati'] == 1 || $data_tab['permetti_allegati']== 't') ? 1: 0;
// identifico il db per checkbox ed altro
$PGdb= ($db1['dbtype']== 'postgres') ? "true": "false";
<script type=\"text/javascript\">
var modifiche_attive=false;
var campi_mod= new Array();
var passoVeloce = {$_VARIABILI['passo_avanzamento_veloce']};
var campiReq = new Array($campi_req);
var campiSearch = new Array($campi_search);
var campiSuggest = new Array($campi_suggest);
var record_bloccato=false;
var tabella = '{$data_tab['table_name']}';
var tabella_alias='{$alias_tabella}';
var modificaRecord = false;
var usaHistory = $usaHistory;
var infoBrows = new Array('". implode("','",$info_browser). "');
var haveParent = (window.opener==null) ? false:true;
var parentField = '". preg_replace("'[\W]'",'',$_GET['parent_field']). "';
var parentTable = '". preg_replace("'[\W]'",'',$_GET['parent_table']). "';
var permettiLink =$permetti_link;
var permettiAllegati =$permetti_allegati;
var nTendine=0; var tendineAttese=$n_tendine_attese;
var pathRelativo='". $pathRelativo. "';
$add_fck $vars_fck $fck_pronti $oFCK
var sottomaschere = new Array($lista_submask);
var sottomaschere_alias = new Array($alias_submask);
var fkparent=new Array();
". implode("\n\t\t",$array_fk_parent). "
window.onload = history_initialize;
if(nuovoRecord || modificaRecord){
mod(cal.params.inputField.id);
// $js_manuale.=$CALENDARI;
if($GLOBALS['_VARIABILI']['js_test']){
$js_manuale.= "\n\t\t var rules=new Array();\n";
for($i= 0;$i< count($rules);$i++ )
$js_manuale.= "\t\trules[$i]='". addslashes($rules[$i]). "';\n";
// Scorciatoie da tastiera, condizionate dalle variabili
if($GLOBALS['_VARIABILI']['shortcut_tastiera_attivi']== 1){
var keyActions = new Array ();
keyActions [0 ] = {character: 39, // freccia dx + shift - record avanti veloce
param: " if(! modifiche_attive && ! ricerca && ( counter+ passoVeloce)< max) {sndReq( tabella ,' next10', true); reloadGrid(); }",
keyActions [1 ] = {character: 37, // freccia sx + shift - record indietro veloce
param: " if(! modifiche_attive && ! ricerca && ( counter- passoVeloce)>0) {sndReq( tabella,' prev10', true); reloadGrid(); }",
keyActions [2 ] = {character: 38, // freccia su - vai al primo record
param: " if(! modifiche_attive && ! ricerca) {sndReq( tabella ,' min', true); reloadGrid(); }",
keyActions [3 ] = {character: 40, // freccia giù - vai all' ultimo record
param: " if(! modifiche_attive && ! ricerca) {sndReq( tabella ,' max', true); reloadGrid(); }",
keyActions [4 ] = {character: 39, // freccia dx - record avanti
param: " if(! modifiche_attive && ! ricerca) {sndReq( tabella ,' next', true); }",
keyActions [5 ] = {character: 37, // freccia sx - record indietro
param: " if(! modifiche_attive && ! ricerca) {sndReq( tabella ,' prev', true); }",
keyActions [6 ] = {character: 82, // R - Cerca
keyActions [7 ] = {character: 13, // invio in modalità ricerca
param: " if( ricerca) {cerca() }",
keyActions [8 ] = {character: 65, // A - Annulla
// contatore per l'array JS keyActions
if($data_tab['in_insert']== 1){
keyActions [$contatore_key] = {character: 78, // N - Nuovo record
param: \"nuovo_record()\",
if($data_tab['in_duplica']== 1){
keyActions [$contatore_key] = {character: 68, // D - Duplica il record
param: \"$('popup-duplica').style.display='';\",
if($data_tab['in_update']== 1){
keyActions [$contatore_key] = {character: 77, // M - Modifica
param: \"if(!modifiche_attive && !nuovoRecord){modifica();}\",
if($data_tab['in_update']== 1 || $data_tab['in_insert']== 1){
keyActions [$contatore_key] = {character: 83, // S - Salva
param: \"if(modifiche_attive){salva()}\",
if($data_tab['in_delete']== 1){
keyActions [$contatore_key] = {character: 69, // E - Elimina
keyActions [$contatore_key] = {character: 76, // L - Apri i link
param: \"openWindow('add.link.php?t='+tabella_alias+'&id='+localIDRecord,'Link',80);\",
keyActions [$contatore_key] = {character: 71, // G - Apri gli allegati
param: \"openWindow('add.attach.php?t='+tabella_alias+'&id='+localIDRecord,'Allegati',70);\",
} // End of user defined array
$LAYOUT = str_replace("</head>",$js_manuale. "</head>",$LAYOUT);
#singleform input, #singleform textarea{
padding:0px 24px 12px 0px;
<div id="loader-scheda0">
<div id="loader-scheda"></div>
<div id="pop-loader-contenitore" align="center">
<div id="pop-loader-scheda" >
Caricamento in corso...<br /><br />
<img src="img/refresh1.gif" alt="Loading" height="25" width="25" />
<span id="risposta"></span>
<?php echo "<div id=\"briciole\"><a href=\"index.php\">home</a> » "
. "scheda tabella ". $data_tab['table_name']. "</div>";
// echo "<script> alert('".implode("|",$info_browser)."'); </script>\n";
$classe_h1 = ($data_tab['table_type']== 'VIEW')? "verde": "var";
<h1>Tabella <span class=" <?php echo $classe_h1;?>"> <?php echo $data_tab['table_name'];?></span></h1>
<div><span id="numeri"></span> <span id="refresh"> </span></div>
<input title="primo record" type="button" id="p_primo" name="p_primo" value=" |< " onclick="sndReq(' <?php echo $data_tab['table_name'];?>','min',true);reloadGrid();" accesskey="7" />
<input title="indietro di <?php echo $_VARIABILI['passo_avanzamento_veloce'];?> record" type="button" id="p_prev10" name="p_indietro10" value=" << " onclick="sndReq(' <?php echo $data_tab['table_name'];?>','prev10',true);reloadGrid();" accesskey="1" />
<input title="indietro" type="button" id="p_prev" name="p_indietro" value=" < " onclick="sndReq(' <?php echo $data_tab['table_name'];?>','prev',true);" accesskey="4" />
<input title="avanti" type="button" id="p_next" name="p_avanti" value=" > " onclick="sndReq(' <?php echo $data_tab['table_name'];?>','next',true);" accesskey="6"/>
<input title="avanti di <?php echo $_VARIABILI['passo_avanzamento_veloce'];?> record" type="button" id="p_next10" name="p_avanti10" value=" >> " onclick="sndReq(' <?php echo $data_tab['table_name'];?>','next10',true);reloadGrid();" accesskey="3" />
<input title="ultimo record" type="button" id="p_ultimo" name="p_ultimo" value=" >| " onclick="sndReq(' <?php echo $data_tab['table_name'];?>','max',true);reloadGrid();" accesskey="9" />
<!--<input accesskey="k" type="button" id="p_TEST" name="p_TEST" value=" TEST XML " onclick="debug_xml();" />-->
<?php if ($data_tab['in_export']== 1) { ?> <input accesskey="x" type="button" id="p_export" name="p_export" value=" Esporta dati " onclick="openWindow('admin/export_data.php?idt= <?php echo base64_encode($oid. _BASE64_PASSFRASE);?>','esportazione_dati',65);" /> <?php } ?>
<!--<input type="button" id="p_TEST2" name="p_TEST2" value=" DEBUG Var " onclick="debug_var();" />-->
<div id="pulsanti-azioni">
<?php if($data_tab['in_insert']== 1){ ?>
<input title="Nuovo record" type="button" id="p_insert" name="insert" value=" Nuovo " onclick="nuovo_record();" accesskey="n" />
<?php } else echo "<input type=\"hidden\" id=\"p_insert\" />\n"; ?>
<?php if($data_tab['in_update']== 1){ ?>
<input title="Modifica il record" type="button" id="p_update" name="update" value=" Modifica " onclick="modifica();" accesskey="m" />
<?php } else echo "<input type=\"hidden\" id=\"p_update\" />\n";?>
<?php if($data_tab['in_insert']== 1 || $data_tab['in_update']){ ?>
<input title="Annulla" type="button" id="p_annulla" name="annulla" value=" Annulla " onclick="annulla();" accesskey="a" />
<?php } else echo "<input type=\"hidden\" id=\"p_annulla\" />\n";?>
<?php if($data_tab['in_insert']== 1 || $data_tab['in_update']){ ?>
<input title="Salva il record" type="button" id="p_save" name="save" value=" Salva " onclick="salva();" accesskey="s" />
<?php } else echo "<input type=\"hidden\" id=\"p_save\" />\n";?>
<?php if($data_tab['in_delete']== 1){ ?>
<input title="Elimina il record" type="button" id="p_delete" name="delete" value=" Elimina " onclick="elimina();" accesskey="e" />
<?php } else echo "<input type=\"hidden\" id=\"p_delete\" />\n";?>
<?php if($data_tab['in_insert']== 1 && $data_tab['in_duplica']== 1){ ?>
<input title="Duplica il record" type="button" id="p_duplica" name="duplica" value="Duplica" onclick="$('popup-duplica').style.display='';" />
<?php } else echo "<input type=\"hidden\" id=\"p_duplica\" />\n"; ?>
<input title="Modalità ricerca" type="button" id="p_cerca" name="cerca" value=" Ricerca " onclick="cerca();" accesskey="r" />
<div id="pulsanti-submask">
for($i= 0;$i< count($submasks);$i++ ){
<table border="0" summary="impostazioni vista" class="switch-vista">
<td><img src="img/vista_scheda_h.gif" alt="vista scheda" class="noborder" /></td>
<td><a href="javascript:;" onclick="switch_vista();"><img src="img/vista_tab.gif" alt="vista tabella" class="noborder" /></a></td>
<td><a href="javascript:;" onclick="switch_vista();">vista tabella</a></td>
if(is_file("./scheda.allegati_link.php") && (isset ($data_tab['pemetti_allegati']) || isset ($data_tab['permetti_link'])))
require_once("./scheda.allegati_link.php");
// DIV PER LA DUPLICAZIONE
if($data_tab['in_duplica']== 1){
style="position:absolute;
background-color:#EFF6FF;
border:2px solid #33CCFF;
<div class="chiudi-box"><span class="fakelink" onclick="mostra_nascondi('popup-duplica');">Chiudi [X]</span></div>
<p><strong>Seleziona le sottomaschere da duplicare:</strong></p>
$array_alias= explode("','",$alias_submask);
for($i= 0;$i< count($array_id_submask);$i++ ){
echo "<input type=\"checkbox\" name=\"sotto__". $array_id_submask[$i]. "\" value=\"1\" /> ". str_replace("'","",$array_alias[$i]). " <br />\n";
echo "<p><strong>Duplica altri oggetti:</strong></p>\n";
echo "<input type=\"checkbox\" name=\"duplica_allegati\" value=\"1\" /> Duplica allegati<br /><br />\n";
echo "<input type=\"checkbox\" name=\"duplica_link\" value=\"1\" /> Duplica link<br />\n";
echo "<br /><input type=\"button\" onclick=\"prepara_duplica()\" name=\"duplicatore\" value=\" Duplica \" />\n";
echo " <input type=\"button\" onclick=\"mostra_nascondi('popup-duplica')\" name=\"annulla_duplica\" value=\" Annulla \" />\n";
<?php if($GLOBALS['_VARIABILI']['shortcut_tastiera_attivi']== 1 && $GLOBALS['_VARIABILI']['shortcut_tastiera_popup']){ ?>
style="position:absolute;
><img src="img/scorciatoie.gif" alt="Scorciatoie da tastiera" width="24" height="152" style="" onclick="mostra_nascondi('box-scorciatoie');" />
<div id="box-scorciatoie"
<div class="chiudi-box"><span class="fakelink" onclick="mostra_nascondi('box-scorciatoie');">Chiudi [X]</span></div>
<p><strong><em>Navigazione tra i record</em></strong></p>
<dt>CTRL + freccia destra</dt>
<dd>Avanza di 1 record</dd>
<dt>CTRL + freccia sinistra</dt>
<dd>Torna indietro di 1 record</dd>
<dt>CTRL + MAIUSC + freccia destra</dt>
<dd>Torna indietro di <?php echo $GLOBALS['_VARIABILI']['passo_avanzamento_veloce'];?> record</dd>
<dt>CTRL + MAIUSC + freccia sinistra</dt>
<dd>Torna indietro di <?php echo $GLOBALS['_VARIABILI']['passo_avanzamento_veloce'];?> record</dd>
<dt>CTRL + freccia giù</dt>
<dd>Vai all'ultimo record</dd>
<dt>CTRL + freccia su</dt>
<dd>Vai al primo record</dd>
<p><strong><em>Azioni</em></strong></p>
<dd>Elimina il record</dd>
<dd>Duplica il record</dd>
<dt>CTRL + Invio (in modalità ricerca)</dt>
<p><strong><em>Allegati e link</em></strong></p>
<dd>Apri gli allegati (se presenti nella maschera)</dd>
<dd>Apri i link (se presenti nella maschera)</dd>
<div id="scheda-tabella" style="display:none;">
<div style="background-color:whitesmoke;
<div id="gridbox" style="height: <?php echo (isset ($_VARIABILI['altezza_iframe_tabella'])) ? $_VARIABILI['altezza_iframe_tabella'] : 350;?>px;width:100%;" ></div>
<script type="text/javascript" >
var jsOid = <?php echo $oid;?>;
function doOnRowSelected(idRiga){
sndReq(' <?php echo $nome_tab;?>','id',false);
mygrid = new dhtmlXGridObject('gridbox');
//mygrid = new dhtmlXGridObject();
//mygrid.attachToObject(document.body)
mygrid.imgURL = "js/dhtmlxGrid/imgs/";
mygrid.setHeader("#, <?php echo $xg_campi;?>");
mygrid.setInitWidths("40, <?php echo $xg_misure;?>") ;
mygrid.setColAlign("center, <?php echo $xg_align;?>") ;
mygrid.setColTypes("ro, <?php echo $xg_tipo;?>");
mygrid.setColSorting("int, <?php echo $xg_sort;?>") ;
mygrid.setColumnColor("#d5f1ff")
// mygrid.setMultiLine(false)
mygrid.setOnRowSelectHandler(doOnRowSelected);
<?php echo "//". implode(', ',$maxlen);?>
mygrid.enableBuffering(100);
mygrid.setXMLAutoLoading("rpc.xmlgrid.php?t= <?php echo $nome_tab;?>",100);//to load additional data from server
mygrid.enableMultiline(false);
mygrid.enableMultiline(false);
<?php $paginazione = (isset ($_VARIABILI['n_record_tabella'])) ? $_VARIABILI['n_record_tabella']: 20;?>
togli=(counter% <?php echo $paginazione;?>);
mygrid.loadXML(pathRelativo+"/rpc.xmlgrid.php?t= <?php echo $nome_tab;?>&gid= <?php echo $gid;?>&of="+nextData+"&hash="+Math.random());
togli=(counter% <?php echo $paginazione;?>);
mygrid.loadXML(pathRelativo+"/rpc.xmlgrid.php?t= <?php echo $nome_tab;?>&of="+nextData+"&hash="+Math.random());
function mostra_risultati_ricerca(ids_ricerca){
// alert("mostro risultati"+ids_ricerca);
mygrid.loadXML(pathRelativo+"/rpc.xmlgrid.php?t= <?php echo $nome_tab;?>&q="+ids_ricerca+"&hash="+Math.random());
// Inizializza la tabella
<table border="0" summary="impostazioni vista" class="switch-vista">
<td><a href="javascript:;" onclick="switch_vista();"><img src="img/vista_scheda.gif" alt="vista scheda" class="noborder" /></a></td>
<td><img src="img/vista_tab_h.gif" alt="vista tabella" class="noborder" /></td>
<td><a href="javascript:;" onclick="switch_vista();">vista scheda</a></td>
<script type="text/javascript">inizializza_pulsanti_modifica();</script>
|