function inc_grouper_mots_dist($id_groupe, $total) { global $connect_statut, $spip_lang_right, $spip_lang; $presenter_liste = charger_fonction('presenter_liste', 'inc'); // ceci sert a la fois: // - a construire le nom du parametre d'URL indiquant la tranche // - a donner un ID a la balise ou greffer le retour d'Ajax // tant pour la prochaine tranche que pour le retrait de mot $tmp_var = "editer_mots-$id_groupe"; $url = generer_url_ecrire('grouper_mots',"id_groupe=$id_groupe"); $select = 'id_mot, id_groupe, titre, descriptif, ' . sql_multi ("titre", $spip_lang); $requete = array('SELECT' => $select, 'FROM' => 'spip_mots', 'WHERE' => "id_groupe=$id_groupe", 'ORDER BY' => 'multi'); $tableau = array(); $occurrences = calculer_liens_mots($id_groupe); if ($connect_statut=="0minirezo") { $styles = array(array('arial11'), array('arial1', 100), array('arial1', 130)); } else { $styles = array(array('arial11'), array('arial1', 100)); } return $presenter_liste($requete, 'presenter_groupe_mots_boucle', $tableau, array($occurrences, $total, $deb_aff), false, $styles, $tmp_var, '', '', $url); }
/** * Modifier une souscription * * $c est un contenu (par defaut on prend le contenu via _request()) * * @param int $id_souscription * @param array|bool $set * @return string */ function souscription_modifier($id_souscription, $set = false) { include_spip('inc/modifier'); $c = collecter_requests(objet_info('souscription', 'champs_editables'), array(), $set); /* Récupération du nom du pays */ $code_pays = _request('pays'); $pays = sql_getfetsel(sql_multi("nom", $GLOBALS['spip_lang']), 'spip_pays', "code=" . sql_quote($code_pays)); $c = array_merge($c, array("pays" => $pays)); if ($err = objet_modifier_champs('souscription', $id_souscription, array(), $c)) { return $err; } }
/** * Interpreter les multi xxx et num xxx utilise comme tri * pour la clause select * 'multi xxx' devient select "...." as multi * les autres cas ne produisent qu'une chaine vide '' en select * 'hasard' devient 'rand() AS hasard' dans le select * * @param string $t * @return string */ function tri_champ_select($t) { if (strncmp($t, 'multi ', 6) == 0) { $t = substr($t, 6); $t = preg_replace(',\\s,', '', $t); $t = sql_multi($t, $GLOBALS['spip_lang']); return $t; } if (trim($t) == 'hasard') { return 'rand() AS hasard'; } return "''"; }
/** * Interpreter les multi xxx et num xxx utilise comme tri * pour la clause select * 'multi xxx' devient select "...." as multi * les autres cas ne produisent qu'une chaine vide '' en select * * @param string $t * @return string */ function tri_champ_select($t){ if(strncmp($t,'multi ',6)==0){ $t = substr($t,6); $t = preg_replace(',\s,','',$t); $t = sql_multi($t,$GLOBALS['spip_lang']); return $t; } return "''"; }
function requete_auteurs_tri($tri, $where, $visit=false) { global $spip_lang; $sql_sel = ''; $join = $visit ? "" : (strpos($where,'art.statut')?("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur" . " LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)"):""); // tri switch ($tri) { case 'nombre': $sql_sel = "COUNT(lien.id_article) AS compteur"; $sql_order = 'compteur DESC, unom'; $join = $visit ? "LEFT JOIN spip_forum AS lien ON aut.id_auteur=lien.id_auteur" : ("LEFT JOIN spip_auteurs_articles AS lien ON aut.id_auteur=lien.id_auteur" . (strpos($where,'art.statut')?" LEFT JOIN spip_articles AS art ON (lien.id_article = art.id_article)":"")); break; case 'site': $sql_order = 'site, unom'; break; case 'statut': $sql_order = 'statut, unom'; break; case 'nom': default: $sql_sel = sql_multi ("nom", $spip_lang); $sql_order = "multi"; } // // La requete de base est tres sympa // (pour les visiteurs, ca postule que les messages concernent des articles) return array('SELECT' => array_diff( array( "aut.id_auteur AS id_auteur", "aut.statut AS statut", "aut.nom_site AS site", "aut.nom AS nom", "UPPER(aut.nom) AS unom", $sql_sel),array('',null)), 'FROM' => "spip_auteurs AS aut $join", 'WHERE' => $where, 'GROUP BY' => "aut.statut, aut.nom_site, aut.nom, aut.id_auteur", 'ORDER BY' => $sql_order); }
function formulaire_mots_cles($id_objet, $les_mots, $table, $table_id, $url_base, $visible, $objet) { global $spip_lang, $spip_lang_right; $res = ''; // liste des groupes de mots contenant au moins un mot deja appose a l'objet $id_groupes_vus = array_map('array_pop', sql_allfetsel('DISTINCT(id_groupe)', 'spip_mots', sql_in('id_mot', $les_mots))); // supprimer tous les mots ? // a partir de 3 mots on regarde si l'ensemble des mots sont supprimables // si oui on propose ce lien if (count($les_mots)>= 3) { $ok = true; foreach ($id_groupes_vus as $id_groupe) if (!autoriser('editermots', $objet, $id_objet, null, array('id_groupe'=>$id_groupe))) { $ok = false; break; } if ($ok) $res .= "<div style='text-align: right' class='arial1'>" . ajax_action_auteur('editer_mots', "$id_objet,-1,$table,$table_id,$objet", $url_base, "$table_id=$id_objet", array(_T('info_retirer_mots'),''),"&id_objet=$id_objet&objet=$objet") . "</div><br />\n"; } // formulaire groupe par groupe $ajouter =''; $cond_mots_vus = $les_mots ? " AND " . sql_in('id_mot', $les_mots, 'NOT') : ''; define('_TRI_GROUPES_MOTS', 'titre'); foreach(sql_allfetsel('*,' . sql_multi ("titre", $spip_lang), 'spip_groupes_mots', '', '', _TRI_GROUPES_MOTS) as $row) { $id_groupe = $row['id_groupe']; if (autoriser('editermots', $objet, $id_objet, null, array('id_groupe'=>$id_groupe,'groupe_champs'=>$row)) AND $menu = menu_mots($row, $id_groupes_vus, $cond_mots_vus)) { list($corps, $clic) = $menu; $ajouter .= ajax_action_post('editer_mots', "$id_objet,,$table,$table_id,$objet", $url_base, "$table_id=$id_objet", $corps, $clic, " class='visible_au_chargement spip_xx-small' id='valider_groupe_$id_groupe'", "", "&id_objet=$id_objet&objet=$objet&select_groupe=$id_groupe"); // forcer la visibilite si au moins un mot obligatoire absent // attention true <> 1 pour bouton_block_depliable if ($row['obligatoire'] == 'oui' AND !in_array($id_groupe, $id_groupes_vus)) $visible = true; } } if ($ajouter) { $res .= "<div style='float:$spip_lang_right; width:280px;position:relative;display:inline;'>" . $ajouter ."</div>\n" . "<span class='verdana1'><b>" ._T('titre_ajouter_mot_cle') ."</b></span><br />\n"; } return array($visible, $res); }
function afficher_rubriques_admin_restreintes($auteur, $modif = true){ global $spip_lang; $id_auteur = intval($auteur['id_auteur']); $result = sql_select("rubriques.id_rubrique, " . sql_multi ("titre", $spip_lang) . "", "spip_auteurs_rubriques AS lien LEFT JOIN spip_rubriques AS rubriques ON lien.id_rubrique=rubriques.id_rubrique", "lien.id_auteur=$id_auteur", "", "multi"); $menu = $restreint = ''; // L'autorisation de modifier les rubriques restreintes // est egale a l'autorisation de passer en admin $modif &= autoriser('modifier', 'auteur', $id_auteur, null, array('statut' => '0minirezo')); while ($row_admin = sql_fetch($result)) { $id_rubrique = $row_admin["id_rubrique"]; $h = generer_url_ecrire('naviguer', "id_rubrique=$id_rubrique"); $restreint .= "\n<li id='rubrest_$id_rubrique'>" . ($modif ? "<input type='checkbox' checked='checked' name='restreintes[]' value='$id_rubrique' />\n" : '' ) . "<a href='$h'>" . typo($row_admin["multi"]) . "</a>" . '</li>'; } if (!$restreint) { $phrase = _T('info_admin_gere_toutes_rubriques')."\n"; } else { $menu = "<ul id='liste_rubriques_restreintes' style='list-style-image: url(" . chemin_image("rubrique-12.gif") . ")'>" . $restreint . "</ul>\n"; // Il faut un element zero pour montrer qu'on a l'interface // sinon il est impossible de deslectionner toutes les rubriques if ($modif) $menu .= "<input type='hidden' name='restreintes[]' value='0' />\n"; $phrase = _T('info_admin_gere_rubriques'); } if ($auteur['statut'] != '0minirezo') $phrase = ''; return "<p>$phrase</p>\n$menu"; }
function exec_mots_tous_dist() { global $spip_lang, $spip_lang_left, $spip_lang_right; $conf_mot = intval(_request('conf_mot')); $son_groupe = intval(_request('son_groupe')); pipeline('exec_init',array('args'=>array('exec'=>'mots_tous'),'data'=>'')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_mots_tous'), "naviguer", "mots"); echo debut_gauche('', true); echo pipeline('affiche_gauche',array('args'=>array('exec'=>'mots_tous'),'data'=>'')); if (autoriser('creer','groupemots') AND !$conf_mot){ $out = ""; $result = sql_select("*, ".sql_multi ("titre", "$spip_lang"), "spip_groupes_mots", "", "", "multi"); while ($row_groupes = sql_fetch($result)) { $id_groupe = $row_groupes['id_groupe']; $titre_groupe = typo($row_groupes['titre']); $out .= "<li class='item'><a href='#mots_tous-$id_groupe' onclick='$(\"div.mots_tous\").hide().filter(\"#mots_tous-$id_groupe\").show();return false;'>$titre_groupe</a></li>"; } if (strlen($out)) $out = "<a class='verdana1' href='#' onclick='$(\"div.mots_tous\").show();return false;'>"._T('icone_voir_tous_mots_cles')."</a>" ."<ul class='liste-items raccourcis_rapides'>" .$out ."</ul>" ; echo debut_boite_info(true) . $out . fin_boite_info(true); $res = icone_horizontale(_T('icone_creation_groupe_mots'), generer_url_ecrire("mots_type","new=oui"), "groupe-mot-24.gif", "creer.gif",false); echo bloc_des_raccourcis($res); } echo creer_colonne_droite('', true); echo pipeline('affiche_droite',array('args'=>array('exec'=>'mots_tous'),'data'=>'')); echo debut_droite('', true); echo gros_titre(_T('titre_mots_tous'),'', false); if (autoriser('creer','groupemots')) { echo typo(_T('info_creation_mots_cles')) . aide ("mots") ; } echo "<br /><br />"; // // On boucle d'abord sur les groupes de mots // $result = sql_select("*, ".sql_multi ("titre", "$spip_lang"), "spip_groupes_mots", "", "", "multi"); while ($row_groupes = sql_fetch($result)) { if (autoriser('voir','groupemots',$row_groupes['id_groupe'])){ $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']; $tables_liees = $row_groupes['tables_liees']; $acces_minirezo = $row_groupes['minirezo']; $acces_comite = $row_groupes['comite']; $acces_forum = $row_groupes['forum']; // Afficher le titre du groupe echo "<div id='mots_tous-$id_groupe' class='mots_tous'>"; echo debut_cadre_enfonce("groupe-mot-24.gif", true, '', $titre_groupe); // Affichage des options du groupe (types d'elements, permissions...) $res = ''; $tables_liees = explode(',',$tables_liees); $libelles = array('articles'=>'info_articles_2','breves'=>'info_breves_02','rubriques'=>'info_rubriques','syndic'=>'icone_sites_references'); $libelles = pipeline('libelle_association_mots',$libelles); foreach($tables_liees as $table) if (strlen($table)) $res .= "> " . _T(isset($libelles[$table])?$libelles[$table]:"$table:info_$table") . " "; if ($unseul == "oui" OR $obligatoire == "oui") $res .= "<br />"; if ($unseul == "oui") $res .= "> "._T('info_un_mot')." "; if ($obligatoire == "oui") $res .= "> "._T('info_groupe_important')." "; $res .= "<br />"; if ($acces_minirezo == "oui") $res .= "> "._T('info_administrateurs')." "; if ($acces_comite == "oui") $res .= "> "._T('info_redacteurs')." "; if ($acces_forum == "oui") $res .= "> "._T('info_visiteurs_02')." "; echo "<span class='verdana1 spip_x-small'>", $res, "</span>"; if (strlen($descriptif)) { echo "<div style='border: 1px dashed #aaa; background-color: #fff;' class='verdana1 spip_x-small '>", propre("{{"._T('info_descriptif')."}} ".$descriptif), " </div>"; } if (strlen($texte)>0){ echo "<div class='verdana1 spip_small'>", propre($texte), "</div>"; } // // Afficher les mots-cles du groupe // $groupe = sql_countsel("spip_mots", "id_groupe=$id_groupe"); echo "<div\nid='editer_mots-$id_groupe' style='position: relative;'>"; // Preliminaire: confirmation de suppression d'un mot lie a qqch // (cf fin de afficher_groupe_mots_boucle executee a l'appel precedent) if ($conf_mot AND $son_groupe==$id_groupe) { echo confirmer_mot($conf_mot, $row_groupes, $groupe); } if ($groupe) { $grouper_mots = charger_fonction('grouper_mots', 'inc'); echo $grouper_mots($id_groupe, $groupe); } echo "</div>"; if (autoriser('modifier','groupemots',$id_groupe)){ echo "\n<table cellpadding='0' cellspacing='0' border='0' width='100%'>"; echo "<tr>"; echo "<td>"; echo icone_inline(_T('icone_modif_groupe_mots'), generer_url_ecrire("mots_type","id_groupe=$id_groupe"), "groupe-mot-24.gif", "edit.gif", $spip_lang_left); echo "</td>"; echo "\n<td id='editer_mots-$id_groupe-supprimer'", (!$groupe ? '' : " style='visibility: hidden'"), ">"; echo icone_inline(_T('icone_supprimer_groupe_mots'), redirige_action_auteur('instituer_groupe_mots', "-$id_groupe", "mots_tous"), "groupe-mot-24.gif", "supprimer.gif", $spip_lang_left); echo "</td>"; echo "<td>"; echo icone_inline(_T('icone_creation_mots_cles'), generer_url_ecrire("mots_edit","new=oui&id_groupe=$id_groupe&redirect=" . generer_url_retour('mots_tous', "#mots_tous-$id_groupe")), "mot-cle-24.gif", "creer.gif", $spip_lang_right); echo "</td></tr></table>"; } echo fin_cadre_enfonce(true); echo "</div>"; } } echo pipeline('affiche_milieu',array('args'=>array('exec'=>'mots_tous'),'data'=>'')); echo fin_gauche(), fin_page(); }