Example #1
0
function exec_memoriser_dist()
{
	$hash = _request('hash');
	$order = _request('order');
	$by = _request('by');
	$trad = _request('trad');
	lire_fichier(_DIR_SESSIONS.'ajax_fonctions.txt', $ajax_fonctions);
	$ajax_fonctions = @unserialize($ajax_fonctions);

	if ($res = $ajax_fonctions[$hash]) {
		include_spip('inc/afficher_objets');
		list(,$t,$r,$f) = $res;
		if (preg_match('/^[a-z0-9+.,]+$/', $by)
		AND preg_match('/^\w*$/', $order)) {
			$r['ORDER BY'] = str_replace(',', " $order, ", $by) .  " $order";
			sauver_requete($t, $r, $f);
		}
		$cpt = sql_countsel($r['FROM'], $r['WHERE'], $r['GROUP BY']);
		include_spip('inc/presentation');
		$res = afficher_articles_trad($t, $r, $f, $hash, $cpt, $trad);
	} else spip_log("memoriser $q vide");
	include_spip('inc/actions');
	ajax_retour($res);
}
Example #2
0
function inc_afficher_articles_dist($titre, $requete, $formater='') {

	if (!isset($requete['FROM'])) $requete['FROM'] = 'spip_articles AS articles';

	if (!isset($requete['SELECT'])) {
		$requete['SELECT'] = "articles.id_article, articles.titre, articles.id_rubrique, articles.statut, articles.date, articles.lang, articles.id_trad, articles.descriptif";
	}

	if (!isset($requete['GROUP BY'])) $requete['GROUP BY'] = '';

	$cpt = sql_countsel($requete['FROM'], $requete['WHERE'], $requete['GROUP BY']);

	if (!$cpt) return '' ;

	$requete['FROM'] = preg_replace("/(spip_articles(\s+AS\s+\w+)?)/i", "\\1 LEFT JOIN spip_petitions AS petitions ON articles.id_article=petitions.id_article", $requete['FROM']);

	$requete['SELECT'] .= ", petitions.id_article AS petition ";

	// memorisation des arguments pour gerer l'affichage par tranche
	// et/ou par langues.


	$hash = sauver_requete($titre, $requete, $formater);

	if (isset($requete['LIMIT'])) $cpt = min($requete['LIMIT'], $cpt);
	return afficher_articles_trad($titre, $requete, $formater, $hash, $cpt);
}