function sestavFormular($connect,$tabulka,$cislo=1,$exid="",$ident="",$dataset="",$additional=0) { /* tabulka -- konkretni formular, sada polozek z tabulky formular cislo -- poradove cislo prvni polozky (nekdy se potlacuje) exid -- ident v externich datech (klíč) ident -- hodnota exidu dataset -- tabulka, v niz jsou externi data (napr. soubory) 13 12 11 10 9 8 7 6 5 4 3 2 1 0- disabled select pro selecty, implicitni 'neuvedeno' pro textova pole | | | | | | | | | | | | |--- pouze pro neanglicke vysledky (drive jazyk !eng), S nasobny vyber s checkboxy | | | | | | | | | | | |----- kontrola syntaxe po opusteni pole, S ciselnik podle promenne + 'staty', pokud promenna zacina na 'stat_', S jmena pouze domaci, S s typem prenos nazvu promenne | | | | | | | | | | |------- S ZOBRAZOVAT tecky pri sestavovani roletky | | | | | | | | | |--------- letopocet v RIV syntaxi, jinak typ=nazevpromenne | | | | | | | | |----------- S katedry a organizace pouze zkratku, S jazyky pouze s locales, S jmena povoli zalozit noveho cloveka, T indikuje 1:N (do pole group_concat z tabulky, klic je ciselnik) | | | | | | | |------------- nepovinne pole | | | | | | |--------------- tlacitko UCFirst, S prvni polozka prazdna a resetuje, F nabidne nahled | | | | | |----------------- tlacitko hledejIdent, S operuje s obsahem textpole jako s hodnotou | | | | |------------------- handler | | | |--------------------- polozka ma display=none | | |------------------------ sestavit jako horizontalni | |--------------------------- zobrazovat i pro predbezne zaznamy |------------------------------ pouze pro spravu PDV */ global $langnazev; $tabulka=safestring($tabulka,8); $cislo=intval($cislo); $exid=safestring($exid); $dataset=safestring($dataset,8); $additional=intval($additional); if ($dataset=="") $dataset=$tabulka; $cislo=1; $jentabulka=preg_replace("/^[^.]*\./","",$tabulka); $vysledek=mysqli_query($connect,"select id,promenna,typ,flags,blok,radek,sloupec,delka,if (databaze!='',concat(databaze,'.',tabulka),tabulka) as tabulka,onblur,textformat,ciselnik,placeholder,nazev from formular left join formtexty on formid=id and jazyk='".$_SESSION['lang']."' where tabulka='".$jentabulka."' order by radek,sloupec") or die (mysqli_error($connect)); //die ("select formular.*,placeholder,nazev from formular left join formtexty on formid=id and jazyk='".$_SESSION['lang']."' where tabulka='".$tabulka."' order by radek,sloupec"); while ($zaznam=mysqli_fetch_assoc($vysledek)) { // $dataset=$tabulka; unset($txtparms,$jsparms,$onchange,$onblur,$onfocus,$dotaz); // $dataset=$tabulka; foreach ((array)$zaznam as $klic=>$hodnota) { $$klic=$hodnota; } preg_match("/^(\d*)([A-Z])(\d*)([A-Z]?)(\d*)/",$zaznam['typ'],$typ); if ($typ[2]=="N") $onblur="naCislo"; $minimum=intval($typ[1])>0?$typ[1]:""; if ($delka>0 && $typ[2]=="S") $delka+=2; $delka=intval($delka)>0?" style='width:".$delka."px'":""; $nepov=$flags&64?" class=nepov":""; //if ($dataset==$tabulka) $dataset=!empty($databaze)?$databaze.".".$dataset:$dataset; if (preg_match("/^(\w+)\.(\w+)$/",$promenna,$pole)) { $fullfrom=preg_match("/^(\w+)\.(\w+)$/",$tabulka,$cesta)?$cesta[1].".".$pole[1]:$pole[1]; //if ($databaze!="") $fullfrom=$databaze.".".$fullfrom; $dotaz="select group_concat(".$pole[2].") from ".$fullfrom." where ".$ciselnik."='".$formular[$ciselnik]."'"; } elseif ($exid!="") $dotaz="select ".$promenna." from ".$dataset." where ".$exid."='".$ident."'"; if (!empty($dotaz)) { $vysledek1=mysqli_query($connect,$dotaz) or die ($dotaz); if ($zaznam=mysqli_fetch_row($vysledek1)) $obsah=$zaznam[0]; } else $obsah=""; $formular[$promenna]=$obsah; switch($typ[2]) { case "R": $buttons=""; $vysledek1=mysqli_query($connect,"select obsah,".$langnazev." as nazev,onchange from radio where promenna='".$promenna."'") or die (mysqli_error($connect)); while ($zaznam=mysqli_fetch_assoc($vysledek1)) { $append=$zaznam['obsah']==$obsah?" checked":""; $onchange=!empty($zaznam['onchange'])?" onChange='".$zaznam['onchange']."(this)'":""; $buttons.=""; } $formpole="
".$buttons."
"; break; case "C": $checkboxes=""; $citac=0; $modul=intval($typ[3]); switch ($promenna) { // standardni promenne se berou ze specifickych ciselniku case "fakulta": $dotaz="select 1<<(ident-1) as obsah, zkratka as nazev, '' as onchange, 0 as disabled, 'fakulta' as promenna from personal.fakulty where kod>0 order by ident"; break; default: $dotaz="select obsah, ".$langnazev." as nazev, onchange,promenna,disabled from checkbox where promenna='".$promenna."' and tabulka='".$tabulka."'"; } //if ($promenna=='atributysouboru') die ($dotaz); $vysledek1=mysqli_query($connect,$dotaz) or die (mysqli_error($connect)); while ($zaznam=mysqli_fetch_assoc($vysledek1)) { $citac++; if ($exid!="" && $dataset!="") { $obsah=@fromDataset($connect,$zaznam['promenna'],$dataset,$exid,$ident); $append=$zaznam['obsah']==$obsah || ((int)$zaznam['obsah']&(int)$obsah)==(int)$zaznam['obsah']?" checked":""; } else $append=""; $onchange=!empty($zaznam['onchange'])?" onChange='".$zaznam['onchange']."(this)'":""; $prefix=$modul>0&&$citac%$modul==0?"
":""; $disabled=$zaznam['disabled']?" disabled":""; $checkboxes.="".$prefix; } $formpole="
".$checkboxes."
"; break; case "A": $rows=$typ[4]=="R"?intval($typ[5]):3; $formpole="
"; break; case "S": $disabled=$flags&1?" disabled":""; $readonly=$flags&1?" readonly":""; if ($flags&4) $ciselnik=preg_match("/^stat_/",$ciselnik)?"staty":$promenna; if (!empty($obsah)) { if (!empty($ciselnik)) { switch ($ciselnik) { case "clovek": $clovek=getClovek($connect,$obsah,$flags)[0]; $realtext=$clovek[2]." [".implode("; ",$clovek[3])."]"; break; default: $realtext=fromCiselnik($connect,$ciselnik,$obsah,$textformat,""); } } elseif (!empty($textformat)) $realtext=textOnPat(["obsah"=>$obsah],$textformat); else $realtext=safestring($obsah); //die($ciselnik); } if ($flags&16) { $ciselnik=""; $jsparms['typ']=$promenna; } if (!empty($textformat)) $jsparms['textformat']=$textformat; if (!empty($onblur)) $onblur=" onBlur='".$onblur."(this)'"; if (!empty($onfocus)) $onfocus=" onFocus='".$onfocus."(this)'"; if (!empty($onchange)) $onchange=" onChange='".$onchange."(this)'"; foreach ((array)$jsparms as $klic=>$hodnota) $txtparms[]=$klic."=".$hodnota; $rozbal="rewriteSelect(this,\"".$ciselnik."\",".$flags.",\"".implode("&",(array)$txtparms)."\")"; $ontouch=$flags&1?" onClick='this.nextElementSibling.click()'":" onKeyUp='".$rozbal."'"; if ($flags&256) { $realtext=$obsah; $onblur=" onBlur='this.nextElementSibling.value=this.value.clearPost()'"; } if ($flags&32) $jsparms['mista']=2; $formpole="
"; break; case "F": $formpole="
"; break; case "L": // prozatim jen konkretni dotazy $radek=""; if ($tabulka=="preprinty") { $zahlavi="autore-mailza kohostátní příslušnost"; $vysledek1=mysqli_query($connect,"select jmeno, prijmeni, email,za_koho, podily.organizace, staty.".$langnazev." as stat,domov from podily join personal.crew on ident=autor join ciselniky.staty on obsah=podily.stat left join personal.netul using(ident) where publikace='".$ident."' order by poradi"); while ($zaznam=mysqli_fetch_assoc($vysledek1)) { $fullname=$zaznam['jmeno']." ".$zaznam['prijmeni']; $za_koho=!empty($zaznam['organizace'])?$zaznam['organizace']."/".$zaznam['za_koho']:$zaznam['domov']; $radek.="".$fullname."".$zaznam['email']."".$za_koho."".$zaznam['stat'].""; } } $formpole="
".$zahlavi."".$radek."
"; break; default: $type=$typ[2]=="P"?"password":"text"; if ($typ[2]=="D") { $obsah=get_date($obsah,$_SESSION['lang']); $onblur="naDatum"; } if (!empty($onblur)) $onblur=" onBlur='".$onblur."(this)'"; if (!empty($onfocus)) $onfocus=" onFocus='".$onfocus."(this)'"; if (!empty($onchange)) $onchange=" onChange='".$onchange."(this)'"; if ($typ[4]=="B") { $vysledek1=mysqli_query($connect,"select ".$langnazev." as nazev,onclick from rightbutton where promenna='".$promenna."'"); if ($zaznam=mysqli_fetch_assoc($vysledek1)) $buttoverit=""; } else $buttoverit=""; $formpole="
".$buttoverit."
"; } $nezobraz=$flags&1024?" nezobraz":""; $horizontal=$flags&2048?" horizontal":""; $radky[$radek][]="
".$cislo.". ".$nazev."
".$formpole."
"; $cislo++;$obsah=""; } foreach ((array)$radky as $jeden) { if (count($jeden)>1) $elements.="
".implode($jeden)."
"; else $elements.=$jeden[0]; } return $elements; } if ($akce=="formular") { $outpole=["OK",sestavFormular($connect,$tabulka,1,$id,$ident,$dataset)]; //print_r($outpole[1]);die(); if (!empty($handler)) $outpole=array_merge($outpole,call_user_func("handler_".$handler,$connect,$ident)); $vystup=json_encode($outpole,JSON_UNESCAPED_UNICODE); } if ($akce=="sestavformular") { //print_r($ident);die(); $vystup="OK|".sestavFormular($connect,$tabulka,$cislo,$id,$ident,$dataset); } if ($akce=="sestavformular") { echo "OK|".sestavFormular($connect,$tabulka); } function editujExcelenci(tento,ident=false) { if (ident===false) var ident=tento.form.publikace.value; ajaxTrueSend("ajax.php","akce=formular&tabulka=kvalitni&ident="+ident+"&id=ident&dataset=kvalitni",function() { if ((this.readyState==4) && [0,200].indexOf(this.status)>-1) { var vysledek=JSON.parse(this.responseText.trim()); var dialog=new Dialog(vysledek[1].stripSlashes(),640,0,'Údaje kvalitního výsledku','dialog_excelence',0); dialog.form.ok.onclick=function() { if (kontrolaChyb(dialog)!==true) return false; var jeden=dialog; ajaxTrueSend("ajax.php","akce=ulozexcelenci&publikace="+ident+"&"+formToGet(this.form), function() { if (this.readyState==4 && [0,200].indexOf(this.status)>-1) { var vysledek=this.responseText.split("|").varmap(); if (vysledek[0]!="OK") { var dialog=new Dialog(this.responseText,0,0); return false; } if (tento!==null) document.getElementById("kvalitni").querySelector("div.obal").innerHTML=vysledek[1]; else window.location.reload(); jeden.remove(); } }); } } }); }
AAA (BBB)?     
EEE
GGG
HHH
e-mail:
III
JJJ
LLL
MMM
PPP