Source for file func.tratta_campo_submask.php
Documentation is available at func.tratta_campo_submask.php
* Libreria di funzioni per la gestione dei campi delle sottomascherein area di amministrazione.
* Si tratta delle funzioni che generano le scelte possibili per le impostazioni dei campi,
* viste le caratteristiche dei campi definiti in database.
* @subpackage Function-Libraries
* @author Mario Marcello Verona <marcelloverona@gmail.com>
* @copyright 2007 Mario Marcello Verona
* @see func.tratta_campo.php
* @license http://www.gnu.org/licenses/gpl.html GNU Public License
* Funzione che determina i possibili tipi di input per un campo di una sottomaschera
* @param array $ar_campo Informazioni sul campo in esame
* @param array $pk Campo/i chiave/i primaria
* @param array $fk Campo/i chiave esterna
* @param array $colref_fk Colonne di riferimento nella relazione delle chiavi esterne
* @param string $campo_FK
* @param string $tabella_parent Nome della tabella parent nella relazione sottomaschera/maschera
function tratta_campo_submask($ar_campo,$pk,$fk,$colref_fk= array(),$campo_FK= false, $tabella_parent= false){
// caratteristiche di default per la visibilità
$campo_visibile_disabled= false;
$select_tipo_disable = false;
$column_default = (strlen($column_default)> 0) ? $column_default : "<em class=\"na\">non specificato</em>";
$max_length= (ereg('char',$data_type)) ? "(". $character_maximum_length . " caratteri)" : "";
// Impostazioni campo obbligatorio
if(is_null($in_richiesto) || $in_richiesto== ""){
$in_richiesto = (trim($is_nullable)== "NO") ? true: false;
// se l'impostazione deriva dal database ed è richiesto imponi la scelta
$campo_richiesto_disabled= $in_richiesto;
$in_richiesto = ($in_richiesto== "1") ? true: false;
// se l'impostazione deriva del l'utente lascia la scelta
$campo_richiesto_disabled= false;
// Impostazioni campo visibile
elseif($in_visibile== '0'){
// A seconda del tipo di campo fa delle proposte:
$sel= array_flip(array('int','float','char','text','password','date','datetime','bool','hidden','select','select_from'));
case 'int' : $options = "\t\t\t<option value=\"int\" ". selected_def('int',$in_tipo). ">numero intero</option>\n";
case 'double' : $options = "\t\t\t<option value=\"float\" ". selected_def('float',$in_tipo). ">numero con virgola</option>\n";
case 'character varying' :
case 'bpchar' : $options = "\t\t\t<option value=\"char\" ". selected_def('char',$in_tipo). ">testo libero corto</option>\n";
$options.= "\t\t\t<option value=\"password\" ". selected_def('password',$in_tipo). ">password</option>\n";
$options = "\t\t\t<option value=\"text\" ". selected_def('text',$in_tipo). ">testo libero lungo</option>
<option value=\"char\" ". selected_def('char',$in_tipo). ">testo libero corto</option>\n";
case 'date' : $options = "\t\t\t<option value=\"date\" ". selected_def('date',$in_tipo). ">data formattata</option>\n";
case 'time' : $options = "\t\t\t<option value=\"time\" ". selected_def('time',$in_tipo). ">orario formattato</option>\n";
case 'timestamp without time zone' :
case 'timestamp' : $options = "\t\t\t<option value=\"datetime\" ". selected_def('datetime',$in_tipo). ">data ed ora formattata</option>
<option value=\"date\" ". selected_def('date',$in_tipo). ">data formattata</option>\n";
case 'bit' : $options = "\t\t\t<option value=\"bool\" ". selected_def('bool',$in_tipo). ">booleano (vero|falso)</option>\n";
<option value=\"hidden\" ". selected_def('hidden',$in_tipo). ">nascosto</option>
<option value=\"select\" ". selected_def('select',$in_tipo). ">valori definiti</option>
<option value=\"select_from\" ". selected_def('select_from',$in_tipo). ">valori definiti da tabella</option>
/* Impostazioni nel caso di valore autoincrement:
Imposta il campo come bloccato ed invisibile in fase di insert */
if($extra== "auto_increment"){
$campo_visibile_disabled = true;
$campo_richiesto_disabled = true;
$select_tipo_disable = true;
//TODO: da mettere le indicazioni di chiave primaria,
// così che se il valore non è autoincrement sia comunque richiesto un inserimento
$obbligatorio = ($is_nullable== "YES") ? "NO": "SI";
$commento = (strlen(trim($commento))> 0) ? "<br /><em class=\"commento\">". htmlentities($commento,ENT_QUOTES). "</em>": "";
// Immagine delle chiavette per le chiavi primarie
if($img_campo== " campopk"){
# Prende le informazioni sulla chiave esterna
# Questa informazione è utile per chi configura la tabella al fine
# di impostare la query esterna per recuperare i dati
// Cerca la chiave della FK
$info_fk = " - chiave esterna (rif:<strong>". $colref_fk[$k_fk]. "</strong>)";
// Gestione search | suggest
$OUT= "\t<div class=\"campo\">
<div class=\"campo-head\">
<strong class=\"var\">". $column_name. "</strong> - $data_type ". $max_length. " ". $info_fk. "
##########################################################################################################
# IMPOSTAZIONI PER IL CAMPO IMPOSTATO COME RIFERIMENTO AL PARENT
// PRENDI i campi della tabella parent
$sql_parent = "SELECT column_name FROM ". $db1['frontend']. ".registro_col
WHERE id_table='". $tabella_parent. "'
ORDER BY ordinal_position
$OUT.= "<div class=\"campo-body$img_campo\">
<p class=\"grigio\">Questo campo sarà l'etichetta identificativa del record, non sarà
soggetto ad inserimento o modifica attraverso la sottomaschera, ma deve invece mostrare un nome significativo.</p>";
<input type=\"hidden\" name=\"campo_sub[$id_reg_sub][in_visibile]\" value=\"1\" />
<input type=\"hidden\" name=\"campo_sub[$id_reg_sub][in_richiesto]\" value=\"0\" />
<input type=\"hidden\" name=\"campo_sub[$id_reg_sub][in_tipo]\" value=\"parent_ref\" />
$OUT.= "<label for=\"in_default_$id_reg_sub\">Campo da cui generare l'etichetta per la sottomaschera:</label><br />
<select name=\"campo_sub[$id_reg_sub][in_default]\" id=\"in_default_$id_reg_sub\">\n";
for($i= 0;$i< count($campi_parent);$i++ ){
$selected_parent= ($campi_parent[$i]== $in_default) ? "selected=\"selected\"" : "";
$OUT.= "\t\t<option value=\"". $campi_parent[$i]. "\" $selected_parent>". $campi_parent[$i]. "</option>\n";
<div class=\"campo-body$img_campo\">
<br/>obbligatorio(sql): <strong>$obbligatorio</strong>
<br/>default(sql): <strong>$column_default</strong>\n";
// Disabilitazioni checkbox
$att_dis_visibile= ($campo_visibile_disabled) ? "disabled=\"disabled\"" : "";
$att_dis_richiesto= ($campo_richiesto_disabled) ? "disabled=\"disabled\"" : "";
$att_dis_select = ($select_tipo_disable) ? "disabled=\"disabled\"" : "";
// vero|falso dei checkbox
$att_visibile_checked= ($campo_visibile) ? "checked=\"checked\"" : "";
$att_richiesto_checked= ($in_richiesto) ? "checked=\"checked\"" : "";
$valore_visibile= ($campo_visibile_disabled) ? 0: 1;
$valore_obbligatorio= ($att_dis_richiesto) ? 1: 0;
$OUT.= "\t\t<input type=\"hidden\" name=\"campo_sub[$id_reg_sub][in_visibile]\" id=\"in_visibile_hid_$id_reg_sub\" value=\"0\" />\n";
$OUT.= "\t\t<br/><label for=\"in_visibile_$id_reg_sub\">campo visibile</label>
\t\t\t<input type=\"checkbox\" name=\"campo_sub[$id_reg_sub][in_visibile]\" id=\"in_visibile_$id_reg_sub\" value=\"1\" $att_dis_visibile $att_visibile_checked />\n";
$OUT.= "\t\t<input type=\"hidden\" name=\"campo_sub[$id_reg_sub][in_richiesto]\" id=\"in_richiesto_hid_$id_reg_sub\" value=\"0\" />\n";
$OUT.= "\t\t<br/><label for=\"in_richiesto_$id_reg_sub\">campo obbligatorio</label>
\t\t\t<input type=\"checkbox\" name=\"campo_sub[$id_reg_sub][in_richiesto]\" id=\"in_richiesto_$id_reg_sub\" value=\"1\" $att_richiesto_checked $att_dis_richiesto/>\n";
$OUT.= "\t\t<br/><label for=\"in_tipo_$id_reg_sub\">Tipo di input</label>
<select name=\"campo_sub[$id_reg_sub][in_tipo]\" id=\"in_tipo_$id_reg_sub\" onchange=\"mostra_hid(this.value,$id_reg_sub)\" $att_dis_select>\n";
// $selected = ($in_tipo==$k) ? "selected=\"selected\" " : "";
$OUT.= $options. $aggiunta_options;
$OUT.= "\t\t<div id=\"hid_$id_reg_sub\" >\n";
$value_select = ($in_tipo== 'select')? str_replace("[|]","\n",$in_default) : "";
$style_select = ($in_tipo== 'select')? "" : "display:none;";
$disabled_select = ($in_tipo== 'select')? "" : "disabled=\"disabled\"";
<div id=\"default-select-$id_reg_sub\" style=\"$style_select\">
<label class=\"var\">Inserire, uno per riga, i valori possibili per la selezione - <a href=\"javascript:;\" onclick=\"openWindow('help.select.php',60,40)\">Regole</a></label>
<textarea name=\"campo_sub[$id_reg_sub][tipo_altro]\" cols=\"50\" rows=\"7\" $disabled_select>$value_select</textarea>
$value_select_from = ($in_tipo== 'select_from')? $in_default : "";
$style_select_from = ($in_tipo== 'select_from')? "" : "display:none;";
$disabled_select_from = ($in_tipo== 'select_from')? "" : "disabled=\"disabled\"";
<div id=\"default-selectfrom-$id_reg_sub\" style=\"$style_select_from\">
<label class=\"var\">Inserire l'SQL che richiama i valori per questo campo</label>
<input type=\"button\" value=\"Editor\" onclick=\"openWindow('query_editor.php?gid={$_GET['gid']}&id_campo=$id_reg_sub&id_table=$id_table','query_editor','50');\" /> ".
"<input type=\"button\" value=\"Test\" onclick=\"try_query(document.getElementById('tipo_altro_". $id_reg_sub. "').value,". $id_reg_sub. ")\" /> ".
"<span id=\"feed_altro_". $id_reg_sub. "\" class=\"feed_altro\"> </span>
<br/><textarea name=\"campo_sub[". $id_reg_sub. "][tipo_altro]\" id=\"tipo_altro_". $id_reg_sub. "\" cols=\"50\" rows=\"7\" $disabled_select_from >$value_select_from</textarea>
$value_hidden = ($in_tipo== 'hidden')? $in_default : "";
$style_hidden = ($in_tipo== 'hidden')? "" : "display:none;";
$disabled_hidden = ($in_tipo== 'hidden')? "" : "disabled=\"disabled\"";
<div id=\"default-hidden-$id_reg_sub\" style=\"$style_hidden\">
<label class=\"var\">Inserire il valore di default del campo nascosto - <a href=\"javascript:;\" onclick=\"openWindow('help.variabili_hidden.php',60,40)\">vedi le variabili</a></label>
<br/><input type=\"text\" name=\"campo_sub[$id_reg_sub][tipo_altro]\" $disabled_hidden value=\"$value_hidden\" />
|