/** * Ajouter les brèves référencées sur les vues de rubriques * * @pipeline affiche_enfants * * @param array $flux Données du pipeline * @return array Données du pipeline **/ function breves_affiche_enfants($flux) { if (isset($flux['args']['exec']) and $e = trouver_objet_exec($flux['args']['exec']) and $e['type'] == 'rubrique' and $e['edition'] == false) { $id_rubrique = $flux['args']['id_rubrique']; if ($GLOBALS['meta']["activer_breves"] == 'oui') { $lister_objets = charger_fonction('lister_objets', 'inc'); $bouton_breves = ''; $id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . $id_rubrique); if (autoriser('creerbrevedans', 'rubrique', $id_rubrique, null, array('id_parent' => $id_parent))) { $bouton_breves .= icone_verticale(_T('breves:icone_nouvelle_breve'), generer_url_ecrire("breve_edit", "id_rubrique={$id_rubrique}&new=oui"), "breve-24.png", "new", 'right') . "<br class='nettoyeur' />"; } $flux['data'] .= $lister_objets('breves', array('titre' => _T('breves:icone_ecrire_nouvel_article'), 'where' => "statut != 'prop' AND statut != 'prepa'", 'id_rubrique' => $id_rubrique, 'par' => 'date_heure')); $flux['data'] .= $bouton_breves; } } return $flux; }
/** * Affichage de la fiche complete des articles et rubriques * * @param array $flux * @return array */ function forum_afficher_fiche_objet($flux) { if (in_array($type = $flux['args']['type'], array('article', 'breve', 'site')) and $GLOBALS['meta']['forum_prive_objets'] != 'non') { $id = $flux['args']['id']; $table = table_objet($type); $id_table_objet = id_table_objet($type); $contexte = array_merge($flux['args']['contexte'], array('objet' => $type, 'id_objet' => $id, 'quoi' => 'interne', 'statut' => 'prive')); $flux['data'] .= recuperer_fond('prive/squelettes/inclure/discuter_forum', $contexte, array('ajax' => true)); } if (($type = $flux['args']['type']) == 'rubrique') { $id_rubrique = $flux['args']['id']; if (autoriser('publierdans', 'rubrique', $id_rubrique) and !sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique=' . intval($id_rubrique))) { include_spip('inc/forum'); list($from, $where) = critere_statut_controle_forum('prop', $id_rubrique); $n_forums = sql_countsel($from, $where); } else { $n_forums = 0; } if ($n_forums) { $flux['data'] .= icone_verticale(_T('forum:icone_suivi_forum', array('nb_forums' => $n_forums)), generer_url_ecrire("controler_forum", "objet=rubrique&id_objet={$id_rubrique}"), "forum-24.png", "", 'center'); } } return $flux; }
/** * Ajouter les sites references sur les vues de rubriques * * @param array $flux * @return array */ function sites_affiche_enfants($flux) { if ($e = trouver_objet_exec($flux['args']['exec']) and $e['type'] == 'rubrique' and $e['edition'] == false) { $id_rubrique = $flux['args']['id_rubrique']; if ($GLOBALS['meta']["activer_sites"] == 'oui') { $lister_objets = charger_fonction('lister_objets', 'inc'); $bouton_sites = ''; if (autoriser('creersitedans', 'rubrique', $id_rubrique)) { $bouton_sites .= icone_verticale(_T('sites:info_sites_referencer'), generer_url_ecrire('site_edit', "id_rubrique={$id_rubrique}"), "site-24.png", "new", 'right') . "<br class='nettoyeur' />"; } $flux['data'] .= $lister_objets('sites', array('titre' => _T('sites:titre_sites_references_rubrique'), 'where' => "statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'id_rubrique' => $id_rubrique, 'par' => 'nom_site')); $flux['data'] .= $bouton_sites; } } return $flux; }
/** * Traitement de l'export des donnees auteurs. * * @param string $criteres de selection des auteurs * * @return array $retour nbre auteurs exportes et message de confirmation d'action. */ function exec_adhauteurs_export() { // Preparation affichage des choix type d'export $criteres_tot = _request('criteres'); $criteres = explode('|', $criteres_tot, 7); // Preparation de l'export des criteres (mise en forme dans le fichier out) // -- saison -- if (intval($criteres[2])) { $lib_criteres = sql_getfetsel('titre', 'spip_adhsaisons', array('id_saison=' . intval($criteres[2]))); $export_crit[0] = array('Saison', $lib_criteres); } else { $export_crit[0] = array('Saison', 'active'); } // -- technique -- if (intval($criteres[3])) { $adhwhere = array("type = 'niveau_Technique'"); $adhwhere = array_merge($adhwhere, array("id_mot = " . intval($criteres[3]))); $lib_criteres = sql_getfetsel('titre', 'spip_mots', $adhwhere); $export_crit[1] = array('Techbase', $lib_criteres); } else { $export_crit[1] = array('Techbase', '<<Tous>>'); } // -- encadrement -- if (intval($criteres[4])) { $adhwhere = array("type='Niveau_Encadrement'"); $adhwhere = array_merge($adhwhere, array("id_mot = " . intval($criteres[4]))); $lib_criteres = sql_getfetsel('titre', 'spip_mots', $adhwhere); $export_crit[2] = array('Encadrant', $lib_criteres); } else { $export_crit[2] = array('Encadrant', '<<Tous>>'); } // -- niveau -- if (intval($criteres[5])) { $lib_criteres = sql_getfetsel('titre', 'spip_adhnivs', array('id_niveau =' . intval($criteres[5]))); $export_crit[3] = array('Niveau', $criteres[6], $lib_criteres); } else { $export_crit[3] = array('Niveau', '<<Tous>>'); } $export_crit[4] = array('Champ', $criteres[0], $criteres[1]); /*$debug1= "DEBUG adhclub JR : exec/adhauteurs_export - exec_adhauteurs_export - Pt05 - "; adhclub_log("$debug1.", true); adhclub_log("criteres tot= $criteres_tot.", true); adhclub_log("criteres 0= $criteres[0].", true); adhclub_log("criteres 1= $criteres[1].", true); adhclub_log("criteres 2= $criteres[2].", true); adhclub_log("criteres 3= $criteres[3].", true); adhclub_log("criteres 4= $criteres[4].", true); adhclub_log("criteres 5= $criteres[5].", true); adhclub_log("criteres 6= $criteres[6].", true); adhclub_log("criteres 7= $criteres[7].", true); adhclub_log("FIN $debug1.", true); */ $retour = _request('retour'); $delim = _request('delim'); if ($delim == 'TAB') { $delim = "\t"; } if (!$retour) { $retour = generer_url_ecrire('adh_adherents'); } $titre = _T("adhclub:exporter_user_nb", array('nb_auteurs' => $nb_auteurs)); if (!$delim) { $icone = _DIR_PLUGIN_ADHCLUB . "img_pack/adh_export-24.png"; // // Affichage de la page // $commencer_page = charger_fonction('commencer_page', 'inc'); pipeline('exec_init', array('args' => $_GET, 'data' => '')); echo $commencer_page($titre, "adhclub"); echo debut_gauche('', true); $raccourcis = recuperer_fond("prive/inclure/adh_menu_tous", $contexte); echo bloc_des_raccourcis($raccourcis); echo pipeline('affiche_gauche', array('args' => array('exec' => 'adhauteurs_export', 'sql_adh_auteurs' => $sql_adh_auteurs), 'data' => '')); echo creer_colonne_droite("", true); echo pipeline('affiche_droite', array('args' => array('exec' => 'adhauteurs_export', 'sql_adh_auteurs' => $sql_adh_auteurs), 'data' => '')); echo debut_droite("", true); $milieu = ''; $milieu .= "<div class='entete-formulaire'>"; // Icones retour if ($retour) { $milieu .= icone_verticale(_T('icone_retour'), $retour, $icone, "rien.gif", $GLOBALS['spip_lang_left']); } $milieu .= gros_titre($titre, '', false); $milieu .= "</div>"; $milieu .= "<div class='formulaire_spip'>"; $action = generer_url_ecrire("adhauteurs_export", "criteres={$criteres_tot}&retour={$retour}"); $milieu .= "\n<form action='{$action}' method='post' class='formulaire_editer'><div>" . form_hidden($action); $milieu .= "<ul><li><label for='delim'>" . _T("adhclub:export_format") . "</label>"; $milieu .= "<select name='delim' id='delim'>\n"; $milieu .= "<option value=','>" . _T("adhclub:export_classique") . "</option>\n"; $milieu .= "<option value=';'>" . _T("adhclub:export_excel") . "</option>\n"; $milieu .= "<option value='TAB'>" . _T("adhclub:export_tabulation") . "</option>\n"; $milieu .= "</select></li></ul>"; $milieu .= "<p class='boutons'><input type='submit' class='submit' name='ok' value='" . _T('bouton_download') . "' /></p>\n"; $milieu .= "</div></form>"; $milieu .= "</div>"; echo pipeline('affiche_milieu', array('args' => array('exec' => 'adhauteurs_export', 'criteres' => $criteres_tot, 'retour' => $retour), 'data' => $milieu)); echo fin_gauche(), fin_page(); exit; } // Debut de l'export des donnees // Recuperation de la requete des adherents suivant filtrage (array de la forme SELECT..) $sql_adh_auteurs = adh_recherche($criteres[0], $criteres[1], 'spip_auteurs', $criteres[2], $criteres[3], $criteres[4], $criteres[5], $criteres[6], true); if ($sql_adh_auteurs) { // JR 20/03/2013 - Definir les colonnes a extraire pour $adh_select $adhselect_l = array("au.id_auteur", "au.nom_famille", "au.prenom", "au.sexe", "au.naissance", "au.fonction as licence", "au.mobile", "au.telephone", "au.email", "au.certiflimite as date_certif", "au.certifaspirine as allergie_aspirine", "au.certifqualif as certif_restreint"); $adhfrom_l = array("spip_auteurs au"); $adhwhere_l = array("au.id_auteur IN(" . $sql_adh_auteurs . ")"); // -- Si la saison est explicite, // on recherche les données Cotisations et Assurances associees a chaque auteur if (intval($criteres[2])) { $adhselect_l = array_merge($adhselect_l, array("co_l.id_coti", "co_l.titre as cotisation", "co_l.mnt_cotis", "as_l.id_assur", "as_l.titre as assurance", "as_l.mnt_assur")); $adhfrom_l = array_merge($adhfrom_l, array("spip_adhcotis co_l", "spip_adhcotis_liens ca_l", "spip_adhassurs as_l", "spip_adhassurs_liens aa_l")); $adhwhere_l = array_merge($adhwhere_l, array("au.id_auteur=ca_l.id_objet", "ca_l.objet='auteur'", "ca_l.id_coti=co_l.id_coti", "co_l.id_saison=" . intval($criteres[2]), "co_l.complement='non'", "au.id_auteur=aa_l.id_objet", "aa_l.objet='auteur'", "aa_l.id_assur=as_l.id_assur", "as_l.id_saison=" . intval($criteres[2]))); } /*$debug1= "DEBUG adhclub JR : exec/adhauteurs_export - Pt25 - "; adhclub_log("$debug1.", true); $debug2 = sql_get_select($adhselect_l, $adhfrom_l, sql_in('au.id_auteur', $sql_adh_auteurs)); adhclub_log("debug2=$debug2.", true); adhclub_log("adhwhere_l=$adhwhere_l.", true); $debug3 = sql_get_select($adhselect_l, $adhfrom_l, $adhwhere_l); adhclub_log("debug3=$debug3.", true); adhclub_log("FIN $debug1.", true); */ if ($export_auteurs = sql_allfetsel($adhselect_l, $adhfrom_l, $adhwhere_l)) { foreach ($export_auteurs as $ligne) { $list_entete = array(); $list_valeur = array(); foreach ($ligne as $k => $v) { /*$debug1= "DEBUG adhclub JR : exec/adhauteurs_export - Pt35 - "; adhclub_log("$debug1.", true); adhclub_log("k= $k , v= $v.", true); adhclub_log("FIN $debug1.", true);*/ $list_entete = array_merge($list_entete, array($k)); $list_valeur = array_merge($list_valeur, array($v)); } // Ecriture de l'entete des colonnes. if ($nb_auteurs == 0) { // JR-2013/08/01-Mise en forme des criteres en tete du fichier exporte. // JR-25/03/2015-Utilisation des F(spip_bonux) existantes. $output = exporter_csv_ligne(array('CRITERES'), $delim); $output .= exporter_csv_ligne(array('-_-_-_-', '-_-_-_-_-_-_-_-_-_-_-_-'), $delim); $output .= exporter_csv_ligne($export_crit[0], $delim); $output .= exporter_csv_ligne($export_crit[1], $delim); $output .= exporter_csv_ligne($export_crit[2], $delim); $output .= exporter_csv_ligne($export_crit[3], $delim); $output .= exporter_csv_ligne($export_crit[4], $delim); $output .= exporter_csv_ligne(array('-_-_-_-', '-_-_-_-_-_-_-_-_-_-_-_-'), $delim); // JR-20130801-Entetes de colonnes. $output .= exporter_csv_ligne($list_entete, $delim); } // Ecriture des lignes de donnees. $output .= exporter_csv_ligne($list_valeur, $delim); ++$nb_auteurs; } $charset = $GLOBALS['meta']['charset']; $file_csv = "export_auteurs_" . date('Ymd_His'); // @todo-JR-25/03/2015-Utilisation des F(spip_bonux) existantes. Attention remplissage criteres. //$filename = inc_exporter_csv($file_csv, ' ', $delim); $filename = preg_replace(',[^-_\\w]+,', '_', translitteration(textebrut(typo($file_csv)))); // Excel ? if ($delim == ',') { $extension = 'csv'; } else { // Extension 'csv' si delim = ';' (et pas forcément 'xls' !) if ($delim == ';') { $extension = 'csv'; } else { $extension = 'xls'; } } # Excel n'accepte pas l'utf-8 ni les entites html... on fait quoi? include_spip('inc/charsets'); $output = unicode2charset(charset2unicode($output), 'iso-8859-1'); $charset = 'iso-8859-1'; } Header("Content-Type: text/comma-separated-values; charset={$charset}"); Header("Content-Disposition: attachment; filename={$filename}.{$extension}"); //Header("Content-Type: text/plain; charset=$charset"); Header("Content-Length: " . strlen($output)); echo $output; exit; //*/ } else { include_spip('inc/minipres'); echo minipres(); } }
function inc_barre_langues_dist($id_article){ include_spip('inc/config'); include_spip('inc/actions'); if(!function_exists('icone_verticale')) { include_spip('inc/presentation'); } $row = sql_fetsel("*", "spip_articles", "id_article=$id_article"); $id_rubrique = $row['id_rubrique']; $id_trad = $row["id_trad"]; $virtuel = (strncmp($row["chapo"],'=',1)!==0) ? '' : chapo_redirige(substr($row["chapo"], 1)); $objet='article'; //création des onglets traduction // Les langues du site ou si restreint celle définis par config $langues_dispos=lire_config('taa/utiliser_langues')?lire_config('taa/utiliser_langues'):explode(',',lire_config('langues_multilingue')); // On établit les traductions de l'article $traductions = array(); if($langues_dispos){ // L'article est traduit if($id_trad>0){ // les traductions de l'article $sql=sql_select('lang,id_article','spip_articles','id_trad='.$id_trad); while($row=sql_fetch($sql)){ $traductions[$row['lang']]=$row['id_article']; } $clic = _T('trad_delier'); $options = '<div class="options delier ajax">'.icone_verticale($clic, redirige_action_auteur('traduction',$id_article.'-article-0',"article&id_article=$id_article"), "traductions-24.gif", "supprimer.gif",'right', false).'</div>'; } // L'article n'est pas traduit else{ $id_trad=$id_article; $row=sql_fetsel('lang,id_article','spip_articles','id_article='.$id_article); // Seul l'aticle présent est pris dans l'array traductions $traductions[$row['lang']]=$row['id_article']; $options = '<div class="options form_lier"><h2>'._T('taa:lier_traduction').'</h2>'.redirige_action_auteur("traduction", $id_article.'-article', "article", "id_article=$id_article", ("<label for='lier_trad'>" . _T('trad_lier') . "</label>" . "\n<input type='text' class='fondl' name='lier_trad' id='lier_trad' size='5' />\n"), _T('bouton_valider'), " class='fondl'").'</div>'; } // Pour chaque langue présente on crée un bouton // indique l'article par défaut $span_content='<div class="ref_article">*<span>'._T('spip:trad_reference').'</span></div>'; foreach($langues_dispos as $key => $value){ $class=''; $span=''; $trad=''; // les boutons hors article présent if($traductions[$value]!=$id_article){ //Si il existe une traduction dans une langue du site on crée le bouton avec le lien de l'article if(array_key_exists($value,$traductions)){ // Article de référence? if($traductions[$value]==$id_trad){ $span=$span_content; } $onglets_traduction.='<li class="traduit box_onglet ajax">'.$span.'<a href="'.generer_url_ecrire($objet,'id_article='.$traductions[$value]).'">'.traduire_nom_langue($value).'</a></li>'; } // Sinon on crée un nouvel article dans la langue souhaitée else{ // Si le plugin traduction rubriques est activé on regarde si on trouve la rubrique traduite if ($trad_rub=test_plugin_actif('tradrub')) { $id_rubrique_traduite=rubrique_traduction($value,$id_rubrique); if($id_rubrique_traduite){ $onglets_traduction.= '<li class="non_traduit box_onglet"><a href="'.generer_url_ecrire($objet.'_edit','new=oui&lier_trad='.$id_trad.'&id_rubrique='.$id_rubrique_traduite.'&lang_dest='.$value).'" title="'._T('ecrire:info_tout_site2').'">'.traduire_nom_langue($value).'</a></li>'; } elseif(test_plugin_actif('trad_rub')){ $donnes_trad=destination_traduction($value,$id_rubrique,$creer_racine=''); $parent_trad=$donnes_trad[0]; $trad=$donnes_trad[1]; $onglets_traduction.='<li class="non_traduit box_onglet"><a href="'.generer_url_ecrire('rubrique_edit','new=oui&id_parent='.$parent_trad.'&lang_dest='.$value.'&lier_trad='.$trad.'&trad_new='.$trad_new.'&retour=nav').'" class="avis_source" title="'._T('tra:avis_rubrique_source').'">'.traduire_nom_langue($value).'</a>'; } $section='oui'; } else{ $onglets_traduction.= '<li class="non_traduit box_onglet"><a href="'.generer_url_ecrire($objet.'_edit','new=oui&lier_trad='.$id_trad.'&lang_dest='.$value).'" title="'._T('ecrire:info_tout_site2').'">'.traduire_nom_langue($value).'</a></li>'; } $action=redirige_action_auteur ('changer_langue',$id_article.'-'.$value,$objet,"id_article=$id_article"); // Si le plugin traduction rubriques est activé on affiche pas les onglets changement de langue car la langue se change en modifiant la rubrique if(!$section){ $changer_traduction.='<li class="item lang box_onglet"><a href="'.parametre_url($action,'changer_lang',$value).'">'.traduire_nom_langue($value).'</a></li>'; } } } // le bouton de l'article présent else{ if($traductions[$value]==$id_trad){ $span=$span_content; } $onglets_traduction.='<li class="box_onglet"><strong class="on">'.$span.traduire_nom_langue($value).'</strong></li>'; } } } $contexte=array( 'onglets_traduction'=>$onglets_traduction, 'options'=>$options, 'langue_article'=>$langue_article, 'changer_traduction'=>$changer_traduction, 'edition_seule'=>$edition_seule, 'id_article'=>$id_article, 'voir'=>_request('voir'), ); $retour=recuperer_fond('prive/editer/barre_traductions_article',$contexte,array('ajax'=>true)); return $retour; }