|
@@ -88,18 +88,7 @@ function booly($pre,$val,$nottoobad=false,$invcol=false) {
|
|
|
|
|
|
$dbg.='<pre>'.print_r($_POST,1).'</pre>';
|
|
|
|
|
|
-function aske($key,&$arr) {
|
|
|
- $count=count($arr);
|
|
|
- $found=false;
|
|
|
- $i=0;
|
|
|
- while (!$found && $i<$count) {
|
|
|
- if (array_key_exists($key,$arr[$i]))
|
|
|
- $found=true;
|
|
|
- else
|
|
|
- $i++;
|
|
|
- }
|
|
|
- return($found);
|
|
|
-}
|
|
|
+/*SELECT *, Instances.ID AS IID, GROUP_CONCAT(OrdOurLanguages.NameIt ORDER BY OrdInstOurLangs.Pos ASC SEPARATOR '; ') AS OrdOurLangs FROM Instances LEFT JOIN InstOurLangs ON InstOurLangs.InstID=Instances.ID LEFT JOIN Languages AS OurLanguages ON OurLanguages.ID=InstOurLangs.OurLangID LEFT JOIN InstOurLangs AS OrdInstOurLangs ON OrdInstOurLangs.InstID=Instances.ID LEFT JOIN Languages AS OrdOurLanguages ON OrdOurLanguages.ID=OrdInstOurLangs.OurLangID WHERE OurLanguages.NameIT LIKE '%italiano%' GROUP BY IID LIMIT 50*/
|
|
|
|
|
|
$cols=array(
|
|
|
'Instances.New'=>array('field'=>'Instances.New','name'=>'Nuova','type'=>'bool'),
|
|
@@ -113,8 +102,17 @@ $cols=array(
|
|
|
'Instances.LongDesc'=>array('field'=>'Instances.LongDesc','name'=>'Descrizione lunga','type'=>'text'),
|
|
|
'Instances.OurDesc'=>array('field'=>'Instances.OurDesc','name'=>'Descrizione nostra','type'=>'text'),
|
|
|
|
|
|
- 'Instances.PlaceID'=>array('field'=>'Instances.PlaceID','name'=>'Località ⮞','type'=>'join','join'=>array(),'ord'=>false),
|
|
|
- 'Places.Locality'=>array('field'=>'Places.Locality','name'=>'Località','type'=>'joini','join'=>array('Places ON Places.ID=Instances.PlaceID'),'subtype'=>'text'),
|
|
|
+ 'Instances.LocalityID'=>array('field'=>'Instances.LocalityID','name'=>'Località ⮞','type'=>'join','join'=>array(),'ord'=>false),
|
|
|
+ 'Localities.Locality'=>array('field'=>'Localities.Locality','name'=>'Località','type'=>'joini','join'=>array('Localities ON Localities.ID=Instances.LocalityID'),'subtype'=>'text'),
|
|
|
+
|
|
|
+ 'Provinces.ID'=>array('field'=>'Provinces.ID','name'=>'Provincia ⮞','type'=>'join','join'=>array('Localities ON Localities.ID=Instances.LocalityID','Provinces ON Provinces.ID=Localities.ProvinceID'),'ord'=>false),
|
|
|
+ 'Provinces.Province'=>array('field'=>'Provinces.Province','name'=>'Provincia','type'=>'joini','join'=>array('Localities ON Localities.ID=Instances.LocalityID','Provinces ON Provinces.ID=Localities.ProvinceID'),'subtype'=>'text'),
|
|
|
+
|
|
|
+ 'Regions.ID'=>array('field'=>'Regions.ID','name'=>'Regione ⮞','type'=>'join','join'=>array('Localities ON Localities.ID=Instances.LocalityID','Provinces ON Provinces.ID=Localities.ProvinceID','Regions ON Regions.ID=Provinces.RegionID'),'ord'=>false),
|
|
|
+ 'Regions.Region'=>array('field'=>'Regions.Region','name'=>'Regione','type'=>'joini','join'=>array('Localities ON Localities.ID=Instances.LocalityID','Provinces ON Provinces.ID=Localities.ProvinceID','Regions ON Regions.ID=Provinces.RegionID'),'subtype'=>'text'),
|
|
|
+
|
|
|
+ 'States.ID'=>array('field'=>'States.ID','name'=>'Stato ⮞','type'=>'join','join'=>array('Localities ON Localities.ID=Instances.LocalityID','Provinces ON Provinces.ID=Localities.ProvinceID','Regions ON Regions.ID=Provinces.RegionID','States ON States.ID=Regions.StateID'),'ord'=>false),
|
|
|
+ 'States.State'=>array('field'=>'States.State','name'=>'Stato','type'=>'joini','join'=>array('Localities ON Localities.ID=Instances.LocalityID','Provinces ON Provinces.ID=Localities.ProvinceID','Regions ON Regions.ID=Provinces.RegionID','States ON States.ID=Regions.StateID'),'subtype'=>'text'),
|
|
|
|
|
|
'Instances.Email'=>array('field'=>'Instances.Email','name'=>'Email di contatto','type'=>'text'),
|
|
|
'Instances.Software'=>array('field'=>'Instances.Software','name'=>'Software','type'=>'text'),
|
|
@@ -136,29 +134,29 @@ $cols=array(
|
|
|
'Instances.AdmNote'=>array('field'=>'Instances.AdmNote','name'=>'Note dell’admin','type'=>'text'),
|
|
|
|
|
|
'InstLangs.LangID'=>array('field'=>'InstLangs.LangID','name'=>'Lingue dichiarate ⮞','type'=>'join','join'=>array('InstLangs ON InstLangs.InstID=Instances.ID'),'ord'=>false),
|
|
|
- 'Languages.NameIT'=>array('field'=>'Languages.NameIT','name'=>'Lingue dichiarate','type'=>'joini','join'=>array('InstLangs ON InstLangs.InstID=Instances.ID','Languages ON Languages.ID=InstLangs.LangID'),'subtype'=>'text','ord'=>false),
|
|
|
+ 'Languages.NameIT'=>array('field'=>'Languages.NameIT','name'=>'Lingue dichiarate','type'=>'joini','join'=>array('InstLangs ON InstLangs.InstID=Instances.ID','Languages ON Languages.ID=InstLangs.LangID'),'subtype'=>'text','ord'=>true,'ordjoin'=>array('InstLangs AS OrdInstLangs ON OrdInstLangs.InstID=Instances.ID','Languages AS OrdLanguages ON OrdLanguages.ID=OrdInstLangs.LangID'),'ordselmore'=>'GROUP_CONCAT(OrdLanguages.NameIT ORDER BY OrdInstLangs.Pos ASC SEPARATOR \'\') AS xOrdLangs','ordby'=>'xOrdLangs'),
|
|
|
'InstLangs.LangID.First'=>array('field'=>'InstLangs.LangID','name'=>'Lingua primaria dichiarata ⮞','type'=>'join','join'=>array('InstLangs ON InstLangs.InstID=Instances.ID'),'wheremore'=>'AND InstLangs.Pos=1','ord'=>false),
|
|
|
- 'Languages.NameIT.First'=>array('field'=>'Languages.NameIT','name'=>'Lingua primaria dichiarata','type'=>'joini','join'=>array('InstLangs ON InstLangs.InstID=Instances.ID','Languages ON Languages.ID=InstLangs.LangID'),'subtype'=>'text','wheremore'=>'AND InstLangs.Pos=1'),
|
|
|
+ 'Languages.NameIT.First'=>array('field'=>'Languages.NameIT','name'=>'Lingua primaria dichiarata','type'=>'joini','join'=>array('InstLangs ON InstLangs.InstID=Instances.ID','Languages ON Languages.ID=InstLangs.LangID'),'subtype'=>'text','wheremore'=>'AND InstLangs.Pos=1','ord'=>false),
|
|
|
|
|
|
'InstOurLangs.OurLangID'=>array('field'=>'InstOurLangs.OurLangID','name'=>'Lingue impostate da noi ⮞','type'=>'join','join'=>array('InstOurLangs ON InstOurLangs.InstID=Instances.ID'),'ord'=>false),
|
|
|
- 'OurLanguages.NameIT'=>array('field'=>'OurLanguages.NameIT','name'=>'Lingue impostate da noi','type'=>'joini','join'=>array('InstOurLangs ON InstOurLangs.InstID=Instances.ID','Languages AS OurLanguages ON OurLanguages.ID=InstOurLangs.OurLangID'),'subtype'=>'text','ord'=>false),
|
|
|
+ 'OurLanguages.NameIT'=>array('field'=>'OurLanguages.NameIT','name'=>'Lingue impostate da noi','type'=>'joini','join'=>array('InstOurLangs ON InstOurLangs.InstID=Instances.ID','Languages AS OurLanguages ON OurLanguages.ID=InstOurLangs.OurLangID'),'subtype'=>'text','ord'=>true,'ordjoin'=>array('InstOurLangs AS OrdInstOurLangs ON OrdInstOurLangs.InstID=Instances.ID','Languages AS OrdOurLanguages ON OrdOurLanguages.ID=OrdInstOurLangs.OurLangID'),'ordselmore'=>'GROUP_CONCAT(OrdOurLanguages.NameIT ORDER BY OrdInstOurLangs.Pos ASC SEPARATOR \'\') AS xOrdOurLangs','ordby'=>'xOrdOurLangs'),
|
|
|
'InstOurLangs.OurLangID.First'=>array('field'=>'InstOurLangs.OurLangID','name'=>'Lingua primaria impostata da noi ⮞','type'=>'join','join'=>array('InstOurLangs ON InstOurLangs.InstID=Instances.ID'),'wheremore'=>'AND InstOurLangs.Pos=1','ord'=>false),
|
|
|
- 'OurLanguages.NameIT.First'=>array('field'=>'OurLanguages.NameIT','name'=>'Lingua primaria impostata da noi','type'=>'joini','join'=>array('InstOurLangs ON InstOurLangs.InstID=Instances.ID','Languages AS OurLanguages ON OurLanguages.ID=InstOurLangs.OurLangID'),'subtype'=>'text','wheremore'=>'AND InstOurLangs.Pos=1'),
|
|
|
+ 'OurLanguages.NameIT.First'=>array('field'=>'OurLanguages.NameIT','name'=>'Lingua primaria impostata da noi','type'=>'joini','join'=>array('InstOurLangs ON InstOurLangs.InstID=Instances.ID','Languages AS OurLanguages ON OurLanguages.ID=InstOurLangs.OurLangID'),'subtype'=>'text','wheremore'=>'AND InstOurLangs.Pos=1','ord'=>false),
|
|
|
|
|
|
'InstFinancing.FinID'=>array('field'=>'InstFinancing.FinID','name'=>'Modalità di finanziamento ⮞','type'=>'join','join'=>array('InstFinancing ON InstFinancing.InstID=Instances.ID'),'ord'=>false),
|
|
|
- 'Financing.Type'=>array('field'=>'Financing.Type','name'=>'Modalità di finanziamento','type'=>'joini','join'=>array('InstFinancing ON InstFinancing.InstID=Instances.ID','Financing ON Financing.ID=InstFinancing.FinID'),'subtype'=>'text'),
|
|
|
+ 'Financing.Type'=>array('field'=>'Financing.Type','name'=>'Modalità di finanziamento','type'=>'joini','join'=>array('InstFinancing ON InstFinancing.InstID=Instances.ID','Financing ON Financing.ID=InstFinancing.FinID'),'subtype'=>'text','ord'=>true,'ordjoin'=>array('InstFinancing AS OrdInstFinancing ON OrdInstFinancing.InstID=Instances.ID','Financing AS OrdFinancing ON OrdFinancing.ID=OrdInstFinancing.FinID'),'ordselmore'=>'GROUP_CONCAT(OrdFinancing.Type ORDER BY OrdInstFinancing.Pos ASC SEPARATOR \'\') AS xOrdFinancing','ordby'=>'xOrdFinancing'),
|
|
|
'InstFinancing.FinID.First'=>array('field'=>'InstFinancing.FinID','name'=>'Modalità di finanziamento primaria ⮞','type'=>'join','join'=>array('InstFinancing ON InstFinancing.InstID=Instances.ID'),'wheremore'=>'AND InstFinancing.Pos=1','ord'=>false),
|
|
|
- 'Financing.Type.First'=>array('field'=>'Financing.Type','name'=>'Modalità di finanziamento primaria','type'=>'joini','join'=>array('InstFinancing ON InstFinancing.InstID=Instances.ID','Financing ON Financing.ID=InstFinancing.FinID'),'subtype'=>'text','wheremore'=>'AND InstFinancing.Pos=1'),
|
|
|
+ 'Financing.Type.First'=>array('field'=>'Financing.Type','name'=>'Modalità di finanziamento primaria','type'=>'joini','join'=>array('InstFinancing ON InstFinancing.InstID=Instances.ID','Financing ON Financing.ID=InstFinancing.FinID'),'subtype'=>'text','wheremore'=>'AND InstFinancing.Pos=1','ord'=>false),
|
|
|
|
|
|
'InstPolicies.PolID'=>array('field'=>'InstPolicies.PolID','name'=>'Restrizioni sui contenuti ⮞','type'=>'join','join'=>array('InstPolicies ON InstPolicies.InstID=Instances.ID'),'ord'=>false),
|
|
|
- 'Policies.Name'=>array('field'=>'Policies.Name','name'=>'Restrizioni sui contenuti','type'=>'joini','join'=>array('InstPolicies ON InstPolicies.InstID=Instances.ID','Policies ON Policies.ID=InstPolicies.PolID'),'subtype'=>'text'),
|
|
|
+ 'Policies.Name'=>array('field'=>'Policies.Name','name'=>'Restrizioni sui contenuti','type'=>'joini','join'=>array('InstPolicies ON InstPolicies.InstID=Instances.ID','Policies ON Policies.ID=InstPolicies.PolID'),'subtype'=>'text','ord'=>true,'ordjoin'=>array('InstPolicies AS OrdInstPolicies ON OrdInstPolicies.InstID=Instances.ID','Policies AS OrdPolicies ON OrdPolicies.ID=OrdInstPolicies.PolID'),'ordselmore'=>'GROUP_CONCAT(OrdPolicies.Name ORDER BY OrdInstPolicies.Pos ASC SEPARATOR \'\') AS xOrdPolicies','ordby'=>'xOrdPolicies'),
|
|
|
'InstPolicies.PolID.First'=>array('field'=>'InstPolicies.PolID','name'=>'Restrizione sui contenuti primaria ⮞','type'=>'join','join'=>array('InstPolicies ON InstPolicies.InstID=Instances.ID'),'wheremore'=>'AND InstPolicies.Pos=1','ord'=>false),
|
|
|
- 'Policies.Name.First'=>array('field'=>'Policies.Name','name'=>'Restrizione sui contenuti primaria','type'=>'joini','join'=>array('InstPolicies ON InstPolicies.InstID=Instances.ID','Policies ON Policies.ID=InstPolicies.PolID'),'subtype'=>'text','wheremore'=>'AND InstPolicies.Pos=1'),
|
|
|
+ 'Policies.Name.First'=>array('field'=>'Policies.Name','name'=>'Restrizione sui contenuti primaria','type'=>'joini','join'=>array('InstPolicies ON InstPolicies.InstID=Instances.ID','Policies ON Policies.ID=InstPolicies.PolID'),'subtype'=>'text','wheremore'=>'AND InstPolicies.Pos=1','ord'=>false),
|
|
|
|
|
|
'InstTags.TagID'=>array('field'=>'InstTags.TagID','name'=>'Tags ⮞','type'=>'join','join'=>array('InstTags ON InstTags.InstID=Instances.ID'),'ord'=>false),
|
|
|
- 'Tags.Name'=>array('field'=>'Tags.Name','name'=>'Tags','type'=>'joini','join'=>array('InstTags ON InstTags.InstID=Instances.ID','Tags ON Tags.ID=InstTags.TagID'),'subtype'=>'text'),
|
|
|
+ 'Tags.Name'=>array('field'=>'Tags.Name','name'=>'Tags','type'=>'joini','join'=>array('InstTags ON InstTags.InstID=Instances.ID','Tags ON Tags.ID=InstTags.TagID'),'subtype'=>'text','ord'=>true,'ordjoin'=>array('InstTags AS OrdInstTags ON OrdInstTags.InstID=Instances.ID','Tags AS OrdTags ON OrdTags.ID=OrdInstTags.TagID'),'ordselmore'=>'GROUP_CONCAT(OrdTags.Name ORDER BY OrdInstTags.Pos ASC SEPARATOR \'\') AS xOrdTags','ordby'=>'xOrdTags'),
|
|
|
'InstTags.TagID.First'=>array('field'=>'InstTags.TagID','name'=>'Tag primaria ⮞','type'=>'join','join'=>array('InstTags ON InstTags.InstID=Instances.ID'),'wheremore'=>'AND InstTags.Pos=1','ord'=>false),
|
|
|
- 'Tags.Name.First'=>array('field'=>'Tags.Name','name'=>'Tag primaria','type'=>'joini','join'=>array('InstTags ON InstTags.InstID=Instances.ID','Tags ON Tags.ID=InstTags.TagID'),'subtype'=>'text','wheremore'=>'AND InstTags.Pos=1'),
|
|
|
+ 'Tags.Name.First'=>array('field'=>'Tags.Name','name'=>'Tag primaria','type'=>'joini','join'=>array('InstTags ON InstTags.InstID=Instances.ID','Tags ON Tags.ID=InstTags.TagID'),'subtype'=>'text','wheremore'=>'AND InstTags.Pos=1','ord'=>false),
|
|
|
|
|
|
/*'Statuses'=>array('name'=>'Stati ultima settimana','type'=>'joini','join'=>array('InstActivity ON InstActivity.InstID=Instances.ID'),'subtype'=>'int','selmore'=>'MAX(Week) AS maxweek'),
|
|
|
'Logins'=>array('name'=>'Logins ultima settimana','type'=>'joini','join'=>array('InstActivity ON InstActivity.InstID=Instances.ID'),'subtype'=>'int','selmore'=>'MAX(Week) AS maxweek'),
|
|
@@ -191,11 +189,15 @@ foreach ($_POST as $key=>$val)
|
|
|
if (preg_match('/^openpar-\d+$/',$key)===1)
|
|
|
$pblocks++;
|
|
|
$i=0;
|
|
|
+$ii=0;
|
|
|
$jsaddrows='';
|
|
|
$jssetrows='';
|
|
|
+$jsordaddrows='';
|
|
|
+$jsordsetrows='';
|
|
|
$sels=array();
|
|
|
$joins=array();
|
|
|
$where='';
|
|
|
+$order='';
|
|
|
foreach ($_POST as $key=>$val) {
|
|
|
if (preg_match('/^openpar-\d+$/',$key)===1) {
|
|
|
$i++;
|
|
@@ -217,8 +219,6 @@ foreach ($_POST as $key=>$val) {
|
|
|
if (!in_array($join,$joins))
|
|
|
$joins[]=$join;
|
|
|
}
|
|
|
-/* if (array_key_exists('selmore',$cols[$col]) && !in_array($cols[$col]['selmore'],$sels))
|
|
|
- $sels[]=$cols[$col]['selmore'];*/
|
|
|
}
|
|
|
$jssetrows.=','.json_encode($val);
|
|
|
} else {
|
|
@@ -260,11 +260,49 @@ foreach ($_POST as $key=>$val) {
|
|
|
$where.=' '.$val.' ';
|
|
|
$jssetrows.=','.json_encode($val).');'.N;
|
|
|
}
|
|
|
+
|
|
|
+ if (preg_match('/^ordfieldsel-\d+$/',$key)===1 && preg_match('/^(.+):(.+):(.+)$/',$val,$buf)===1) {
|
|
|
+ $ii++;
|
|
|
+ $col=$buf[1];
|
|
|
+ $type=$buf[2];
|
|
|
+ $subtype=$buf[3];
|
|
|
+ if (array_key_exists($col,$cols) && in_array($type,$types)) {
|
|
|
+ if (!array_key_exists('ordby',$cols[$col])) {
|
|
|
+ $order.=$cols[$col]['field'];
|
|
|
+ if ($type=='join' || $type=='joini') {
|
|
|
+ foreach ($cols[$col]['join'] as $join)
|
|
|
+ if (!in_array($join,$joins))
|
|
|
+ $joins[]=$join;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+// qui si dà per scontato che se 'ordby' esiste esistono anche 'ordselmore' e 'ordjoin'
|
|
|
+ if (!in_array($cols[$col]['ordselmore'],$sels))
|
|
|
+ $sels[]=$cols[$col]['ordselmore'];
|
|
|
+ foreach ($cols[$col]['ordjoin'] as $join)
|
|
|
+ if (!in_array($join,$joins))
|
|
|
+ $joins[]=$join;
|
|
|
+ $order.=$cols[$col]['ordby'];
|
|
|
+ }
|
|
|
+ $jsordaddrows.='ordaddrow('.$ii.',false);'.N;
|
|
|
+ $jsordsetrows.='ordsetrow('.$ii.','.json_encode($val);
|
|
|
+ } else {
|
|
|
+ muoribene($dbg.'<br>Dati POST corrotti.<br>Puoi <a href="instances.php">riprovare resettando i parametri</a> o <a href="index.php">tornare al login</a>.',true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (preg_match('/^ascdesc-\d+$/',$key)===1 && preg_match('/^ASC|DESC$/',$val)===1) {
|
|
|
+ $order.=' '.$val.', ';
|
|
|
+ $jsordsetrows.=','.json_encode($val).');'.N;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
if ($jsaddrows!='') {
|
|
|
$jsaddrows.='document.getElementById("filbut").value="Rimuovi tutti i criteri di ricerca";'.N;
|
|
|
$jsaddrows.='synctai();'.N;
|
|
|
}
|
|
|
+if ($jsordaddrows!='') {
|
|
|
+ $jsordaddrows.='document.getElementById("ordbut").value="Rimuovi tutti i criteri di ordinamento";'.N;
|
|
|
+ $jsordaddrows.='synctoi();'.N;
|
|
|
+}
|
|
|
|
|
|
if (count($sels)>0)
|
|
|
$sels=', '.implode(', ',$sels);
|
|
@@ -272,12 +310,15 @@ else
|
|
|
$sels='';
|
|
|
if ($where!='')
|
|
|
$where='WHERE '.$where;
|
|
|
+if ($order!='')
|
|
|
+ $order='ORDER BY '.substr($order,0,-2);
|
|
|
+$dbg.='ORDER: '.$order.'<br>';
|
|
|
if (count($joins)>0)
|
|
|
$joins='LEFT JOIN '.implode(' LEFT JOIN ',$joins);
|
|
|
else
|
|
|
$joins='';
|
|
|
|
|
|
-$query='SELECT *, Instances.ID AS IID'.$sels.' FROM Instances '.$joins.' '.$where.' GROUP BY IID ORDER BY Instances.URI ASC LIMIT 50';
|
|
|
+$query='SELECT *, Instances.ID AS IID'.$sels.' FROM Instances '.$joins.' '.$where.' GROUP BY IID '.$order.' LIMIT 50';
|
|
|
$dbg.='QUERONA: '.$query.'<br>'.N;
|
|
|
$tini=microtime(true);
|
|
|
$res=mysqli_query($link,$query)
|
|
@@ -359,12 +400,12 @@ if (mysqli_num_rows($res)<1) {
|
|
|
$out.='<div class="baloo"><span class="field">'.$cols['Instances.LongDesc']['name'].':</span> '.nully($row['LongDesc'],true,'strip').'</div>'.N;
|
|
|
// 'strip' o 'htmlent' per la descrizione nostra?
|
|
|
$out.='<div class="baloo"><span class="ourfield">'.$cols['Instances.OurDesc']['name'].':</span> '.nully($row['OurDesc'],true,'strip').'</div>'.N;
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['Places.Locality']['name'].':</span> ';
|
|
|
- if (!is_null($row['PlaceID'])) {
|
|
|
- $sres=mysqli_query($link,'SELECT * FROM Places WHERE Places.ID='.$row['PlaceID'])
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['Localities.Locality']['name'].':</span> ';
|
|
|
+ if (!is_null($row['LocalityID'])) {
|
|
|
+ $sres=mysqli_query($link,'SELECT * FROM Localities LEFT JOIN Provinces ON Provinces.ID=Localities.ProvinceID LEFT JOIN Regions ON Regions.ID=Provinces.RegionID LEFT JOIN States ON States.ID=Regions.StateID WHERE Localities.ID='.$row['LocalityID'])
|
|
|
or muoribene(mysqli_error($link),true);
|
|
|
$srow=mysqli_fetch_assoc($sres);
|
|
|
- $out.=hspech($srow['Locality']).'</div>'.N;
|
|
|
+ $out.=hspech($srow['Locality']).' ('.$srow['Province'].', '.$srow['Region'].', '.$srow['State'].')</div>'.N;
|
|
|
} else {
|
|
|
$out.='<span class="nully">Non definita</span></div>'.N;
|
|
|
}
|
|
@@ -648,6 +689,24 @@ function addrow(index,refresh) {
|
|
|
popusels(index,false);
|
|
|
}
|
|
|
}
|
|
|
+function ordaddrow(index,refresh) {
|
|
|
+ var table=document.getElementById('planciaord');
|
|
|
+ var newrow=table.insertRow(index);
|
|
|
+ var newcell0=newrow.insertCell(0);
|
|
|
+ var newcell1=newrow.insertCell(1);
|
|
|
+ var newcell2=newrow.insertCell(2);
|
|
|
+ var newcell3=newrow.insertCell(3);
|
|
|
+ newcell0.style.width='97%';
|
|
|
+ newcell1.style.width='1%';
|
|
|
+ newcell2.style.width='1%';
|
|
|
+ newcell3.style.width='1%';
|
|
|
+ newcell0.innerHTML='<select class="ordfieldsel"><?php echo($ordfieldselopts); ?></select>';
|
|
|
+ newcell1.innerHTML='<select class="ascdesc"><option value="ASC">Crescente</option><option value="DESC">Decrescente</option></select>';
|
|
|
+ newcell2.innerHTML='<img class="plus" src="imgs/plus.svg">';
|
|
|
+ newcell3.innerHTML='<img class="minus" src="imgs/minus.svg">';
|
|
|
+ if (refresh)
|
|
|
+ synctoi();
|
|
|
+}
|
|
|
function synctai() {
|
|
|
var i=0;
|
|
|
var table=document.getElementById('planciafil');
|
|
@@ -703,6 +762,31 @@ function synctai() {
|
|
|
if (cnodes>=0)
|
|
|
nodes[cnodes].disabled=true;
|
|
|
}
|
|
|
+function synctoi() {
|
|
|
+ var i=0;
|
|
|
+ var table=document.getElementById('planciaord');
|
|
|
+ var nodes=table.querySelectorAll('.minus');
|
|
|
+ var cnodes=nodes.length;
|
|
|
+ for (i=0; i<cnodes; i++)
|
|
|
+ // +1 sempre per via della row iniziale
|
|
|
+ nodes[i].setAttribute('onclick','ordremrow('+(i+1)+');');
|
|
|
+ nodes=table.querySelectorAll('.plus');
|
|
|
+ for (i=0; i<cnodes; i++)
|
|
|
+ // +2 perché la devi aggiungere dopo la corrente
|
|
|
+ nodes[i].setAttribute('onclick','ordaddrow('+(i+2)+',true);');
|
|
|
+// da qui in poi faccio a scendere per non avere mai id e nomi duplicati
|
|
|
+ cnodes--;
|
|
|
+ nodes=table.querySelectorAll('.ordfieldsel');
|
|
|
+ for (i=cnodes; i>-1; i--) {
|
|
|
+ nodes[i].setAttribute('id','ordfieldsel-'+(i+1));
|
|
|
+ nodes[i].setAttribute('name','ordfieldsel-'+(i+1));
|
|
|
+ }
|
|
|
+ nodes=table.querySelectorAll('.ascdesc');
|
|
|
+ for (i=cnodes; i>-1; i--) {
|
|
|
+ nodes[i].setAttribute('id','ascdesc-'+(i+1));
|
|
|
+ nodes[i].setAttribute('name','ascdesc-'+(i+1));
|
|
|
+ }
|
|
|
+}
|
|
|
function selind(id,val) {
|
|
|
var el=document.getElementById(id), i=0, found=false;
|
|
|
while (!found && i<el.length) {
|
|
@@ -729,6 +813,10 @@ function setrow(index,openparv,fieldselv,condselv,valueselv,valueinpv,closeparv,
|
|
|
selind('closepar-'+index,closeparv);
|
|
|
selind('andor-'+index,andorv);
|
|
|
}
|
|
|
+function ordsetrow(index,ordfieldselv,ascdescv) {
|
|
|
+ selind('ordfieldsel-'+index,ordfieldselv);
|
|
|
+ selind('ascdesc-'+index,ascdescv);
|
|
|
+}
|
|
|
function remrow(index) {
|
|
|
var table=document.getElementById('planciafil');
|
|
|
table.deleteRow(index);
|
|
@@ -736,11 +824,23 @@ function remrow(index) {
|
|
|
if (table.rows.length<2)
|
|
|
document.getElementById('filbut').value='Aggiungi criteri di ricerca';
|
|
|
}
|
|
|
+function ordremrow(index) {
|
|
|
+ var table=document.getElementById('planciaord');
|
|
|
+ table.deleteRow(index);
|
|
|
+ synctoi();
|
|
|
+ if (table.rows.length<2)
|
|
|
+ document.getElementById('ordbut').value='Aggiungi criteri di ordinamento';
|
|
|
+}
|
|
|
function truncfil() {
|
|
|
var table=document.getElementById('planciafil');
|
|
|
while (table.rows.length>1)
|
|
|
remrow(1);
|
|
|
}
|
|
|
+function truncord() {
|
|
|
+ var table=document.getElementById('planciaord');
|
|
|
+ while (table.rows.length>1)
|
|
|
+ ordremrow(1);
|
|
|
+}
|
|
|
function manfil() {
|
|
|
var filbut=document.getElementById('filbut');
|
|
|
var table=document.getElementById('planciafil');
|
|
@@ -749,7 +849,18 @@ function manfil() {
|
|
|
addrow(1,true);
|
|
|
filbut.value='Rimuovi tutti i criteri di ricerca';
|
|
|
} else {
|
|
|
- confirma('Confermi di voler rimuovere tutti i criteri di ricerca?','truncfil();filbut.value=\'Aggiungi criteri di ricerca\'');
|
|
|
+ confirma('<p>Confermi di voler rimuovere tutti i criteri di ricerca?</p>','truncfil();filbut.value=\'Aggiungi criteri di ricerca\'');
|
|
|
+ }
|
|
|
+}
|
|
|
+function manord() {
|
|
|
+ var ordbut=document.getElementById('ordbut');
|
|
|
+ var table=document.getElementById('planciaord');
|
|
|
+ var crows=table.rows.length;
|
|
|
+ if (crows<2) {
|
|
|
+ ordaddrow(1,true);
|
|
|
+ ordbut.value='Rimuovi tutti i criteri di ordinamento';
|
|
|
+ } else {
|
|
|
+ confirma('<p>Confermi di voler rimuovere tutti i criteri di ordinamento?</p>','truncord();ordbut.value=\'Aggiungi criteri di ordinamento\'');
|
|
|
}
|
|
|
}
|
|
|
function ckpar() {
|
|
@@ -795,7 +906,7 @@ function ckf() {
|
|
|
document.getElementById('andor-'+(crows-1)).disabled=false;
|
|
|
document.getElementById('f').submit();
|
|
|
} else {
|
|
|
- alerta(emsg);
|
|
|
+ alerta('<p>'+emsg+'</p>');
|
|
|
}
|
|
|
}
|
|
|
//-->
|
|
@@ -838,7 +949,7 @@ function ckf() {
|
|
|
<tr><td colspan="8"><input type="button" id="filbut" value="Aggiungi criteri di ricerca" class="ctrlbut" onclick="manfil();"></td></tr>
|
|
|
</table>
|
|
|
<table id="planciaord" class="planciatab">
|
|
|
-<tr><td colspan="8"><input type="button" id="ordbut" value="Aggiungi criteri di ordinamento" class="ctrlbut" onclick="alert('Aspetta!')"></td></tr>
|
|
|
+<tr><td colspan="4"><input type="button" id="ordbut" value="Aggiungi criteri di ordinamento" class="ctrlbut" onclick="manord();"></td></tr>
|
|
|
</table>
|
|
|
<table id="planciaothers" class="planciatab">
|
|
|
<tr><td><input type="button" id="subbut" value="Applica" class="ctrlbut" onclick="ckf();"></td></tr>
|
|
@@ -851,6 +962,8 @@ function ckf() {
|
|
|
<?php
|
|
|
echo($jsaddrows);
|
|
|
echo($jssetrows);
|
|
|
+echo($jsordaddrows);
|
|
|
+echo($jsordsetrows);
|
|
|
?>
|
|
|
//-->
|
|
|
</script>
|