0 AND article.statut!='refuse'"));
$nb_articles = $nb_articles['n'];
$nb_rubriques = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots_rubriques AS lien, spip_rubriques AS rubrique WHERE lien.id_mot=$conf_mot AND rubrique.id_rubrique=lien.id_rubrique"));
$nb_rubriques = $nb_rubriques['n'];
$nb_breves = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots_breves AS lien, spip_breves AS breve WHERE lien.id_mot=$conf_mot AND breve.id_breve=lien.id_breve AND (breve.statut IN ($aff_articles))>0 AND breve.statut!='refuse'"));
$nb_breves = $nb_breves['n'];
$nb_sites = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots_syndic AS lien, spip_syndic AS syndic WHERE lien.id_mot=$conf_mot AND syndic.id_syndic=lien.id_syndic AND (syndic.statut IN ($aff_articles))>0 AND syndic.statut!='refuse'"));
$nb_sites = $nb_sites['n'];
$nb_forum = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots_forum AS lien, spip_forum AS forum WHERE lien.id_mot=$conf_mot AND forum.id_forum=lien.id_forum AND forum.statut='publie'"));
$nb_forum = $nb_forum['n'];
$nb_evenements = 0;
if (isset($tables_principales['spip_evenements'])){
$nb_evenements = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots_evenements AS lien, spip_evenements AS evenement WHERE lien.id_mot=$conf_mot AND evenement.id_evenement=lien.id_evenement"));
$nb_evenements = $nb_evenements['n'];
}
$nb_agenda = 0;
if (isset($tables_principales['spip_pim_agenda'])){
$nb_agenda = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots_pim_agenda AS lien, spip_pim_agenda AS agenda WHERE lien.id_mot=$conf_mot AND agenda.id_agenda=lien.id_agenda"));
$nb_agenda = $nb_agenda['n'];
}
// si le mot n'est pas lie, on demande sa suppression
if ($nb_articles + $nb_breves + $nb_sites + $nb_forum + $nb_evenements + $nb_agenda == 0) {
redirige_par_entete(generer_url_ecrire("mots_edit","supp_mot=$id_mot&redirect_ok=oui&redirect=" . rawurlencode(generer_url_ecrire('mots_tous')), true));
} // else traite plus loin (confirmation de suppression)
}
}
if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques) {
if (function_exists('Agenda_install')) Agenda_install();
if (function_exists('PIMAgenda_install')) PIMAgenda_install();
if ($modifier_groupe == "oui") {
$change_type = (corriger_caracteres($change_type));
$texte = (corriger_caracteres($texte));
$descriptif = (corriger_caracteres($descriptif));
if (!$new) { // modif groupe
spip_query("UPDATE spip_mots SET type=" . spip_abstract_quote($change_type) . " WHERE id_groupe=$id_groupe");
spip_query("UPDATE spip_groupes_mots SET titre=" . spip_abstract_quote($change_type) . ", texte=" . spip_abstract_quote($texte) . ", descriptif=" . spip_abstract_quote($descriptif) . ", unseul=" . spip_abstract_quote($unseul) . ", obligatoire=" . spip_abstract_quote($obligatoire) . ", articles=" . spip_abstract_quote($articles) . ", breves=" . spip_abstract_quote($breves) . ", rubriques=" . spip_abstract_quote($rubriques) . ", syndic=" . spip_abstract_quote($syndic) . ", minirezo=" . spip_abstract_quote($acces_minirezo) . ", comite=" . spip_abstract_quote($acces_comite) . ", forum=" . spip_abstract_quote($acces_forum) . " WHERE id_groupe=$id_groupe");
} else { // creation groupe
$id_groupe = spip_abstract_insert('spip_groupes_mots', "(titre, texte, descriptif, unseul, obligatoire, articles, breves, rubriques, syndic, minirezo, comite, forum)", "(" . spip_abstract_quote($change_type) . ", " . spip_abstract_quote($texte) . " , " . spip_abstract_quote($descriptif) . " , " . spip_abstract_quote($unseul) . " , " . spip_abstract_quote($obligatoire) . " , " . spip_abstract_quote($articles) . " ," . spip_abstract_quote($breves) . " , " . spip_abstract_quote($rubriques) . " , " . spip_abstract_quote($syndic) . " , " . spip_abstract_quote($acces_minirezo) . " , " . spip_abstract_quote($acces_comite) . " , " . spip_abstract_quote($acces_forum) . " )");
}
if ($id_groupe && isset($tables_principales['spip_evenements']))
spip_query("UPDATE spip_groupes_mots SET evenements=".spip_abstract_quote($evenements)." WHERE id_groupe=$id_groupe");
if ($id_groupe && isset($tables_principales['spip_pim_agenda']))
spip_query("UPDATE spip_groupes_mots SET pim_agenda=".spip_abstract_quote($pim_agenda)." WHERE id_groupe=$id_groupe");
}
if ($supp_group){
spip_query("DELETE FROM spip_groupes_mots WHERE id_groupe=" . intval($supp_group));
}
}
pipeline('exec_init',array('args'=>array('exec'=>'mots_tous'),'data'=>''));
debut_page(_T('titre_page_mots_tous'), "naviguer", "mots");
debut_gauche();
echo pipeline('affiche_gauche',array('args'=>array('exec'=>'mots_tous'),'data'=>''));
creer_colonne_droite();
echo pipeline('affiche_droite',array('args'=>array('exec'=>'mots_tous'),'data'=>''));
debut_droite();
gros_titre(_T('titre_mots_tous'));
if (acces_mots()) {
echo typo(_T('info_creation_mots_cles')) . aide ("mots") ;
}
echo "
";
// Preliminaire: confirmation de suppression d'un mot lie à qqch
// (cf fin de afficher_groupe_mots_boucle executee a l'appel precedent)
// Faudrait ajaxer ça.
if ($conf_mot = intval($conf_mot)) {
$row = spip_fetch_array(spip_query("SELECT * FROM spip_mots WHERE id_mot=$conf_mot"));
$id_mot = $row['id_mot'];
$titre_mot = typo($row['titre']);
$type_mot = typo($row['type']);
if (($na = intval($na)) == 1) {
$texte_lie = _T('info_un_article')." ";
} else if ($na > 1) {
$texte_lie = _T('info_nombre_articles', array('nb_articles' => $na)) ." ";
}
if (($nb = intval($nb)) == 1) {
$texte_lie .= _T('info_une_breve')." ";
} else if ($nb > 1) {
$texte_lie .= _T('info_nombre_breves', array('nb_breves' => $nb))." ";
}
if (($ns = intval($ns)) == 1) {
$texte_lie .= _T('info_un_site')." ";
} else if ($ns > 1) {
$texte_lie .= _T('info_nombre_sites', array('nb_sites' => $ns))." ";
}
if (($nr = intval($nr)) == 1) {
$texte_lie .= _T('info_une_rubrique')." ";
} else if ($nr > 1) {
$texte_lie .= _T('info_nombre_rubriques', array('nb_rubriques' => $nr))." ";
}
if ($nb_evenements == 1) {
$texte_lie .= _T('agenda:info_un_evenement')." ";
} else if ($nb_evenements > 1) {
$texte_lie .= _T('agenda:info_nombre_evenements', array('$nb_evenements' => $nb_evenements))." ";
}
debut_boite_info();
echo "
";
echo _T('info_delet_mots_cles', array('titre_mot' => $titre_mot, 'type_mot' => $type_mot, 'texte_lie' => $texte_lie));
echo "
";
echo "
";
fin_boite_info();
echo "
";
}
//
// On boucle d'abord sur les groupes de mots
//
$result_groupes = spip_query("SELECT *, ".creer_objet_multi ("titre", "$spip_lang")." FROM spip_groupes_mots ORDER BY multi");
while ($row_groupes = spip_fetch_array($result_groupes)) {
$id_groupe = $row_groupes['id_groupe'];
$titre_groupe = typo($row_groupes['titre']);
$descriptif = $row_groupes['descriptif'];
$texte = $row_groupes['texte'];
$unseul = $row_groupes['unseul'];
$obligatoire = $row_groupes['obligatoire'];
$articles = $row_groupes['articles'];
$breves = $row_groupes['breves'];
$rubriques = $row_groupes['rubriques'];
$syndic = $row_groupes['syndic'];
if (isset($tables_principales['spip_evenements'])) $evenements = $row_groupes['evenements'];
if (isset($tables_principales['spip_pim_agenda'])) $pim_agenda = $row_groupes['pim_agenda'];
$acces_minirezo = $row_groupes['minirezo'];
$acces_comite = $row_groupes['comite'];
$acces_forum = $row_groupes['forum'];
// Afficher le titre du groupe
debut_cadre_enfonce("groupe-mot-24.gif", false, '', $titre_groupe);
// Affichage des options du groupe (types d'elements, permissions...)
echo "";
if ($articles == "oui") echo "> "._T('info_articles_2')." ";
if ($breves == "oui") echo "> "._T('info_breves_02')." ";
if ($rubriques == "oui") echo "> "._T('info_rubriques')." ";
if ($syndic == "oui") echo "> "._T('icone_sites_references')." ";
if (isset($tables_principales['spip_evenements']))
if ($evenements == "oui") echo "> "._T('agenda:info_evenements')." ";
if (isset($tables_principales['spip_pim_agenda']))
if ($pim_agenda == "oui") echo "> "._T('pimagenda:info_evenements')." ";
if ($unseul == "oui" OR $obligatoire == "oui") echo "
";
if ($unseul == "oui") echo "> "._T('info_un_mot')." ";
if ($obligatoire == "oui") echo "> "._T('info_groupe_important')." ";
echo "
";
if ($acces_minirezo == "oui") echo "> "._T('info_administrateurs')." ";
if ($acces_comite == "oui") echo "> "._T('info_redacteurs')." ";
if ($acces_forum == "oui") echo "> "._T('info_visiteurs_02')." ";
echo "";
if ($descriptif) {
echo "";
echo "";
echo "",_T('info_descriptif')," ";
echo propre($descriptif);
echo " ";
echo "";
echo "
";
}
if (strlen($texte)>0){
echo "";
echo propre($texte);
echo "";
}
//
// Afficher les mots-cles du groupe
//
$supprimer_groupe = afficher_groupe_mots($id_groupe);
echo $supprimer_groupe;
if (acces_mots() AND !$conf_mot){
echo "\n";
echo "";
echo "";
icone(_T('icone_modif_groupe_mots'), generer_url_ecrire("mots_type","id_groupe=$id_groupe"), "groupe-mot-24.gif", "edit.gif");
echo " | ";
if (!$supprimer_groupe) {
echo "";
icone(_T('icone_supprimer_groupe_mots'), generer_url_ecrire("mots_tous","supp_group=$id_groupe"), "groupe-mot-24.gif", "supprimer.gif");
echo " | ";
echo " | "; // Histoire de forcer "supprimer" un peu plus vers la gauche
}
echo "";
echo " ";
icone(_T('icone_creation_mots_cles'), generer_url_ecrire("mots_edit","new=oui&id_groupe=$id_groupe&redirect=" . generer_url_retour('mots_tous')), "mot-cle-24.gif", "creer.gif");
echo " ";
echo " |
";
}
fin_cadre_enfonce();
}
if (acces_mots() AND !$conf_mot){
echo "
";
icone(_T('icone_creation_groupe_mots'), generer_url_ecrire("mots_type","new=oui"), "groupe-mot-24.gif", "creer.gif");
echo "
";
}
fin_page();
}
//
// Calculer les nombres d'elements (articles, etc.) lies a chaque mot
//
// http://doc.spip.org/@calculer_liens_mots
function calculer_liens_mots()
{
if ($GLOBALS['connect_statut'] =="0minirezo") $aff_articles = "'prepa','prop','publie'";
else $aff_articles = "'prop','publie'";
$articles = array();
$result_articles = spip_query("SELECT COUNT(*) as cnt, lien.id_mot FROM spip_mots_articles AS lien, spip_articles AS article WHERE article.id_article=lien.id_article AND article.statut IN ($aff_articles) GROUP BY lien.id_mot");
while ($row = spip_fetch_array($result_articles)){
$articles[$row['id_mot']] = $row['cnt'];
}
$rubriques = array();
$result_rubriques = spip_query("SELECT COUNT(*) AS cnt, lien.id_mot FROM spip_mots_rubriques AS lien, spip_rubriques AS rubrique WHERE rubrique.id_rubrique=lien.id_rubrique GROUP BY lien.id_mot");
while ($row = spip_fetch_array($result_rubriques)){
$rubriques[$row['id_mot']] = $row['cnt'];
}
$breves = array();
$result_breves = spip_query("SELECT COUNT(*) AS cnt, lien.id_mot FROM spip_mots_breves AS lien, spip_breves AS breve WHERE breve.id_breve=lien.id_breve AND breve.statut IN ($aff_articles) GROUP BY lien.id_mot");
while ($row = spip_fetch_array($result_breves)){
$breves[$row['id_mot']] = $row['cnt'];
}
$syndic = array();
$result_syndic = spip_query("SELECT COUNT(*) AS cnt, lien.id_mot FROM spip_mots_syndic AS lien, spip_syndic AS syndic WHERE syndic.id_syndic=lien.id_syndic AND syndic.statut IN ($aff_articles) GROUP BY lien.id_mot");
while ($row = spip_fetch_array($result_syndic)){
$sites[$row['id_mot']] = $row['cnt'];
}
return array('articles' => $articles,
'breves' => $breves,
'rubriques' => $rubriques,
'syndic' => $syndic);
}
// http://doc.spip.org/@afficher_groupe_mots
function afficher_groupe_mots($id_groupe) {
global $connect_id_auteur, $connect_statut;
global $spip_lang_right, $couleur_claire, $spip_lang;
$jjscript = array("fonction" => "afficher_groupe_mots",
"id_groupe" => $id_groupe);
$jjscript = (serialize($jjscript));
$hash = "0x".substr(md5($connect_id_auteur.$jjscript), 0, 16);
$tmp_var = substr($hash, 2, 6);
$javascript = "charger_id_url('" . generer_url_ecrire('memoriser',"&var_ajax=1&id_ajax_fonc=::id_ajax_fonc::::deb::", true) . "','$tmp_var')";
$select = 'id_mot, titre, ' . creer_objet_multi ("titre", $spip_lang);
$from = 'spip_mots';
$where = "id_groupe=$id_groupe" ;
$cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM $from WHERE $where"));
if (! ($cpt = $cpt['n'])) return '' ;
$occurrences = calculer_liens_mots();
$res_proch = spip_query("SELECT id_ajax_fonc FROM spip_ajax_fonc WHERE hash=$hash AND id_auteur=$connect_id_auteur ORDER BY id_ajax_fonc DESC LIMIT 1");
if ($row = spip_fetch_array($res_proch)) {
$id_ajax_fonc = $row["id_ajax_fonc"];
} else {
include_spip('base/abstract_sql');
$id_ajax_fonc = spip_abstract_insert("spip_ajax_fonc", "(id_auteur, variables, hash, date)", "($connect_id_auteur, " . spip_abstract_quote($jjscript) . ", $hash, NOW())");
}
$nb_aff = 1.5 * _TRANCHES;
$deb_aff = intval(_request('t_' .$tmp_var));
$limit = ($deb_aff >= 0 ? "$deb_aff, $nb_aff" : "99999");
if ($cpt > $nb_aff) {
$nb_aff = (_TRANCHES);
$tranches = afficher_tranches_requete($cpt, 3, $tmp_var, $javascript, $nb_aff);
} else $tranches = '';
$table = array();
$result = spip_query("SELECT $select FROM $from WHERE $where ORDER BY multi LIMIT $limit");
while ($row = spip_fetch_array($result)) {
$table[] = afficher_groupe_mots_boucle($row, $occurrences);
}
if ($connect_statut=="0minirezo") {
$largeurs = array('', 100, 130);
$styles = array('arial11', 'arial1', 'arial1');
}
else {
$largeurs = array('', 100);
$styles = array('arial11', 'arial1');
}
$res = http_img_pack("searching.gif", "*", "style='visibility: hidden; position: absolute; $spip_lang_right: 0px; top: -20px;' id='img_$tmp_var'")
. ""
. "
"
. str_replace("::id_ajax_fonc::", "$id_ajax_fonc", $tranches)
. afficher_liste($largeurs, $table, $styles)
. "
"
. "
";
if ($deb_aff) return $res;
return "$res
";
}
// http://doc.spip.org/@afficher_groupe_mots_boucle
function afficher_groupe_mots_boucle($row, $occurrences)
{
global $connect_statut, $connect_toutes_rubriques;
$id_mot = $row['id_mot'];
$titre_mot = typo($row['titre']);
if ($connect_statut == "0minirezo" OR $occurrences['articles'][$id_mot] > 0)
$titre_mot = "$titre_mot";
$vals = array($titre_mot);
$texte_lie = array();
$na = isset($occurrences['articles'][$id_mot]) ? $occurrences['articles'][$id_mot] : 0;
if ($na == 1)
$texte_lie[] = _T('info_1_article');
else if ($na > 1)
$texte_lie[] = $na." "._T('info_articles_02');
$nb = isset($occurrences['breves'][$id_mot]) ? $occurrences['breves'][$id_mot] : 0;
if ($nb == 1)
$texte_lie[] = _T('info_1_breve');
else if ($nb > 1)
$texte_lie[] = $nb." "._T('info_breves_03');
$ns = isset($occurrences['sites'][$id_mot]) ? $occurrences['sites'][$id_mot] : 0;
if ($ns == 1)
$texte_lie[] = _T('info_1_site');
else if ($ns > 1)
$texte_lie[] = $ns." "._T('info_sites');
$nr = isset($occurrences['rubriques'][$id_mot]) ? $occurrences['rubriques'][$id_mot] : 0;
if ($nr == 1)
$texte_lie[] = _T('info_une_rubrique_02');
else if ($nr > 1)
$texte_lie[] = $nr." "._T('info_rubriques_02');
$texte_lie = join($texte_lie,", ");
$vals[] = $texte_lie;
if (acces_mots()) {
$href = ($nr OR $na OR $ns OR $nb)
? generer_url_ecrire("mots_tous","conf_mot=$id_mot&na=$na&nb=$nb&nr=$nr&ns=$ns")
: redirige_action_auteur('editer_mot', ",$id_mot,,,",'mots_tous');
$vals[] = "";
}
return $vals;
}
?>