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); }
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); }