|
@@ -91,6 +91,7 @@ $dbg.='<pre>'.print_r($_POST,1).'</pre>';
|
|
|
/*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'),
|
|
|
'Instances.Good'=>array('field'=>'Instances.Good','name'=>'Papabile','type'=>'bool'),
|
|
|
'Instances.Chosen'=>array('field'=>'Instances.Chosen','name'=>'Scelta','type'=>'bool'),
|
|
@@ -102,6 +103,8 @@ $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.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'),
|
|
|
|
|
@@ -114,6 +117,8 @@ $cols=array(
|
|
|
'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'),
|
|
|
'Instances.Version'=>array('field'=>'Instances.Version','name'=>'Versione','type'=>'text'),
|
|
@@ -133,35 +138,75 @@ $cols=array(
|
|
|
'Instances.AdmAvatar'=>array('field'=>'Instances.AdmAvatar','name'=>'Avatar admin','type'=>'text','search'=>false,'ord'=>false),
|
|
|
'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'=>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'=>'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'=>'InstLangs.Pos=1','ord'=>false),
|
|
|
+//--------------------------------
|
|
|
+
|
|
|
+ 'InstLangs'=>array('name'=>'Lingue dichiarate','search'=>false,'ord'=>false),
|
|
|
+
|
|
|
+ 'InstLangs.LangID'=>array('field'=>'InstLangs%.LangID','name'=>'Una lingua dichiarata ⮞','type'=>'join','join'=>array('InstLangs AS InstLangs% ON InstLangs%.InstID=Instances.ID'),'ord'=>false),
|
|
|
+
|
|
|
+ 'Languages.NameIT'=>array('field'=>'Languages%.NameIT','name'=>'Una lingua dichiarata','type'=>'joini','join'=>array('InstLangs AS InstLangs% ON InstLangs%.InstID=Instances.ID','Languages AS Languages% ON Languages%.ID=InstLangs%.LangID'),'subtype'=>'text','ord'=>true,'ordname'=>'Lingue dichiarate','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 AS InstLangs% ON InstLangs%.InstID=Instances.ID AND InstLangs%.Pos=1'),'ord'=>false),
|
|
|
+
|
|
|
+ 'Languages.NameIT.First'=>array('field'=>'Languages%.NameIT','name'=>'Lingua primaria dichiarata','type'=>'joini','join'=>array('InstLangs AS InstLangs% ON InstLangs%.InstID=Instances.ID AND InstLangs%.Pos=1','Languages AS Languages% ON Languages%.ID=InstLangs%.LangID'),'subtype'=>'text','ord'=>false),
|
|
|
+
|
|
|
+//--------------------------------
|
|
|
+
|
|
|
+ 'InstOurLangs'=>array('name'=>'Lingue impostate da noi','search'=>false,'ord'=>false),
|
|
|
+
|
|
|
+ 'InstOurLangs.OurLangID'=>array('field'=>'InstOurLangs%.OurLangID','name'=>'Una lingua impostata da noi ⮞','type'=>'join','join'=>array('InstOurLangs AS InstOurLangs% ON InstOurLangs%.InstID=Instances.ID'),'ord'=>false),
|
|
|
+
|
|
|
+ 'OurLanguages.NameIT'=>array('field'=>'OurLanguages%.NameIT','name'=>'Una lingua impostata da noi','type'=>'joini','join'=>array('InstOurLangs AS InstOurLangs% ON InstOurLangs%.InstID=Instances.ID','Languages AS OurLanguages% ON OurLanguages%.ID=InstOurLangs%.OurLangID'),'subtype'=>'text','ord'=>true,'ordname'=>'Lingue impostate da noi','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 AS InstOurLangs% ON InstOurLangs%.InstID=Instances.ID AND InstOurLangs%.Pos=1'),'ord'=>false),
|
|
|
+
|
|
|
+ 'OurLanguages.NameIT.First'=>array('field'=>'OurLanguages%.NameIT','name'=>'Lingua primaria impostata da noi','type'=>'joini','join'=>array('InstOurLangs AS InstOurLangs% ON InstOurLangs%.InstID=Instances.ID AND InstOurLangs%.Pos=1','Languages AS OurLanguages% ON OurLanguages%.ID=InstOurLangs%.OurLangID'),'subtype'=>'text','ord'=>false),
|
|
|
+
|
|
|
+//--------------------------------
|
|
|
+
|
|
|
+ 'InstFinancing'=>array('name'=>'Modalità di finanziamento','search'=>false,'ord'=>false),
|
|
|
+
|
|
|
+ 'InstFinancing.FinID'=>array('field'=>'InstFinancing%.FinID','name'=>'Una modalità di finanziamento ⮞','type'=>'join','join'=>array('InstFinancing AS InstFinancing% ON InstFinancing%.InstID=Instances.ID'),'ord'=>false),
|
|
|
+
|
|
|
+ 'Financing.Type'=>array('field'=>'Financing%.Type','name'=>'Una modalità di finanziamento','type'=>'joini','join'=>array('InstFinancing AS InstFinancing% ON InstFinancing%.InstID=Instances.ID','Financing AS Financing% ON Financing%.ID=InstFinancing%.FinID'),'subtype'=>'text','ord'=>true,'ordname'=>'Modalità di finanziamento','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 AS InstFinancing% ON InstFinancing%.InstID=Instances.ID AND InstFinancing%.Pos=1'),'ord'=>false),
|
|
|
+
|
|
|
+ 'Financing.Type.First'=>array('field'=>'Financing%.Type','name'=>'Modalità di finanziamento primaria','type'=>'joini','join'=>array('InstFinancing AS InstFinancing% ON InstFinancing%.InstID=Instances.ID AND InstFinancing%.Pos=1','Financing AS Financing% ON Financing%.ID=InstFinancing%.FinID'),'subtype'=>'text','ord'=>false),
|
|
|
+
|
|
|
+//--------------------------------
|
|
|
+
|
|
|
+ 'InstPolicies'=>array('name'=>'Restrizioni sui contenuti','search'=>false,'ord'=>false),
|
|
|
+
|
|
|
+ 'InstPolicies.PolID'=>array('field'=>'InstPolicies%.PolID','name'=>'Una restrizione sui contenuti ⮞','type'=>'join','join'=>array('InstPolicies AS InstPolicies% ON InstPolicies%.InstID=Instances.ID'),'ord'=>false),
|
|
|
+
|
|
|
+ 'Policies.Name'=>array('field'=>'Policies%.Name','name'=>'Una restrizione sui contenuti','type'=>'joini','join'=>array('InstPolicies AS InstPolicies% ON InstPolicies%.InstID=Instances.ID','Policies AS Policies% ON Policies%.ID=InstPolicies%.PolID'),'subtype'=>'text','ord'=>true,'ordname'=>'Restrizioni sui contenuti','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 AS InstPolicies% ON InstPolicies%.InstID=Instances.ID AND InstPolicies%.Pos=1'),'ord'=>false),
|
|
|
+
|
|
|
+ 'Policies.Name.First'=>array('field'=>'Policies%.Name','name'=>'Restrizione sui contenuti primaria','type'=>'joini','join'=>array('InstPolicies AS InstPolicies% ON InstPolicies%.InstID=Instances.ID AND InstPolicies%.Pos=1','Policies AS Policies% ON Policies%.ID=InstPolicies%.PolID'),'subtype'=>'text','ord'=>false),
|
|
|
+
|
|
|
+//--------------------------------
|
|
|
+
|
|
|
+ 'InstTags'=>array('name'=>'Tags','search'=>false,'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'=>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'=>'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'=>'InstOurLangs.Pos=1','ord'=>false),
|
|
|
+ 'InstTags.TagID'=>array('field'=>'InstTags%.TagID','name'=>'Una tag ⮞','type'=>'join','join'=>array('InstTags% ON InstTags%.InstID=Instances.ID'),'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','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'=>'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'=>'InstFinancing.Pos=1','ord'=>false),
|
|
|
+ 'Tags.Name'=>array('field'=>'Tags%.Name','name'=>'Una tag','type'=>'joini','join'=>array('InstTags AS InstTags% ON InstTags%.InstID=Instances.ID','Tags AS Tags% ON Tags%.ID=InstTags%.TagID'),'subtype'=>'text','ord'=>true,'ordname'=>'Tags','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'),
|
|
|
|
|
|
- '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','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'=>'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'=>'InstPolicies.Pos=1','ord'=>false),
|
|
|
+ 'InstTags.TagID.First'=>array('field'=>'InstTags%.TagID','name'=>'Tag primaria ⮞','type'=>'join','join'=>array('InstTags AS InstTags% ON InstTags%.InstID=Instances.ID AND InstTags%.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','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'=>'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'=>'InstTags.Pos=1','ord'=>false),
|
|
|
+ 'Tags.Name.First'=>array('field'=>'Tags%.Name','name'=>'Tag primaria','type'=>'joini','join'=>array('InstTags AS InstTags% ON InstTags%.InstID=Instances.ID AND InstTags%.Pos=1','Tags AS Tags% ON Tags%.ID=InstTags%.TagID'),'subtype'=>'text','ord'=>false),
|
|
|
|
|
|
-// queste 3 qui sotto se si usano sia per ricerca sia per ordinamento e/o se si usano congiuntamente per più ricerche e/o ordinamenti, producono query un po' sporche, con ridondanza di where clause "InstActivity.Pos=1", ma viva l'ottimizzatore :))
|
|
|
- 'InstActivity.Statuses.First'=>array('field'=>'InstActivity.Statuses','name'=>'Stati ultima settimana','type'=>'joini','join'=>array('InstActivity ON InstActivity.InstID=Instances.ID'),'subtype'=>'int','wheremore'=>'InstActivity.Pos=1'),
|
|
|
- 'InstActivity.Logins.First'=>array('field'=>'InstActivity.Logins','name'=>'Logins ultima settimana','type'=>'joini','join'=>array('InstActivity ON InstActivity.InstID=Instances.ID'),'subtype'=>'int','wheremore'=>'InstActivity.Pos=1'),
|
|
|
- 'IntstActivity.Registrations.First'=>array('field'=>'InstActivity.Registrations','name'=>'Registrazioni ultima settimana','type'=>'joini','join'=>array('InstActivity ON InstActivity.InstID=Instances.ID'),'subtype'=>'int','wheremore'=>'InstActivity.Pos=1'),
|
|
|
+//--------------------------------
|
|
|
+
|
|
|
+ 'InstActivity.Statuses.First'=>array('field'=>'InstActivity.Statuses','name'=>'Stati ultima settimana','type'=>'joini','join'=>array('InstActivity AS InstActivity ON InstActivity.InstID=Instances.ID AND InstActivity.Pos=1'),'subtype'=>'int','ord'=>true,'ordjoin'=>array('InstActivity AS OrdInstActivity ON OrdInstActivity.InstID=Instances.ID AND OrdInstActivity.Pos=1'),'ordselmore'=>1,'ordby'=>'OrdInstActivity.Statuses'),
|
|
|
+
|
|
|
+ 'InstActivity.Logins.First'=>array('field'=>'InstActivity.Logins','name'=>'Logins ultima settimana','type'=>'joini','join'=>array('InstActivity AS InstActivity ON InstActivity.InstID=Instances.ID AND InstActivity.Pos=1'),'subtype'=>'int','ord'=>true,'ordjoin'=>array('InstActivity AS OrdInstActivity ON OrdInstActivity.InstID=Instances.ID AND OrdInstActivity.Pos=1'),'ordselmore'=>1,'ordby'=>'OrdInstActivity.Logins'),
|
|
|
+
|
|
|
+ 'IntstActivity.Registrations.First'=>array('field'=>'InstActivity.Registrations','name'=>'Registrazioni ultima settimana','type'=>'joini','join'=>array('InstActivity AS InstActivity ON InstActivity.InstID=Instances.ID AND InstActivity.Pos=1'),'subtype'=>'int','ord'=>true,'ordjoin'=>array('InstActivity AS OrdInstActivity ON OrdInstActivity.InstID=Instances.ID AND OrdInstActivity.Pos=1'),'ordselmore'=>1,'ordby'=>'OrdInstActivity.Registrations'),
|
|
|
+
|
|
|
+//--------------------------------
|
|
|
|
|
|
/*'InstActivity.Statuses.AVG'=>array('field'=>'InstActivity.Statuses','name'=>'Media stati ultima settimana','type'=>'joini','join'=>array('InstActivity ON InstActivity.InstID=Instances.ID'),'subtype'=>'int','ord'=>true,'ordjoin'=>array('InstActivity AS OrdInstActivity ON OrdInstActivity.InstID=Instances.ID'),'ordselmore'=>'AVG(InstActivity.Statuses) AS avgstatuses'),
|
|
|
'InstActivity.Logins.AVG'=>array('field'=>'InstActivity.Logins','name'=>'Logins ultima settimana','type'=>'joini','join'=>array('InstActivity ON InstActivity.InstID=Instances.ID'),'subtype'=>'int','wheremore'=>'InstActivity.Pos=1','ord'=>false),
|
|
@@ -182,10 +227,14 @@ foreach ($cols as $key=>$arr) {
|
|
|
}
|
|
|
}
|
|
|
if (!array_key_exists('ord',$arr) || $arr['ord']==true) {
|
|
|
+ if (!array_key_exists('ordname',$arr))
|
|
|
+ $name=$arr['name'];
|
|
|
+ else
|
|
|
+ $name=$arr['ordname'];
|
|
|
if ($arr['type']=='joini') {
|
|
|
- $ordfieldselopts.='<option value="'.$key.':'.$arr['type'].':'.$arr['subtype'].'">'.$arr['name'].'</option>';
|
|
|
+ $ordfieldselopts.='<option value="'.$key.':'.$arr['type'].':'.$arr['subtype'].'">'.$name.'</option>';
|
|
|
} else {
|
|
|
- $ordfieldselopts.='<option value="'.$key.':'.$arr['type'].':null">'.$arr['name'].'</option>';
|
|
|
+ $ordfieldselopts.='<option value="'.$key.':'.$arr['type'].':null">'.$name.'</option>';
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -194,8 +243,9 @@ $pblocks=0;
|
|
|
foreach ($_POST as $key=>$val)
|
|
|
if (preg_match('/^openpar-\d+$/',$key)===1)
|
|
|
$pblocks++;
|
|
|
-$i=0;
|
|
|
-$ii=0;
|
|
|
+$fi=0;
|
|
|
+$ji=0;
|
|
|
+$oi=0;
|
|
|
$jsaddrows='';
|
|
|
$jssetrows='';
|
|
|
$jsordaddrows='';
|
|
@@ -207,22 +257,23 @@ $where='';
|
|
|
$order='';
|
|
|
foreach ($_POST as $key=>$val) {
|
|
|
if (preg_match('/^openpar-\d+$/',$key)===1) {
|
|
|
- $i++;
|
|
|
+ $fi++;
|
|
|
if (preg_match('/^\(+$/',$val)===1)
|
|
|
$where.=$val;
|
|
|
- $jsaddrows.='addrow('.$i.',false);'.N;
|
|
|
- $jssetrows.='setrow('.$i.','.json_encode($val);
|
|
|
+ $jsaddrows.='addrow('.$fi.',false);'.N;
|
|
|
+ $jssetrows.='setrow('.$fi.','.json_encode($val);
|
|
|
}
|
|
|
if (preg_match('/^fieldsel-\d+$/',$key)===1 && preg_match('/^(.+):(.+):(.+)$/',$val,$buf)===1) {
|
|
|
$tagk=$buf[1];
|
|
|
$type=$buf[2];
|
|
|
$subtype=$buf[3];
|
|
|
if (array_key_exists($tagk,$cols) && in_array($type,$types)) {
|
|
|
- if (array_key_exists('wheremore',$cols[$tagk]))
|
|
|
- $where.='(';
|
|
|
- $where.=$cols[$tagk]['field'];
|
|
|
+ if (strpos($cols[$tagk]['field'],'%')!==false)
|
|
|
+ $ji++;
|
|
|
+ $where.=str_replace('%',$ji,$cols[$tagk]['field']);
|
|
|
if ($type=='join' || $type=='joini') {
|
|
|
foreach ($cols[$tagk]['join'] as $join) {
|
|
|
+ $join=str_replace('%',$ji,$join);
|
|
|
if (!in_array($join,$joins))
|
|
|
$joins[]=$join;
|
|
|
}
|
|
@@ -246,8 +297,6 @@ foreach ($_POST as $key=>$val) {
|
|
|
}
|
|
|
if (preg_match('/^valuesel-\d+$/',$key)===1) {
|
|
|
$where.=$val;
|
|
|
- if (array_key_exists('wheremore',$cols[$tagk]))
|
|
|
- $where.=' AND '.$cols[$tagk]['wheremore'].')';
|
|
|
$jssetrows.=','.json_encode($val);
|
|
|
$jssetrows.=',""';
|
|
|
}
|
|
@@ -256,9 +305,7 @@ foreach ($_POST as $key=>$val) {
|
|
|
$where.='\'%'.myesc($link,$val).'%\'';
|
|
|
else
|
|
|
$where.='\''.myesc($link,$val).'\'';
|
|
|
- if (array_key_exists('wheremore',$cols[$tagk]))
|
|
|
- $where.=' AND '.$cols[$tagk]['wheremore'].')';
|
|
|
- $jssetrows.=',"NOMMITROVIHODETTO!"';
|
|
|
+ $jssetrows.=',"NOMMITROVI!"';
|
|
|
$jssetrows.=','.json_encode($val);
|
|
|
}
|
|
|
if (preg_match('/^closepar-\d+$/',$key)===1) {
|
|
@@ -267,45 +314,41 @@ foreach ($_POST as $key=>$val) {
|
|
|
$jssetrows.=','.json_encode($val);
|
|
|
}
|
|
|
if (preg_match('/^andor-\d+$/',$key)===1 && preg_match('/^AND|OR$/',$val)===1) {
|
|
|
- if ($i<$pblocks)
|
|
|
+ if ($fi<$pblocks)
|
|
|
$where.=' '.$val.' ';
|
|
|
$jssetrows.=','.json_encode($val).');'.N;
|
|
|
}
|
|
|
|
|
|
if (preg_match('/^ordfieldsel-\d+$/',$key)===1 && preg_match('/^(.+):(.+):(.+)$/',$val,$buf)===1) {
|
|
|
- $ii++;
|
|
|
+ $oi++;
|
|
|
$tagk=$buf[1];
|
|
|
$type=$buf[2];
|
|
|
$subtype=$buf[3];
|
|
|
if (array_key_exists($tagk,$cols) && in_array($type,$types)) {
|
|
|
- if (!array_key_exists('ordby',$cols[$tagk])) {
|
|
|
- $order.=$cols[$tagk]['field'];
|
|
|
- if ($type=='join' || $type=='joini') {
|
|
|
+ if ($type=='join' || $type=='joini') {
|
|
|
+ if (!array_key_exists('ordjoin',$cols[$tagk])) {
|
|
|
foreach ($cols[$tagk]['join'] as $join)
|
|
|
if (!in_array($join,$joins))
|
|
|
$joins[]=$join;
|
|
|
+ } else {
|
|
|
+ foreach ($cols[$tagk]['ordjoin'] as $join)
|
|
|
+ if (!in_array($join,$joins))
|
|
|
+ $joins[]=$join;
|
|
|
}
|
|
|
+ }
|
|
|
+ if (!array_key_exists('ordby',$cols[$tagk])) {
|
|
|
+ $order.=$cols[$tagk]['field'];
|
|
|
} else {
|
|
|
-// qui si dà per scontato che se 'ordby' esiste esistono anche 'ordjoin' e 'ordselmore'
|
|
|
- foreach ($cols[$tagk]['ordjoin'] as $join)
|
|
|
- if (!in_array($join,$joins))
|
|
|
- $joins[]=$join;
|
|
|
if (!in_array($cols[$tagk]['ordselmore'],$sels))
|
|
|
$sels[]=$cols[$tagk]['ordselmore'];
|
|
|
$order.=$cols[$tagk]['ordby'];
|
|
|
}
|
|
|
- if (array_key_exists('wheremore',$cols[$tagk])) {
|
|
|
- if ($where!='')
|
|
|
- $where.=' AND '.$cols[$tagk]['wheremore'];
|
|
|
- else
|
|
|
- $where.=$cols[$tagk]['wheremore'];
|
|
|
- }
|
|
|
if (array_key_exists('havings',$cols[$tagk]) && !in_array($cols[$tagk]['havings'],$havings))
|
|
|
$havings[]=$cols[$tagk]['havings'];
|
|
|
if (array_key_exists('selmore',$cols[$tagk]) && !in_array($cols[$tagk]['selmore'],$sels))
|
|
|
$sels[]=$cols[$tagk]['selmore'];
|
|
|
- $jsordaddrows.='ordaddrow('.$ii.',false);'.N;
|
|
|
- $jsordsetrows.='ordsetrow('.$ii.','.json_encode($val);
|
|
|
+ $jsordaddrows.='ordaddrow('.$oi.',false);'.N;
|
|
|
+ $jsordsetrows.='ordsetrow('.$oi.','.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);
|
|
|
}
|
|
@@ -443,9 +486,9 @@ if (mysqli_num_rows($res)<1) {
|
|
|
$i++;
|
|
|
$buf[]=$i.': '.hspech($srow['Code'].' ['.$srow['NameIT'].']');
|
|
|
}
|
|
|
- $out.='<div class="baloo"><span class="field">'.$cols['Languages.NameIT']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="field">'.$cols['InstLangs']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
} else {
|
|
|
- $out.='<div class="baloo"><span class="field">'.$cols['Languages.NameIT']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="field">'.$cols['InstLangs']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
}
|
|
|
$sres=mysqli_query($link,'SELECT * FROM InstOurLangs LEFT JOIN Languages ON Languages.ID=OurLangID WHERE InstID='.$row['IID'].' ORDER BY Pos ASC')
|
|
|
or muoribene(mysqli_error($link),true);
|
|
@@ -456,9 +499,9 @@ if (mysqli_num_rows($res)<1) {
|
|
|
$i++;
|
|
|
$buf[]=$i.': '.hspech($srow['Code'].' ['.$srow['NameIT'].']');
|
|
|
}
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['OurLanguages.NameIT']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['InstOurLangs']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
} else {
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['OurLanguages.NameIT']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['InstOurLangs']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
}
|
|
|
$sres=mysqli_query($link,'SELECT * FROM InstFinancing LEFT JOIN Financing ON Financing.ID=FinID WHERE InstID='.$row['IID'].' ORDER BY Pos ASC')
|
|
|
or muoribene(mysqli_error($link),true);
|
|
@@ -469,9 +512,9 @@ if (mysqli_num_rows($res)<1) {
|
|
|
$i++;
|
|
|
$buf[]=$i.': '.hspech($srow['Type']);
|
|
|
}
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['Financing.Type']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['InstFinancing']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
} else {
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['Financing.Type']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['InstFinancing']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
}
|
|
|
$sres=mysqli_query($link,'SELECT * FROM InstPolicies LEFT JOIN Policies ON Policies.ID=PolID WHERE InstID='.$row['IID'].' ORDER BY Pos ASC')
|
|
|
or muoribene(mysqli_error($link),true);
|
|
@@ -482,9 +525,9 @@ if (mysqli_num_rows($res)<1) {
|
|
|
$i++;
|
|
|
$buf[]=$i.': '.hspech($srow['Name']);
|
|
|
}
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['Policies.Name']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['InstPolicies']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
} else {
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['Policies.Name']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['InstPolicies']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
}
|
|
|
$sres=mysqli_query($link,'SELECT * FROM InstTags LEFT JOIN Tags ON Tags.ID=TagID WHERE InstID='.$row['IID'].' ORDER BY Pos ASC')
|
|
|
or muoribene(mysqli_error($link),true);
|
|
@@ -495,9 +538,9 @@ if (mysqli_num_rows($res)<1) {
|
|
|
$i++;
|
|
|
$buf[]=$i.': '.hspech($srow['Name']);
|
|
|
}
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['Tags.Name']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['InstTags']['name'].':</span> '.implode('; ',$buf).'</div>'.N;
|
|
|
} else {
|
|
|
- $out.='<div class="baloo"><span class="ourfield">'.$cols['Tags.Name']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
+ $out.='<div class="baloo"><span class="ourfield">'.$cols['InstTags']['name'].':</span> <span class="nully">Non definite</span></div>'.N;
|
|
|
}
|
|
|
$out.='<div class="baloo"><span class="field">'.$cols['Instances.Email']['name'].':</span> '.nully($row['Email'],true,'email').'</div>'.N;
|
|
|
$out.='<div class="baloo"><span class="field">'.$cols['Instances.Software']['name'].':</span> '.nully($row['Software'],false,'strip').'</div>'.N;
|
|
@@ -523,6 +566,12 @@ if (mysqli_num_rows($res)<1) {
|
|
|
$out.='<div class="bigtabfoot"></div>';
|
|
|
}
|
|
|
|
|
|
+$filtpresopts='<option value="null"></option>'.N;
|
|
|
+$res=mysqli_query($link,'SELECT * FROM FilterPresets')
|
|
|
+ or muoribene(mysqli_error($link),true);
|
|
|
+while ($row=mysqli_fetch_assoc($res))
|
|
|
+ $filtpresopts.='<option value="'.$row['ID'].'">'.hspech($row['Name']).'</option>'.N;
|
|
|
+
|
|
|
mysqli_close($link);
|
|
|
|
|
|
?>
|
|
@@ -709,8 +758,10 @@ function addrow(index,refresh) {
|
|
|
newcell3.innerHTML='<select class="valuesel" style="display:none;"></select><input type="text" class="valueinp" maxlength="256" style="display:none;">';
|
|
|
newcell4.innerHTML='<select class="closepar"><option value="null"></option><option value=")">)</option><option value="))">))</option><option value=")))">)))</option></select>';
|
|
|
newcell5.innerHTML='<select class="andor"><option value="AND">E</option><option value="OR">O</option></select>';
|
|
|
- newcell6.innerHTML='<img class="plus" src="imgs/plus.svg">';
|
|
|
- newcell7.innerHTML='<img class="minus" src="imgs/minus.svg">';
|
|
|
+ newcell6.innerHTML='<img class="plus" src="imgs/plus.svg" title="Aggiungi un criterio sotto questo">';
|
|
|
+ newcell6.style.width='22px';
|
|
|
+ newcell7.innerHTML='<img class="minus" src="imgs/minus.svg" title="Rimuovi questo criterio">';
|
|
|
+ newcell7.style.width='22px';
|
|
|
if (refresh) {
|
|
|
synctai();
|
|
|
popusels(index,false);
|
|
@@ -729,8 +780,8 @@ function ordaddrow(index,refresh) {
|
|
|
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">';
|
|
|
+ newcell2.innerHTML='<img class="plus" src="imgs/plus.svg" title="Aggiungi un criterio sotto questo">';
|
|
|
+ newcell3.innerHTML='<img class="minus" src="imgs/minus.svg" title="Rimuovi questo criterio">';
|
|
|
if (refresh)
|
|
|
synctoi();
|
|
|
}
|
|
@@ -950,6 +1001,54 @@ function pupwait(on) {
|
|
|
pup.style.display='none';
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+//function setrow(index,openparv,fieldselv,condselv,valueselv,valueinpv,closeparv,andorv)
|
|
|
+function loadfiltpres() {
|
|
|
+ pupwait(true);
|
|
|
+ truncfil();
|
|
|
+ let formdata=new FormData();
|
|
|
+ formdata.append('act','loadfil');
|
|
|
+ formdata.append('fid',document.getElementById('filtpres').value);
|
|
|
+ let xhr=new XMLHttpRequest();
|
|
|
+ xhr.open('POST','loadsavepres.php');
|
|
|
+ xhr.responseType='json';
|
|
|
+ xhr.send(formdata);
|
|
|
+ xhr.onload=function() {
|
|
|
+ let jarr=xhr.response;
|
|
|
+ for (i=0; i<jarr.length; i++) {
|
|
|
+ console.log(jarr[i]);
|
|
|
+ addrow(i+1,false);
|
|
|
+ }
|
|
|
+ synctai();
|
|
|
+ for (i=0; i<jarr.length; i++) {
|
|
|
+ setrow(i+1, jarr[i]['OpenPar'], jarr[i]['Field'], jarr[i]['Cond'], jarr[i]['ValueSel'], jarr[i]['ValueInp'], jarr[i]['ClosePar'], jarr[i]['AndOr']);
|
|
|
+ }
|
|
|
+ if (jarr.length>0)
|
|
|
+ document.getElementById('filbut').value='Rimuovi tutti i criteri di ricerca';
|
|
|
+ pupwait(false);
|
|
|
+ };
|
|
|
+ xhr.onerror=function() {
|
|
|
+ alert('Request failed');
|
|
|
+ };
|
|
|
+}
|
|
|
+function savefiltpres() {
|
|
|
+ pupwait(true);
|
|
|
+ let formdata=new FormData(document.forms.f);
|
|
|
+ formdata.append('act','savefil');
|
|
|
+ formdata.append('fid',document.getElementById('filtpres').value);
|
|
|
+ let xhr=new XMLHttpRequest();
|
|
|
+ xhr.open('POST','loadsavepres.php');
|
|
|
+ xhr.responseType='json';
|
|
|
+ xhr.send(formdata);
|
|
|
+ xhr.onload=function() {
|
|
|
+ console.log(xhr.response);
|
|
|
+ pupwait(false);
|
|
|
+ };
|
|
|
+ xhr.onerror=function() {
|
|
|
+ alert('Request failed');
|
|
|
+ };
|
|
|
+}
|
|
|
+
|
|
|
//-->
|
|
|
</script>
|
|
|
</head>
|
|
@@ -984,19 +1083,20 @@ function pupwait(on) {
|
|
|
<?php echo($dbg); ?>
|
|
|
</div>
|
|
|
|
|
|
-<form method="post" id="f" onsubmit="ckf();">
|
|
|
<div id="plancia">
|
|
|
+<form method="post" id="f" onsubmit="ckf();">
|
|
|
<table id="planciafil" class="planciatab">
|
|
|
<tr><td colspan="8"><input type="button" id="filbut" value="Aggiungi criteri di ricerca" class="ctrlbut" onclick="manfil();"></td></tr>
|
|
|
</table>
|
|
|
+<table class="planciatab"><tr><td style="width:1%">Preset di ricerca: </td><td style="width:96%"><select name="filtpres" id="filtpres" class="preset" onchange="loadfiltpres();"><?php echo($filtpresopts); ?></select></td><td style="width:1%"><img src="imgs/salva.svg" class="lilbut" onclick="savefiltpres(false);" title="Salva i criteri impostati nel preset selezionato sovrascrivendolo"></td><td style="width:1%"><img src="imgs/salvacome.svg" class="lilbut" onclick="savefiltpres(true);" title="Salva i criteri impostati come nuovo preset ..."></td><td style="width:1%"><img src="imgs/minus.svg" class="lilbut" onclick="remfiltpres();" title="Elimina il preset selezionato"></td></tr></table>
|
|
|
<table id="planciaord" class="planciatab">
|
|
|
<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>
|
|
|
</table>
|
|
|
-</div>
|
|
|
</form>
|
|
|
+</div>
|
|
|
|
|
|
<script language="JavaScript">
|
|
|
<!--
|