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 ""; if (!$supprimer_groupe) { echo ""; echo ""; // Histoire de forcer "supprimer" un peu plus vers la gauche } echo "
"; icone(_T('icone_modif_groupe_mots'), generer_url_ecrire("mots_type","id_groupe=$id_groupe"), "groupe-mot-24.gif", "edit.gif"); echo ""; icone(_T('icone_supprimer_groupe_mots'), generer_url_ecrire("mots_tous","supp_group=$id_groupe"), "groupe-mot-24.gif", "supprimer.gif"); 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[] = "
" . _T('info_supprimer_mot') . " X
"; } return $vals; } ?>