Valider c8233d68 rédigé par marcimat's avatar marcimat
Parcourir les fichiers

Permettre des recherches de tables jointes sur les critères {par multi x} (merci Cédric).

On autorise :
- {par multi L1.nom} , mais également 
- (PAQUETS plugins){par multi nom}, nom étant sur la table plugins

Cependant :
- (ARTICLES){par multi nom} ne fonctionne pas seul avec ce dépot. il faut la table de destination connue, par exemple avec
- (ARTICLES auteurs){par multi nom}
parent 82d38190
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+26 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -417,12 +417,34 @@ function critere_parinverse($idb, &$boucles, $crit, $sens = ''){
			$par = $par->texte;
			// par multi champ
			if (preg_match(",^multi[\s]*(.*)$,", $par, $m)){
				$texte = $boucle->id_table.'.'.trim($m[1]);
				$champ = trim($m[1]);
				// par multi L1.champ
				if (strpos($champ, '.')) {
					$cle = '';
				// par multi champ (champ sur une autre table)
				} elseif (!array_key_exists($champ, $boucle->show['field'])){
					$cle = trouver_jointure_champ($champ, $boucle);
				// par multi champ (champ dans la table en cours)
				} else {
					$cle = $boucle->id_table;
				}
				$texte = $cle.'.'.$champ;
				$boucle->select[] = "\".sql_multi('".$texte."', \$GLOBALS['spip_lang']).\"";
				$order = "'multi'";
				// par num champ(, suite)
			} else if (preg_match(",^num (.*)$,m", $par, $m)) {
				$texte = '0+'.$boucle->id_table.'.'.trim($m[1]);
				$champ = trim($m[1]);
				// par num L1.champ
				if (strpos($champ, '.')) {
					$cle = '';
				// par num champ (champ sur une autre table)
				} elseif (!array_key_exists($champ, $boucle->show['field'])){
					$cle = trouver_jointure_champ($champ, $boucle);
				// par num champ (champ dans la table en cours)
				} else {
					$cle = $boucle->id_table;
				}
				$texte = '0+'. $cle . '.' . $champ;
				$suite = calculer_liste($tri, array(), $boucles, $boucle->id_parent);
				if ($suite!=="''")
					$texte = "\" . ((\$x = $suite) ? ('$texte' . \$x) : '0')"." . \"";