diff --git a/.gitattributes b/.gitattributes index 753b628f3ff178eefe339b05f290d333939cde60..7d3aa0479ff870e1e13a6c0595e9e0704092b1d5 100644 --- a/.gitattributes +++ b/.gitattributes @@ -36,7 +36,6 @@ ecrire/action/instituer_breve.php -text ecrire/action/instituer_collaboration.php -text ecrire/action/instituer_groupe_mots.php -text ecrire/action/instituer_langue_rubrique.php -text -ecrire/action/instituer_rubrique_breves.php -text ecrire/action/instituer_site.php -text ecrire/action/instituer_syndic.php -text ecrire/action/joindre.php -text @@ -169,7 +168,6 @@ ecrire/exec/install.php -text ecrire/exec/instituer_auteur.php -text ecrire/exec/lang_raccourcis.php -text ecrire/exec/legender.php -text -ecrire/exec/meme_rubrique.php -text ecrire/exec/memoriser.php -text ecrire/exec/menu_agenda.php -text ecrire/exec/menu_navigation.php -text @@ -199,6 +197,7 @@ ecrire/exec/tourner.php -text ecrire/exec/upgrade.php -text ecrire/exec/valider_xml.php -text ecrire/exec/virtualiser.php -text +ecrire/exec/visiteurs.php -text ecrire/genie/maintenance.php -text ecrire/genie/mise_a_jour.php -text ecrire/genie/syndic.php -text @@ -258,6 +257,7 @@ ecrire/inc/json.php -text ecrire/inc/lang_liste.php -text ecrire/inc/legender.php -text ecrire/inc/lien.php -text +ecrire/inc/lister_objets.php -text ecrire/inc/log.php -text ecrire/inc/mail.php -text ecrire/inc/meme_rubrique.php -text @@ -736,6 +736,17 @@ prive/javascript/login.js -text prive/javascript/multilang.js -text prive/javascript/pause.js -text prive/javascript/sha256.js -text +prive/listes/articles.html -text +prive/listes/auteurs.html -text +prive/listes/auteurs_fonctions.php -text +prive/listes/breves.html -text +prive/listes/mots.html -text +prive/listes/rubriques.html -text +prive/listes/syndic.html -text +prive/listes/syndic_articles.html -text +prive/listes/syndic_articles_fonctions.php -text +prive/listes/visiteurs.html -text +prive/listes/visiteurs_fonctions.php -text prive/minipres.css -text prive/modeles/application.html -text prive/modeles/audio.html -text diff --git a/ecrire/exec/accueil.php b/ecrire/exec/accueil.php index f7baf9b5b74fe60978d4bbbe3751e6f133e505bc..2cfd4a7bfb23e88a2f604780a5fe0645b396d98e 100644 --- a/ecrire/exec/accueil.php +++ b/ecrire/exec/accueil.php @@ -17,53 +17,8 @@ include_spip('inc/presentation'); // http://doc.spip.org/@encours_accueil function encours_accueil() { - global $connect_statut; - - - $res = ''; - - // Les articles a valider - // - - $res .= afficher_objets('article',_T('info_articles_proposes'), array("WHERE" => "statut='prop'", 'ORDER BY' => "date DESC")); - - // - // Les breves a valider - // - $res .= afficher_objets('breve',afficher_plus(generer_url_ecrire('breves'))._T('info_breves_valider'), array("FROM" => 'spip_breves', 'WHERE' => "statut='prepa' OR statut='prop'", 'ORDER BY' => "date_heure DESC"), true); - - // - // Les sites references a valider - // - if ($GLOBALS['meta']['activer_sites'] != 'non') { - $res .= afficher_objets('site',afficher_plus(generer_url_ecrire('sites_tous')).'<b>' . _T('info_site_valider') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "statut='prop'", 'ORDER BY'=> "nom_site")); - } - - if ($connect_statut == '0minirezo') { - // - // Les sites a probleme - // - if ($GLOBALS['meta']['activer_sites'] != 'non') { - $res .= afficher_objets('site',afficher_plus(generer_url_ecrire('sites_tous')). '<b>' . _T('avis_sites_syndiques_probleme') . '</b>', array('FROM' => 'spip_syndic', 'WHERE' => "(syndication='off' OR syndication='sus') AND statut='publie'", 'ORDER BY' => 'nom_site')); - } - - // Les articles syndiques en attente de validation - $cpt = sql_countsel("spip_syndic_articles", "statut='dispo'"); - if ($cpt) - $res .= "\n<br /><small><a href='" - . generer_url_ecrire("sites_tous","") - . "' style='color: black;'>" - . $cpt - . " " - . _T('info_liens_syndiques_1') - . " " - . _T('info_liens_syndiques_2') - . "</a></small>"; - - } - - $res = pipeline('accueil_encours',$res); - + include_spip("exec/suivi_edito"); + $res = encours_suivi(); if (!$res) return ''; return @@ -388,25 +343,26 @@ function exec_accueil_dist() echo pipeline('affiche_droite',array('args'=>array('exec'=>'accueil','id_rubrique'=>$id_rubrique),'data'=>'')); echo debut_droite("", true); + + $lister_objets = charger_fonction('lister_objets','inc'); + $date_now = date('Y-m-d H:i:s'); if ($GLOBALS['meta']["post_dates"] == "non" AND $connect_statut == '0minirezo') - echo afficher_objets('article',_T('info_article_a_paraitre'), array("WHERE" => "statut='publie' AND date>".sql_quote(date('Y-m-d H:i:s')), 'ORDER BY' => "date")); - + echo $lister_objets('articles',array('titre'=>_T('info_article_a_paraitre'),'statut'=>'publie', 'par'=>'date', 'where'=>'date>'.sql_quote($date_now), 'date_sens'=>1)); // Les articles recents // - echo afficher_objets('article', - #afficher_plus(generer_url_ecrire('articles_page')) . - _T('articles_recents'), array("WHERE" => "statut='publie'" .($GLOBALS['meta']["post_dates"] == "non" - ? " AND date<=".sql_quote(date('Y-m-d H:i:s')) : ''), - 'ORDER BY' => "date DESC", 'LIMIT' => '0,4')); + $contexte = array('titre'=>_T('articles_recents'),'statut'=>'publie', 'par'=>'date','nb'=>5); + if ($GLOBALS['meta']["post_dates"] == "non") + $contexte['where']='date<='.sql_quote($date_now); + echo $lister_objets('articles',$contexte); // // Vos articles en cours // - echo afficher_objets('article',afficher_plus_info(generer_url_ecrire('articles_page'))._T('info_en_cours_validation'), array('FROM' => "spip_articles AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_article=L.id_article", "WHERE" => "L.id_auteur=$connect_id_auteur AND A.statut='prepa'", "ORDER BY" => "A.date DESC")); + echo $lister_objets('articles',array('titre'=>afficher_plus_info(generer_url_ecrire('articles_page'))._T('info_en_cours_validation'),'statut'=>'prepa', 'par'=>'date','id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'])); if ($spip_display == 4) echo colonne_droite_eq4($id_rubrique, diff --git a/ecrire/exec/articles_page.php b/ecrire/exec/articles_page.php index 7c5d6c73781be1ca221870080f328fac2de80621..45a1342a9c222710235bfbfcb90313c371126a2a 100644 --- a/ecrire/exec/articles_page.php +++ b/ecrire/exec/articles_page.php @@ -15,11 +15,10 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_spip('inc/presentation'); // http://doc.spip.org/@exec_articles_page_dist -function exec_articles_page_dist() -{ +function exec_articles_page_dist(){ global $connect_statut, $connect_id_auteur; - pipeline('exec_init',array('args'=>array('exec'=>'articles_page'),'data'=>'')); + pipeline('exec_init',array('args'=>array('exec'=>'articles_page'),'data'=>'')); $commencer_page = charger_fonction('commencer_page', 'inc'); echo $commencer_page(_T('titre_page_articles_page'), "suivi_edito", "tous_articles"); @@ -27,50 +26,49 @@ function exec_articles_page_dist() echo debut_gauche('', true); -// -// Afficher le bouton de creation d'article -// + // + // Afficher le bouton de creation d'article + // echo pipeline('affiche_gauche',array('args'=>array('exec'=>'articles_page'),'data'=>'')); if (sql_countsel('spip_rubriques')) { - echo bloc_des_raccourcis(icone_horizontale(_T('icone_ecrire_article'), generer_url_ecrire("articles_edit","new=oui"), "article-24.png", "new", false)); + echo bloc_des_raccourcis(icone_horizontale(_T('icone_ecrire_article'), generer_url_ecrire("articles_edit","new=oui"), "article-24.png", "new", false)); } else { - if (autoriser('creerrubriquedans', 'rubrique')) { - echo _T('texte_creer_rubrique'); - echo bloc_des_raccourcis(icone_horizontale (_T('icone_creer_rubrique'), generer_url_ecrire("rubriques_edit","new=oui&retour=nav"), "rubrique-24.png", "new",false)); - } + if (autoriser('creerrubriquedans', 'rubrique')) { + echo _T('texte_creer_rubrique'); + echo bloc_des_raccourcis(icone_horizontale (_T('icone_creer_rubrique'), generer_url_ecrire("rubriques_edit","new=oui&retour=nav"), "rubrique-24.png", "new",false)); + } } echo creer_colonne_droite('', true); echo pipeline('affiche_droite',array('args'=>array('exec'=>'articles_page'),'data'=>'')); -echo debut_droite('', true); - -// -// Vos articles en cours de redaction -// - - echo afficher_objets('article',_T('info_en_cours_validation'), array('FROM' => "spip_articles AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_article=L.id_article", "WHERE" => "L.id_auteur=$connect_id_auteur AND A.statut='prepa'", "ORDER BY" => "A.date DESC")); + echo debut_droite('', true); + // + // Vos articles en cours de redaction + // + $lister_objets = charger_fonction('lister_objets','inc'); + echo $lister_objets('articles',array('titre'=>_T('info_en_cours_validation'),'statut'=>'prepa', 'par'=>'date','id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'])); -// -// Vos articles soumis au vote -// + // + // Vos articles soumis au vote + // - echo afficher_objets('article',_T('info_attente_validation'), array('FROM' => "spip_articles AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_article=L.id_article", "WHERE" => "L.id_auteur=$connect_id_auteur AND A.statut='prop'", "ORDER BY" => "A.date DESC")); + echo $lister_objets('articles',array('titre'=>_T('info_attente_validation'),'statut'=>'prop', 'par'=>'date','id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'])); -// -// Vos articles publies -// + // + // Vos articles publies + // - echo afficher_objets('article',_T('info_publies'), array('FROM' => "spip_articles AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_article=L.id_article", "WHERE" => "L.id_auteur=$connect_id_auteur AND A.statut='publie'", "ORDER BY" => "A.date DESC")); + echo $lister_objets('articles',array('titre'=>_T('info_publies'),'statut'=>'publie', 'par'=>'date','id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'])); -// -// Vos articles refuses -// + // + // Vos articles refuses + // - echo afficher_objets('article',_T('info_refuses'), array('FROM' =>"spip_articles AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_article=L.id_article", "WHERE" => "L.id_auteur=$connect_id_auteur AND A.statut='refuse'", 'ORDER BY' => "A.date DESC")); + echo $lister_objets('articles',array('titre'=>_T('info_refuses'),'statut'=>'refuse', 'par'=>'date','id_auteur'=>$GLOBALS['visiteur_session']['id_auteur'])); echo pipeline('affiche_milieu',array('args'=>array('exec'=>'articles_page'),'data'=>'')); diff --git a/ecrire/exec/auteur_infos.php b/ecrire/exec/auteur_infos.php index 07059034d8b333f1d3c97316e2100378a0fd07eb..0105852eb8b92479714ad87745d7c3a706f81c6c 100644 --- a/ecrire/exec/auteur_infos.php +++ b/ecrire/exec/auteur_infos.php @@ -155,7 +155,8 @@ function auteurs_interventions($auteur) { else if ($connect_id_auteur == $id_auteur) $aff_art = array('prepa','prop','publie'); else $aff_art = array('prop','publie'); - echo afficher_objets('article',_T('info_articles_auteur'), array('FROM' => "spip_articles AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_article=L.id_article", "WHERE" => "L.id_auteur=$id_auteur AND " . sql_in('A.statut', $aff_art), "ORDER BY" => "A.date DESC")); + $lister_objets = charger_fonction('lister_objets','inc'); + echo $lister_objets('articles',array('titre'=>_T('info_articles_auteur'),'statut'=>$aff_art, 'par'=>'date','id_auteur'=>$id_auteur)); // Messages de l'auteur et discussions en cours if ($GLOBALS['meta']['messagerie_agenda'] != 'non' diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php index d3ea893752b5a71c31577c5956fac0ec1057d619..b84b79ce370835999052d3f6eb0a4ccf2795e67c 100644 --- a/ecrire/exec/auteurs.php +++ b/ecrire/exec/auteurs.php @@ -18,379 +18,96 @@ include_spip('inc/presentation'); @define('MAX_AUTEURS_PAR_PAGE', 30); @define('AUTEURS_MIN_REDAC', "0minirezo,1comite,5poubelle"); @define('AUTEURS_DEFAUT', ''); -// decommenter cette ligne et commenter la precedente +// decommenter cette ligne et commenter la precedente // pour que l'affichage par defaut soit les visiteurs #@define('AUTEURS_DEFAUT', '!'); // http://doc.spip.org/@exec_auteurs_dist -function exec_auteurs_dist() -{ - $tri = preg_replace('/\W/', '', _request('tri')); - if (!$tri) $tri='nom'; - $statut = _request('statut'); - if (!$statut) $statut = AUTEURS_DEFAUT . AUTEURS_MIN_REDAC; - $debut = intval(_request('debut')); +function exec_auteurs_dist($vue = 'auteurs'){ - $recherche = NULL; - if ($cherche = _request('recherche')) { - include_spip('inc/rechercher'); - $tables = liste_des_champs(); - $tables = array('auteur'=>$tables['auteur']); - $recherche = recherche_en_base($cherche, $tables,array('toutvoir'=>true)); - if ($recherche['auteur']) - $recherche = array_keys($recherche['auteur']); - else { - $recherche = "aut.id_auteur=0"; // rien trouve ! - } - } - $form = formulaire_recherche("auteurs",(($s=_request('statut'))?"<input type='hidden' name='statut' value='$s' />":"")); - exec_auteurs_args($statut, $tri, $debut, $recherche,$form, $cherche); -} - - -// http://doc.spip.org/@exec_auteurs_args -function exec_auteurs_args($statut, $tri, $debut, $recherche=NULL, $trouve='', $cherche='') -{ - if ($recherche !=='') { - list($auteurs, $lettre, $nombre_auteurs, $debut) = - lettres_d_auteurs(requete_auteurs($tri, $statut, $recherche), $debut, MAX_AUTEURS_PAR_PAGE, $tri); - - - $recherche = auteurs_tranches(afficher_n_auteurs($auteurs), $debut, $lettre, $tri, $statut, MAX_AUTEURS_PAR_PAGE, $nombre_auteurs,$cherche); - - if ($cherche){ - if (count($auteurs)) - $recherche = "<h3>". _T('info_resultat_recherche')." «$cherche»</h3>" . $recherche; - else - $recherche = "<h3>". _T('info_recherche_auteur_zero',array('cherche_auteur'=>$cherche))."</h3>" . $recherche; - } + $statut = AUTEURS_DEFAUT . AUTEURS_MIN_REDAC; - } - - if (_AJAX) { - ajax_retour($recherche); //ecrire en id='auteurs' ci-dessous - } else { - - pipeline('exec_init',array('args'=>array('exec'=>'auteurs'),'data'=>'')); - - $visiteurs = !statut_min_redac($statut); - $commencer_page = charger_fonction('commencer_page', 'inc'); - echo $commencer_page( - $visiteurs ? _T('info_visiteurs') : _T('info_auteurs'), - "auteurs","redacteurs"); - - echo bandeau_auteurs($tri, $visiteurs); - - echo $trouve, "<br class='nettoyeur' />"; - - echo "<div id='auteurs'>", $recherche, "</div>"; - echo pipeline('affiche_milieu',array('args'=>array('exec'=>'auteurs'),'data'=>'')); - echo fin_gauche(), fin_page(); - } -} + pipeline('exec_init',array('args'=>array('exec'=>$vue),'data'=>'')); -// http://doc.spip.org/@bandeau_auteurs -function bandeau_auteurs($tri, $visiteurs) -{ - global $connect_id_auteur, $connect_statut, $connect_toutes_rubriques; + $commencer_page = charger_fonction('commencer_page', 'inc'); + echo $commencer_page(_T('info_'.$vue),"auteurs","$vue"); - $ret = gros_titre($visiteurs ? _T('info_visiteurs') : _T('info_auteurs'),'',false) . debut_gauche("auteurs",true) . debut_boite_info(true); + $ret = debut_gauche("$vue",true) . debut_boite_info(true); - if ($visiteurs) - $ret .= "\n<p class='arial1'>"._T('info_gauche_visiteurs_enregistres'). '</p>'; - else - $ret .= "\n<p class='arial1'>"._T('info_gauche_auteurs'). '</p>'; + $ret .= "\n<p class='arial1'>"._T('info_gauche_auteurs'). '</p>'; - if ($connect_statut == '0minirezo') + if ($GLOBALS['visiteur_session']['statut'] == '0minirezo') $ret .= "\n<p class='arial1'>". _T('info_gauche_auteurs_exterieurs') . '</p>'; $ret .= fin_boite_info(true); - $ret .= pipeline('affiche_gauche',array('args'=>array('exec'=>'auteurs'),'data'=>'')); + $ret .= pipeline('affiche_gauche',array('args'=>array('exec'=>$vue),'data'=>'')); - if ($connect_statut == '0minirezo') { + $res = ''; + if (autoriser('creer','auteur')) + $res = icone_horizontale(_T('icone_creer_nouvel_auteur'), generer_url_ecrire("auteur_infos", 'new=oui'), "auteur-24.gif", "creer.gif", false); - if ($connect_toutes_rubriques) - $res = icone_horizontale(_T('icone_creer_nouvel_auteur'), generer_url_ecrire("auteur_infos", 'new=oui'), "auteur-24.png", "new", false); - else $res = ''; + $res .= icone_horizontale(_T('icone_informations_personnelles'), generer_url_ecrire("auteur_infos","id_auteur=".$GLOBALS['visiteur_session']['id_auteur']), "fiche-perso-24.gif","rien.gif", false); - $res .= icone_horizontale(_T('icone_informations_personnelles'), generer_url_ecrire("auteur_infos","id_auteur=$connect_id_auteur"), "information-perso-24.png","", false); + if ($vue=='auteurs' AND avoir_visiteurs(true)) + $res .= icone_horizontale (_T('icone_afficher_visiteurs'), generer_url_ecrire("visiteurs"), "auteur-24.gif", "", false); + if ($vue=='visiteurs') + $res .= icone_horizontale (_T('icone_afficher_auteurs'), generer_url_ecrire("auteurs"), "auteur-24.gif", "", false); - if (avoir_visiteurs(true)) { - if ($visiteurs) - $res .= icone_horizontale (_T('icone_afficher_auteurs'), generer_url_ecrire("auteurs", "statut=" . AUTEURS_MIN_REDAC), "auteur-24.png", "", false); - else - $res .= icone_horizontale (_T('icone_afficher_visiteurs'), generer_url_ecrire("auteurs","statut=!" . AUTEURS_MIN_REDAC), "auteur-6forum-24.png", "", false); - } - $ret .= bloc_des_raccourcis($res); - } - $ret .= creer_colonne_droite('auteurs',true); - $ret .= pipeline('affiche_droite',array('args'=>array('exec'=>'auteurs'),'data'=>'')); + $ret .= bloc_des_raccourcis($res); + $ret .= creer_colonne_droite($vue,true); + $ret .= pipeline('affiche_droite',array('args'=>array('exec'=>$vue),'data'=>'')); $ret .= debut_droite('',true); - return $ret; -} + $ret .= gros_titre(_T('info_'.$vue),'',false); -// http://doc.spip.org/@statut_min_redac -function statut_min_redac($statut) -{ - $x = (!$statut) - || (strpos($statut, "0minirezo")!==false) - || (strpos($statut, "1comite")!==false); + echo $ret; + echo formulaire_recherche($vue,(($s=_request('statut'))?"<input type='hidden' name='statut' value='$s' />":"")); - return $statut[0] =='!' ? !$x : $x; -} + echo "<div class='nettoyeur'></div>"; -// http://doc.spip.org/@lettres_d_auteurs -function lettres_d_auteurs($query, $debut, $max_par_page, $tri) -{ - $auteurs = $lettre = array(); - $lettres_nombre_auteurs = 0; - $lettre_prec =""; - $nombre_auteurs = 0; - $query = sql_select($query['SELECT'], $query['FROM'], $query['WHERE'], $query['GROUP BY'], $query['ORDER BY']); - - while ($auteur = sql_fetch($query)) { - if ($nombre_auteurs>=$debut AND $nombre_auteurs<$debut+$max_par_page) { - $auteur['restreint'] = sql_countsel("spip_auteurs_rubriques", "id_auteur=".$auteur['id_auteur']); - - $auteurs[] = $auteur; - } - - if ($tri == 'nom') { - $premiere_lettre = strtoupper(spip_substr(corriger_typo($auteur['nom']),0,1)); - if ($premiere_lettre != $lettre_prec) { - $lettre[$premiere_lettre] = $nombre_auteurs; - } - $lettre_prec = $premiere_lettre; - } - $nombre_auteurs++; - } - return array($auteurs, $lettre, $nombre_auteurs, $debut); -} - -// http://doc.spip.org/@auteurs_tranches -function auteurs_tranches($auteurs, $debut, $lettre, $tri, $statut, $max_par_page, $nombre_auteurs, $cherche='') -{ - global $spip_lang_right; - - $arg = ($statut ? ("&statut=" .urlencode($statut)) : '') - . ($cherche ? ("&recherche=" . urlencode($cherche)) : ''); - - $res ="\n<tr class='titrem'>" - . "\n<th style='width: 20px'>"; - - if ($tri=='statut') - $res .= http_img_pack(chemin_image('auteur-0minirezo-16.png'),'', ""); + $contexte = $_GET; + $contexte['nb'] = MAX_AUTEURS_PAR_PAGE; + if (substr($statut,0,1)!=='!') + $contexte['statut'] = explode(',',$statut); else { - $t = _T('lien_trier_statut'); - $res .= auteurs_href(http_img_pack(chemin_image('auteur-0minirezo-16.png'), $t, ""),"tri=statut$arg", " title=\"$t\""); + $statut = substr($statut,1); + $statut = explode(',',$statut); + $statut = sql_allfetsel('DISTINCT statut','spip_auteurs',sql_in('statut',$statut,'NOT')); + $contexte['statut'] = array_map('reset',$statut); } - $res .= "</th><th style='width: 20px'></th><th>"; - - if ($tri=='nom') - $res .= '<b>'._T('info_nom').'</b>'; - else - $res .= auteurs_href(_T('info_nom'), "tri=nom$arg", " title='"._T('lien_trier_nom'). "'"); - - $res .= "</th><th>"; - - if ($tri=='site') - $res .= '<b>'._T('info_site').'</b>'; - else - $res .= auteurs_href(_T('info_site'), "tri=site$arg", " title='"._T('info_site'). "'"); - - $res .= '</th><th>'; - - $col = statut_min_redac($statut) ? _T('info_articles') : _T('message') ; - - if ($tri=='nombre') - $res .= '<b>' . $col .'</b>'; - else - $res .= auteurs_href($col, "tri=nombre$arg", " title=\""._T('lien_trier_nombre_articles'). '"'); - - $res .= "</th></tr>\n"; - - if ($nombre_auteurs > $max_par_page) { - $res .= "\n<tr class='' ><td colspan='5'><div class='arial1 tranches'>"; - - for ($j=0; $j < $nombre_auteurs; $j+=$max_par_page) { - if ($j > 0) $res .= " | "; - - if ($j == $debut) - $res .= "<b>$j</b>"; - else if ($j > 0) - $res .= auteurs_href($j, "tri=$tri$arg&debut=$j"); - else - $res .= auteurs_href('0', "tri=$tri$arg"); - if ($debut > $j AND $debut < $j+$max_par_page){ - $res .= " | <b>$debut</b>"; - } - } - - if ($tri == 'nom') { - $res .= "</div><div>\n"; - $val_prev = 0; - foreach ($lettre as $key => $val) { - if ($val == $debut) - $res .= "<b>$key</b>\n"; - else { - if ($debut>$val_prev && $debut<$val) - $res .= "<b>..</b> "; - $res .= auteurs_href($key, "tri=$tri$arg&debut=$val") . "\n"; - } - $val_prev = $val; - } - $res .= "</div></td></tr>\n"; + // une barre de navigation entre statuts + if (count($contexte['statut'])>1) { + $nav = array(lien_ou_expose(generer_url_ecrire($vue), _T('info_tout_afficher'), !_request('statut'))); + $statuts = $contexte['statut']; + $res = sql_allfetsel('*', 'spip_auteurs', $cond, '', "statut, nom"); + foreach ($statuts as $statut) { + $texte = array_search($statut, $GLOBALS['liste_des_statuts']); + $texte = ($texte?_T($texte):$statut); + + $nav[] = lien_ou_expose(generer_url_ecrire($vue, 'statut='.$statut), $texte, _request('statut')==$statut); + // verification du get + if ($statut == _request('statut')) + $contexte['statut'] = $statut; } + echo "<p class='pagination'>".implode(' | ',$nav)."</p>"; } - $nav = ''; - $debut_suivant = $debut + $max_par_page; - if ($debut_suivant < $nombre_auteurs OR $debut > 0) { - $nav = "\n<table id='bas' style='width: 100%' border='0'>" - . "\n<tr class=''><td align='left'>"; - - if ($debut > 0) { - $debut_prec = max($debut - $max_par_page, 0); - $nav .= auteurs_href('<<<',"tri=$tri&debut=$debut_prec$arg"); - } - $nav .= "</td><td style='text-align: $spip_lang_right'>"; - if ($debut_suivant < $nombre_auteurs) { - $nav .= auteurs_href('>>>',"tri=$tri&debut=$debut_suivant&$arg"); - } - $nav .= "</td></tr></table>\n"; + if ($GLOBALS['visiteur_session']['statut']=='0minirezo'){ + // n'exclure que les articles a la poubelle des compteurs + $contexte['filtre_statut_articles'] = array('poubelle'); } - - return debut_cadre('liste','auteur-24.png','','','lesauteurs') - . "\n<br /><table class='arial2' cellpadding='2' style='width: 100%; border: 0px;'>\n" - . $res - . $auteurs - . "</table>\n<br />" - . $nav - . fin_cadre(); -} - -// http://doc.spip.org/@auteurs_href -function auteurs_href($clic, $args='', $att='') -{ - $h = generer_url_ecrire('auteurs', $args); - $a = 'auteurs'; - - if (_SPIP_AJAX === 1 ) - $att .= ("\nonclick=" . ajax_action_declencheur($h,$a)); - - return "<a href='$h#$a'$att>$clic</a>"; -} - - -// http://doc.spip.org/@requete_auteurs -function requete_auteurs($tri, $statut, $recherche=NULL) -{ - global $connect_statut, $spip_lang, $connect_id_auteur; - - // - // Construire la requete - // - - // si on n'est pas minirezo, ignorer les auteurs sans article - // sauf les admins, toujours visibles. - - // limiter les statuts affiches - if ($connect_statut == '0minirezo') { - if ($statut[0]=='!') { - $statut = substr($statut,1); $not = "NOT"; - } else $not = ''; - $visit = !statut_min_redac($statut); - $statut = preg_split('/\W+/', $statut); - $sql_visible = sql_in("A.statut", $statut, $not); - } else { - $sql_visible = "( - A.statut = '0minirezo' - OR A.id_auteur=$connect_id_auteur - OR " . sql_in('P.statut', array('prop', 'publie')) - . ')'; - $visit = false; - } - - $sql_sel = ''; - $join = $visit ? - "" - : - (strpos($sql_visible,'P.statut')?("LEFT JOIN spip_auteurs_articles AS L ON A.id_auteur=L.id_auteur" . " LEFT JOIN spip_articles AS P ON (L.id_article = P.id_article)"):""); - - // tri - switch ($tri) { - case 'nombre': - if (!$visit OR test_plugin_actif('forum')){ - $sql_sel = "COUNT(L.id_article) AS compteur"; - $sql_order = 'compteur DESC, unom'; - $join = $visit ? - "LEFT JOIN spip_forum AS L ON A.id_auteur=L.id_auteur" - : ("LEFT JOIN spip_auteurs_articles AS L ON A.id_auteur=L.id_auteur" - . (strpos($sql_visible,'P.statut')?" LEFT JOIN spip_articles AS P ON (L.id_article = P.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"; + else { + // exclure les articles a la poubelle, en redac ou refuse des compteurs + $contexte['filtre_statut_articles'] = array('prepa','poubelle','refuse'); } - // - // La requete de base est tres sympa - // (pour les visiteurs, ca postule que les messages concernent des articles) - if ($recherche) - $recherche = (" AND " . sql_in('A.id_auteur', $recherche)); - return array('SELECT' => - array_diff( - array( - "A.id_auteur AS id_auteur", - "A.statut AS statut", - "A.nom_site AS site", - "A.nom AS nom", - "UPPER(A.nom) AS unom", - $sql_sel),array('',null)), - 'FROM' => "spip_auteurs AS A $join", - 'WHERE' => $sql_visible . $recherche, - 'GROUP BY' => "A.statut, A.nom_site, A.nom, A.id_auteur", - 'ORDER BY' => $sql_order); -} - -// http://doc.spip.org/@afficher_n_auteurs -function afficher_n_auteurs($auteurs) { - $res = ''; - $formater_auteur = charger_fonction('formater_auteur', 'inc'); - foreach ($auteurs as $row) { - - list($s, $mail, $nom, $w, $p) = $formater_auteur($row['id_auteur']); + $lister_objets = charger_fonction('lister_objets','inc'); + echo $lister_objets($vue,$contexte); - $res .= "\n<tr class='tr_liste'>" - . "\n<td>" - . $s - . "</td><td class='arial1'>" - . $mail - . "</td><td class='verdana1'>" - . $nom - . ((isset($row['restreint']) AND $row['restreint']) - ? (" <small>"._T('statut_admin_restreint')."</small>") - : '') - ."</td><td class='arial1'>" - . $w - . "</td><td class='arial1'>" - . $p - . "</td></tr>\n"; - } - return $res; + echo pipeline('affiche_milieu',array('args'=>array('exec'=>$vue),'data'=>'')); + echo fin_gauche(), fin_page(); } -?> + +?> \ No newline at end of file diff --git a/ecrire/exec/breves.php b/ecrire/exec/breves.php index f2de0efad624b68857cbf48a6f2879f11ee2cec5..3b31d02ee4cd182173bcd4fd2c47e6c8bfef4aa6 100644 --- a/ecrire/exec/breves.php +++ b/ecrire/exec/breves.php @@ -30,6 +30,7 @@ function exec_breves_dist() echo debut_droite('', true); $result = sql_select('*', "spip_rubriques", "id_parent=0",'', '0+titre,titre'); + $lister_objets = charger_fonction('lister_objets','inc'); while($row=sql_fetch($result)){ $id_rubrique=$row['id_rubrique']; @@ -39,9 +40,11 @@ function exec_breves_dist() $texte=$row['texte']; $editable = autoriser('publierdans','rubrique',$id_rubrique); - $statuts = "'prop', 'publie'" . ($editable ? ", 'refuse'": ""); + $statuts = array('prop', 'publie'); + if ($editable) + $statuts[] = 'refuse'; - $res = afficher_objets('breve',$titre.aide ("breves"), array("SELECT" => 'id_rubrique, id_breve, date_heure, titre, statut', "FROM" => 'spip_breves', 'WHERE' => "id_rubrique=$id_rubrique AND statut IN ($statuts)", 'ORDER BY' => "date_heure DESC"),'',true); + $res = $lister_objets('breves',array('titre'=>$titre.aide ("breves"),'statut'=>$statuts, 'id_rubrique'=>$id_rubrique, 'par'=>'date_heure'), true); echo $res ; diff --git a/ecrire/exec/meme_rubrique.php b/ecrire/exec/meme_rubrique.php deleted file mode 100644 index b11e338444b655ce46474346a74f86cdc73e6b3b..0000000000000000000000000000000000000000 --- a/ecrire/exec/meme_rubrique.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -/***************************************************************************\ - * SPIP, Systeme de publication pour l'internet * - * * - * Copyright (c) 2001-2010 * - * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * - * * - * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * - * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * -\***************************************************************************/ - -if (!defined("_ECRIRE_INC_VERSION")) return; - -// http://doc.spip.org/@exec_meme_rubrique_dist -function exec_meme_rubrique_dist() -{ - exec_meme_rubrique_args(intval(_request('id')), _request('type'), _request('order')); -} - -// http://doc.spip.org/@exec_meme_rubrique_args -function exec_meme_rubrique_args($id, $type, $order) -{ - if ((!autoriser('publierdans','rubrique',$id)) - OR (!preg_match('/^[\w_-]*$/',$order))) { - include_spip('inc/minipres'); - echo minipres(); - } else { - $meme_rubrique = charger_fonction('meme_rubrique', 'inc'); - // on connait pas le vrai 2e arg mais c'est pas dramatique - if (!$order) $order = 'date'; - $res = $meme_rubrique($id, 0, $type, $order, NULL, true); - include_spip('inc/actions'); - ajax_retour($res); - } -} -?> diff --git a/ecrire/exec/memoriser.php b/ecrire/exec/memoriser.php index 493c8bf16841274de3f2069efd52a34ed3f86c80..d9b7be4cf2af35dd4006b9fc324ad5265ce53190 100644 --- a/ecrire/exec/memoriser.php +++ b/ecrire/exec/memoriser.php @@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // Recupere et affiche (en ajax) une fonction memorisee dans inc/presentation +// obsolete : utilise uniquement par afficher_objets // http://doc.spip.org/@exec_memoriser_dist function exec_memoriser_dist() { diff --git a/ecrire/exec/mots_edit.php b/ecrire/exec/mots_edit.php index 9be52012f0fc106b4eed1ec320510227dccf80d8..f2b878a7e0331c6d55d96bfa6e5e9040c51678a6 100644 --- a/ecrire/exec/mots_edit.php +++ b/ecrire/exec/mots_edit.php @@ -179,17 +179,19 @@ function exec_mots_edit_args($id_mot, $id_groupe, $new, $table='', $table_id='', if ($id_mot) { if ($connect_statut == "0minirezo") - $aff_articles = "'prepa','prop','publie','refuse'"; + $aff_articles = array('prepa','prop','publie','refuse'); else - $aff_articles = "'prop','publie'"; + $aff_articles = array('prop','publie'); - $out .= afficher_objets('rubrique','<b>' . _T('info_rubriques_liees_mot') . '</b>', array("FROM" => 'spip_rubriques AS R LEFT JOIN spip_mots_rubriques AS L ON L.id_rubrique=R.id_rubrique', 'WHERE' => "L.id_mot=$id_mot", 'ORDER BY' => "R.titre")); + $lister_objets = charger_fonction('lister_objets','inc'); - $out .= afficher_objets('article',_T('info_articles_lies_mot'), array('FROM' => "spip_articles AS A LEFT JOIN spip_mots_articles AS L ON L.id_article=A.id_article", 'WHERE' => "L.id_mot=$id_mot AND A.statut IN ($aff_articles)", 'ORDER BY' => "A.date DESC")); + $out .= $lister_objets('rubriques',array('titre'=>_T('info_rubriques_liees_mot'), 'id_mot'=>$id_mot, 'par'=>'titre')); - $out .= afficher_objets('breve','<b>' . _T('info_breves_liees_mot') . '</b>', array("FROM" => 'spip_breves AS B LEFT JOIN spip_mots_breves AS L ON L.id_breve=B.id_breve', 'WHERE' => "L.id_mot=$id_mot", 'ORDER BY' => "B.date_heure DESC")); + $out .= $lister_objets('articles',array('titre'=>_T('info_articles_lies_mot'),'statut'=>$aff_articles, 'id_mot'=>$id_mot, 'par'=>'date')); - $out .= afficher_objets('site','<b>' . _T('info_sites_lies_mot') . '</b>', array("FROM" => 'spip_syndic AS S LEFT JOIN spip_mots_syndic AS L ON L.id_syndic=S.id_syndic', 'WHERE' => "L.id_mot=$id_mot", 'ORDER BY' => "S.nom_site DESC")); + $out .= $lister_objets('breves',array('titre'=>_T('info_breves_liees_mot'), 'id_mot'=>$id_mot, 'par'=>'date_heure')); + + $out .= $lister_objets('sites',array('titre'=>_T('info_sites_lies_mot'), 'id_mot'=>$id_mot, 'par'=>'nom_site')); } $out .= pipeline('affiche_milieu',array('args'=>array('exec'=>'mots_edit','id_mot'=>$id_mot),'data'=>'')) diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php index 616d5f01ff8a486f699913d311e292947abd1c06..b7949eb540d1d77e0613599d2b5f498453f4689e 100644 --- a/ecrire/exec/naviguer.php +++ b/ecrire/exec/naviguer.php @@ -262,78 +262,59 @@ function contenu_naviguer($id_rubrique, $id_parent) { global $spip_lang_right; + $res = ''; + $lister_objets = charger_fonction('lister_objets','inc'); + + $encours = ""; // - // Verifier les boucles a mettre en relief + // Les articles a valider // + $encours .= $lister_objets('articles',array('titre'=>_T('info_articles_proposes'),'statut'=>'prop', 'id_rubrique'=>$id_rubrique,'par'=>'date')); - $relief = sql_countsel('spip_articles', "id_rubrique=$id_rubrique AND statut='prop'"); - - if (!$relief) { - $relief = sql_countsel('spip_breves', "id_rubrique=$id_rubrique AND (statut='prepa' OR statut='prop')"); - } + // + // Les breves a valider + // + $encours .= $lister_objets('breves',array('titre'=>_T('info_breves_valider'),'statut'=>array('prepa','prop'),'id_rubrique'=>$id_rubrique, 'par'=>'date_heure')); - if (!$relief AND $GLOBALS['meta']['activer_sites'] != 'non') { - $relief = sql_countsel('spip_syndic', "id_rubrique=$id_rubrique AND statut='prop'"); + // + // Les sites references a valider + // + if ($GLOBALS['meta']['activer_sites'] != 'non') { + $encours .= $lister_objets('sites',array('titre'=> _T('info_site_valider') ,'statut'=>'prop','id_rubrique'=>$id_rubrique, 'par'=>'nom_site')); } - if (!$relief AND $GLOBALS['meta']['activer_syndic'] != 'non' + // + // Les sites a probleme + // + if ($GLOBALS['meta']['activer_sites'] != 'non' AND autoriser('publierdans','rubrique',$id_rubrique)) { - $relief = sql_countsel('spip_syndic', "id_rubrique=$id_rubrique AND (syndication='off' OR syndication='sus') AND statut='publie'"); + $encours .= $lister_objets('sites',array('titre'=> _T('avis_sites_syndiques_probleme') ,'statut'=>'publie', 'syndication'=>array('off','sus'),'id_rubrique'=>$id_rubrique, 'par'=>'nom_site')); } - $res = ''; - - if ($relief) { - - $encours = ""; - // - // Les articles a valider - // - $encours .= afficher_objets('article',_T('info_articles_proposes'), array('WHERE' => "id_rubrique=$id_rubrique AND statut='prop'", 'ORDER BY' => "date DESC")); - - // - // Les breves a valider - // - $encours .= afficher_objets('breve','<b>' . _T('info_breves_valider') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique=$id_rubrique AND (statut='prepa' OR statut='prop')", 'ORDER BY' => "date_heure DESC"), true); - - // - // Les sites references a valider - // - if ($GLOBALS['meta']['activer_sites'] != 'non') { - $encours .= afficher_objets('site','<b>' . _T('info_site_valider') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique=$id_rubrique AND statut='prop'", 'ORDER BY' => "nom_site")); - } - - // - // Les sites a probleme - // - if ($GLOBALS['meta']['activer_sites'] != 'non' - AND autoriser('publierdans','rubrique',$id_rubrique)) { + // Les articles syndiques en attente de validation + if ($id_rubrique == 0 + AND autoriser('publierdans','rubrique',$id_rubrique)) { - $encours .= afficher_objets('site','<b>' . _T('avis_sites_syndiques_probleme') . '</b>', array('FROM' => 'spip_syndic', 'WHERE' => "id_rubrique=$id_rubrique AND (syndication='off' OR syndication='sus') AND statut='publie'", 'ORDER BY' => "nom_site")); - } + $cpt = sql_countsel("spip_syndic_articles", "statut='dispo'"); + if ($cpt) + $encours .= "<br /><small><a href='" . + generer_url_ecrire("sites_tous") . + "' style='color: black;'>" . + $cpt . + " " . + _T('info_liens_syndiques_1') . + " " . + _T('info_liens_syndiques_2') . + "</a></small>"; + } - // Les articles syndiques en attente de validation - if ($id_rubrique == 0 - AND autoriser('publierdans','rubrique',$id_rubrique)) { - - $cpt = sql_countsel("spip_syndic_articles", "statut='dispo'"); - if ($cpt) - $encours .= "<br /><small><a href='" . - generer_url_ecrire("sites_tous") . - "' style='color: black;'>" . - $cpt . - " " . - _T('info_liens_syndiques_1') . - " " . - _T('info_liens_syndiques_2') . - "</a></small>"; - } + $encours = pipeline('rubrique_encours',array('args'=>array('type'=>'rubrique','id_objet'=>$id_rubrique),'data'=>$encours)); + if (strlen(trim($encours))) $res .= debut_cadre_couleur_foncee("",true, "", _T('texte_en_cours_validation')) - . pipeline('rubrique_encours',array('args'=>array('type'=>'rubrique','id_objet'=>$id_rubrique),'data'=>$encours)) + . $encours . fin_cadre_couleur_foncee(true); - } $n = sql_countsel('spip_rubriques'); $bouton_article = $bouton_breves = $bouton_sites = ""; @@ -355,31 +336,31 @@ function contenu_naviguer($id_rubrique, $id_parent) { ////////// Les articles en cours de redaction ///////////////////////// - $res .= afficher_objets('article',_T('info_tous_articles_en_redaction'), array("WHERE" => "statut='prepa' AND id_rubrique=$id_rubrique", 'ORDER BY' => "date DESC")); + $res .= $lister_objets('articles',array('titre'=>_T('info_tous_articles_en_redaction'),'statut'=>'prepa', 'id_rubrique'=>$id_rubrique,'par'=>'date')); ////////// Les articles publies ///////////////////////// - define('_TRI_ARTICLES_RUBRIQUE', 'date DESC'); # 0+titre,titre - $res .= afficher_objets('article',_T('info_tous_articles_presents'), array("WHERE" => "statut='publie' AND id_rubrique=$id_rubrique", 'ORDER BY' => _TRI_ARTICLES_RUBRIQUE)); + @define('_TRI_ARTICLES_RUBRIQUE', 'date'); # 'num titre' + $res .= $lister_objets('articles',array('titre'=>_T('info_tous_articles_presents'),'statut'=>'publie', 'id_rubrique'=>$id_rubrique,'par'=>_TRI_ARTICLES_RUBRIQUE)); // si une rubrique n'a pas/plus d'article publie, afficher les eventuels articles refuses // pour permettre de la vider et la supprimer eventuellement if (sql_countsel("spip_articles", "statut='publie' AND id_rubrique=".intval($id_rubrique), $groupby, $having)==0) - $res .= afficher_objets('article',_T('info_tous_articles_refuses'), array("WHERE" => "statut='refuse' AND id_rubrique=$id_rubrique", 'ORDER BY' => _TRI_ARTICLES_RUBRIQUE)); + $res .= $lister_objets('articles',array('titre'=>_T('info_tous_articles_refuses'),'statut'=>'refuse', 'id_rubrique'=>$id_rubrique,'par'=>_TRI_ARTICLES_RUBRIQUE)); $res .= $bouton_article; //// Les breves - $res .= afficher_objets('breve','<b>' . _T('icone_ecrire_nouvel_article') . '</b>', array("FROM" => 'spip_breves', 'WHERE' => "id_rubrique=$id_rubrique AND statut != 'prop' AND statut != 'prepa'", 'ORDER BY' => "date_heure DESC")); + $res .= $lister_objets('breves',array('titre'=>_T('icone_ecrire_nouvel_article'),'where'=>"statut != 'prop' AND statut != 'prepa'", 'id_rubrique'=>$id_rubrique,'par'=>'date_heure')); $res .= $bouton_breves; //// Les sites references if ($GLOBALS['meta']["activer_sites"] == 'oui') { - $res .= afficher_objets('site','<b>' . _T('titre_sites_references_rubrique') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "id_rubrique=$id_rubrique AND statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'ORDER BY' => 'nom_site')); + $res .= $lister_objets('sites',array('titre'=>_T('titre_sites_references_rubrique') ,'where'=>"statut!='refuse' AND statut != 'prop' AND syndication NOT IN ('off','sus')", 'id_rubrique'=>$id_rubrique,'par'=>'nom_site')); $res .= $bouton_sites; } return $res; diff --git a/ecrire/exec/recherche.php b/ecrire/exec/recherche.php index 725a60f05d7bfad2e7b6da070dccbd116beefac8..133e7a8fdee48d2bed17e6cb8bc8ef06d92d7201 100644 --- a/ecrire/exec/recherche.php +++ b/ecrire/exec/recherche.php @@ -71,25 +71,25 @@ function exec_recherche_dist() { if ($results) { echo "<span class='verdana1'><b>"._T('info_resultat_recherche')."</b></span><br />"; echo "<h1>$recherche_aff</h1>"; - include_spip('inc/afficher_objets'); + $lister_objets = charger_fonction('lister_objets','inc'); foreach($results as $table => $r) { switch ($table) { case 'article': $titre = _T('info_articles_trouves'); - $order = 'date DESC'; + $order = 'date'; break; case 'breve': $titre = _T('info_breves_touvees'); - $order = 'date_heure DESC'; + $order = 'date_heure'; break; case 'rubrique': $titre = _T('info_rubriques_trouvees'); - $order = 'date DESC'; + $order = 'date'; break; case 'site': $titre = _T('info_sites_trouves'); - $order = 'date DESC'; + $order = 'date'; break; case 'auteur': $titre = _T('info_auteurs_trouves'); @@ -109,16 +109,7 @@ function exec_recherche_dist() { break; } - echo afficher_objets($table,$titre, - array( - // gasp: la requete spip_articles exige AS A - 'FROM' => table_objet_sql($table).' AS A', - 'WHERE' => sql_in('A.'.id_table_objet($table), - array_keys($r) - ), - 'ORDER BY' => $order - ) - ); + echo $lister_objets(table_objet($table),array('titre'=>$titre,id_table_objet($table)=>array_keys($r),'par'=>$order)); } } diff --git a/ecrire/exec/sites.php b/ecrire/exec/sites.php index 4d3d38b494de64f77f27935bd00137090b11fc1e..783e2d3683664950f944fc78e5d239a3f045eb82 100644 --- a/ecrire/exec/sites.php +++ b/ecrire/exec/sites.php @@ -47,8 +47,7 @@ function exec_sites_args($id_syndic) // http://doc.spip.org/@afficher_site function afficher_site($id_syndic, $id_rubrique, $nom_site, $row){ - global $spip_lang_left, -$spip_lang_right; + global $spip_lang_left, $spip_lang_right; $cherche_mot = _request('cherche_mot'); $select_groupe = _request('select_groupe'); @@ -74,6 +73,8 @@ $spip_lang_right; if ($flag_administrable) $instituer_site = charger_fonction('instituer_site','inc'); + $lister_objets = charger_fonction('lister_objets','inc'); + echo debut_grand_cadre(true); echo afficher_hierarchie($id_rubrique); echo fin_grand_cadre(true); @@ -151,7 +152,7 @@ $spip_lang_right; . "</div>" : "") - . afficher_objets('syndic_article',_T('titre_articles_syndiques'), array('FROM' => 'spip_syndic_articles', 'WHERE' => "id_syndic=$id_syndic", 'ORDER BY' => "date DESC"), $id_syndic) + . $lister_objets('syndic_articles',array('titre'=>_T('titre_articles_syndiques'),'id_syndic'=>$id_syndic,'par'=>'date')) . ($date_syndic ? "<div class='date_syndic'>" . _T('info_derniere_syndication').' '.affdate_heure($date_syndic) .".</div>" : "") . "<div class='mise_a_jour_syndic'>" diff --git a/ecrire/exec/sites_tous.php b/ecrire/exec/sites_tous.php index 055a7683d6171ccba0e2ace12a8138a02a10bd4b..ec83d5b5919c660eabd3d636c27db50e0ed3d5f4 100644 --- a/ecrire/exec/sites_tous.php +++ b/ecrire/exec/sites_tous.php @@ -27,11 +27,12 @@ function exec_sites_tous_dist() { echo pipeline('affiche_droite',array('args'=>array('exec'=>'sites_tous'),'data'=>'')); echo debut_droite('', true); - echo afficher_objets('site','<b>' . _T('titre_sites_tous') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "syndication='non' AND statut='publie'", 'ORDER BY'=> "nom_site")); + $lister_objets = charger_fonction('lister_objets','inc'); + echo $lister_objets('sites',array('titre'=>_T('titre_sites_tous'),'syndication'=>'non','statut'=>'publie','par'=>"nom_site")); - echo afficher_objets('site','<b>' . _T('titre_sites_syndiques') . '</b>', array('FROM' => 'spip_syndic', 'WHERE' => "(syndication='oui' OR syndication='sus') AND statut='publie'", 'ORDER BY' => "nom_site")); + echo $lister_objets('sites',array('titre'=>_T('titre_sites_syndiques'),'syndication'=>array('oui','sus'),'statut'=>'publie','par'=>"nom_site")); - echo afficher_objets('site','<b>' . _T('titre_sites_proposes') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "statut='prop'", 'ORDER BY' => "nom_site")); + echo $lister_objets('sites',array('titre'=>_T('titre_sites_proposes'),'statut'=>'prop','par'=>"nom_site")); if (autoriser('bouton','site_creer')) { echo @@ -42,13 +43,13 @@ function exec_sites_tous_dist() { echo pipeline('affiche_milieu',array('args'=>array('exec'=>'sites_tous'),'data'=>'')); - echo afficher_objets('site','<b>' . _T('avis_sites_probleme_syndication') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "syndication='off' AND statut='publie'", 'ORDER BY' => "nom_site")); + echo $lister_objets('sites',array('titre'=>_T('avis_sites_probleme_syndication'),'syndication'=>'off','statut'=>'publie','par'=>"nom_site")); if ($GLOBALS['visiteur_session']['statut'] == '0minirezo') { - echo afficher_objets('site','<b>' . _T('info_sites_refuses') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "statut='refuse'", 'ORDER BY' => "nom_site")); + echo $lister_objets('sites',array('titre'=>_T('info_sites_refuses'),'statut'=>'refuse','par'=>"nom_site")); } - echo afficher_objets('syndic_article','<b>' . _T('titre_dernier_article_syndique') . '</b>', array('FROM' => 'spip_syndic_articles', 'ORDER BY' => "date DESC")); + echo $lister_objets('syndic_articles',array('titre'=>_T('titre_dernier_article_syndique'),'par'=>'date')); echo fin_gauche(), fin_page(); } diff --git a/ecrire/exec/suivi_edito.php b/ecrire/exec/suivi_edito.php index c3ea71be787fa61694078043aee45ec33f053503..740f9b5039f8d7d8c6f8f1bdac21c7d0f99b15f8 100644 --- a/ecrire/exec/suivi_edito.php +++ b/ecrire/exec/suivi_edito.php @@ -15,34 +15,32 @@ include_spip('inc/presentation'); function encours_suivi() { - global $connect_statut; - - + $lister_objets = charger_fonction('lister_objets','inc'); $res = ''; // Les articles a valider // - $res .= afficher_objets('article',_T('info_articles_proposes'), array("WHERE" => "statut='prop'", 'ORDER BY' => "date DESC")); + $res .= $lister_objets('articles',array('titre'=>_T('info_articles_proposes'),'statut'=>'prop', 'par'=>'date')); // // Les breves a valider // - $res .= afficher_objets('breve',afficher_plus(generer_url_ecrire('breves'))._T('info_breves_valider'), array("FROM" => 'spip_breves', 'WHERE' => "statut='prepa' OR statut='prop'", 'ORDER BY' => "date_heure DESC"), true); + $res .= $lister_objets('breves',array('titre'=>afficher_plus_info(generer_url_ecrire('breves'))._T('info_breves_valider'),'statut'=>array('prepa','prop'), 'par'=>'date_heure')); // // Les sites references a valider // if ($GLOBALS['meta']['activer_sites'] != 'non') { - $res .= afficher_objets('site',afficher_plus(generer_url_ecrire('sites_tous')).'<b>' . _T('info_site_valider') . '</b>', array("FROM" => 'spip_syndic', 'WHERE' => "statut='prop'", 'ORDER BY'=> "nom_site")); + $res .= $lister_objets('sites',array('titre'=>afficher_plus_info(generer_url_ecrire('sites_tous')). _T('info_site_valider') ,'statut'=>'prop', 'par'=>'nom_site')); } - if ($connect_statut == '0minirezo') { - // - // Les sites a probleme - // - if ($GLOBALS['meta']['activer_sites'] != 'non') { - $res .= afficher_objets('site',afficher_plus(generer_url_ecrire('sites_tous')). '<b>' . _T('avis_sites_syndiques_probleme') . '</b>', array('FROM' => 'spip_syndic', 'WHERE' => "(syndication='off' OR syndication='sus') AND statut='publie'", 'ORDER BY' => 'nom_site')); + if ($GLOBALS['visiteur_session']['statut'] == '0minirezo') { + // + // Les sites a probleme + // + if ($GLOBALS['meta']['activer_sites'] != 'non') { + $res .= $lister_objets('sites',array('titre'=>afficher_plus_info(generer_url_ecrire('sites_tous')). _T('avis_sites_syndiques_probleme') ,'statut'=>'publie', 'syndication'=>array('off','sus'), 'par'=>'nom_site')); } // Les articles syndiques en attente de validation @@ -59,14 +57,9 @@ function encours_suivi() . "</a></small>"; } - - $res = pipeline('accueil_encours',$res); - if (!$res) return ''; + return pipeline('accueil_encours',$res); - return - "<h2>"._T('texte_en_cours_validation')."</h2>" - . $res; } // http://doc.spip.org/@etat_base_accueil @@ -169,6 +162,7 @@ function suivi_liste_participants() function exec_suivi_edito_dist() { global $id_rubrique, $connect_statut, $connect_id_auteur, $spip_display, $connect_id_rubrique; + $lister_objets = charger_fonction('lister_objets','inc'); $id_rubrique = intval($id_rubrique); pipeline('exec_init',array('args'=>array('exec'=>'suivi_edito','id_rubrique'=>$id_rubrique),'data'=>'')); @@ -189,21 +183,23 @@ function exec_suivi_edito_dist() echo debut_droite("", true); + $date_now = date('Y-m-d H:i:s'); if ($GLOBALS['meta']["post_dates"] == "non" AND $connect_statut == '0minirezo') - echo afficher_objets('article',_T('info_article_a_paraitre'), array("WHERE" => "statut='publie' AND date>".sql_quote(date('Y-m-d H:i:s')), 'ORDER BY' => "date")); + echo $lister_objets('articles',array('titre'=>_T('info_article_a_paraitre'),'statut'=>'publie', 'par'=>'date', 'where'=>'date>'.sql_quote($date_now), 'date_sens'=>1)); - echo encours_suivi(); + $s = encours_suivi(); + if ($s) + echo "<h2>"._T('texte_en_cours_validation')."</h2>" . $s; // Les articles recents // echo "<h2>"._T('articles_recents')."</h2>"; - echo afficher_objets('article', - #afficher_plus(generer_url_ecrire('articles_page')) . - _T('articles_recents'), array("WHERE" => "statut='publie'" .($GLOBALS['meta']["post_dates"] == "non" - ? " AND date<".sql_quote(date('Y-m-d H:i:s')) : ''), - 'ORDER BY' => "date DESC", 'LIMIT' => '0,4')); + $contexte = array('titre'=>_T('articles_recents'),'statut'=>'publie', 'par'=>'date','nb'=>5); + if ($GLOBALS['meta']["post_dates"] == "non") + $contexte['where']='date<='.sql_quote($date_now); + echo $lister_objets('articles',$contexte); echo pipeline('affiche_milieu',array('args'=>array('exec'=>'suivi_edito'),'data'=>'')); diff --git a/ecrire/action/instituer_rubrique_breves.php b/ecrire/exec/visiteurs.php similarity index 53% rename from ecrire/action/instituer_rubrique_breves.php rename to ecrire/exec/visiteurs.php index e29ebad152467c8190b67dd847a5e751bcdc8ea2..e0e570c063bbaa06c40be98186699dda680c0e67 100644 --- a/ecrire/action/instituer_rubrique_breves.php +++ b/ecrire/exec/visiteurs.php @@ -12,27 +12,15 @@ if (!defined("_ECRIRE_INC_VERSION")) return; -// http://doc.spip.org/@action_instituer_rubrique_breves_dist -function action_instituer_rubrique_breves_dist() { +include_spip('inc/presentation'); - $securiser_action = charger_fonction('securiser_action', 'inc'); - $arg = $securiser_action(); - list($id, $statut) = preg_split('/\W/', $arg); - $id = intval($id); +// afficher les nons redacteurs ! +@define('AUTEURS_DEFAUT', '!'); +function exec_visiteurs_dist(){ - include_spip('action/editer_breve'); - - $table = 'articles'; - $key = 'id_article'; - - $voss = sql_select("$key AS id", "spip_$table", "id_rubrique=$id AND (statut = 'publie' OR statut = 'prop')"); - - while($row = sql_fetch($voss)) { - set_request('statut', $statut); - revisions_breves($row['id']); - } - - redirige_url_ecrire('meme_rubrique', "id=$id&type=breve&order=date_heure"); + $auteurs = charger_fonction('auteurs','exec'); + return $auteurs('visiteurs'); } + ?> diff --git a/ecrire/inc/formater_article.php b/ecrire/inc/formater_article.php index d98f24597ef24b266bb08233fe661a6fcca96c73..2cd8f79daea4c951032e23b64b6cf97981884b89 100644 --- a/ecrire/inc/formater_article.php +++ b/ecrire/inc/formater_article.php @@ -13,6 +13,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_spip('inc/afficher_objets'); // Fonction appelee dans une boucle, calculer les invariants au premier appel. +// obsolete, utilise uniquement par afficher_objets // http://doc.spip.org/@inc_formater_article_dist function inc_formater_article_dist($row, $own='') diff --git a/ecrire/inc/lister_objets.php b/ecrire/inc/lister_objets.php new file mode 100644 index 0000000000000000000000000000000000000000..b3b4be230256a7ac262eb6b9436219427df6ba95 --- /dev/null +++ b/ecrire/inc/lister_objets.php @@ -0,0 +1,49 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2010 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + +if (!defined("_ECRIRE_INC_VERSION")) return; + + + +/** + * affichage des liste d'objets + * surcharge pour aiguiller vers la mise en skel + * + * @param string $vue + * @param string $titre + * @param array $requete + * @param string $formater + * @param bool $force + * @return string + */ +function inc_lister_objets_dist($vue, $contexte=array(), $force=false){ + $res = ""; // debug + if ($vue=='sites') + $vue='syndic'; + + if (!is_array($contexte)) + return _L('$contexte doit etre un tableau dans inc/lister_objets'); + + $fond = "prive/listes/$vue"; + if (!find_in_path($fond."."._EXTENSION_SQUELETTES)) + return _L("vue $vue introuvable pour lister les objets"); + + $contexte['sinon']=($force ? $contexte['titre']:''); + + $res = recuperer_fond($fond,$contexte,array('ajax'=>true)); + if (_request('var_liste')) + var_dump($contexte); + + return $res; +} + +?> \ No newline at end of file diff --git a/ecrire/inc/meme_rubrique.php b/ecrire/inc/meme_rubrique.php index 824f623adb250325444d561c0d9717d361247681..5738dd6b85f85c2fe2d266608886beae42d6ec39 100644 --- a/ecrire/inc/meme_rubrique.php +++ b/ecrire/inc/meme_rubrique.php @@ -12,83 +12,24 @@ if (!defined("_ECRIRE_INC_VERSION")) return; // http://doc.spip.org/@inc_meme_rubrique_dist -function inc_meme_rubrique_dist($id_rubrique, $id, $type, $order='', $limit=NULL, $ajax=false) -{ - global $spip_lang_right, $spip_lang_left; - include_spip('inc/presentation'); - include_spip('inc/afficher_objets'); +function inc_meme_rubrique_dist($id_rubrique, $id, $type, $order=''){ - $table = table_objet_sql($type); - if (!id_table_objet($table)) { - spip_log("meme_rubrique: $type table inconnue"); - $type = 'article'; - $table = 'spip_articles'; - } - $prim = 'id_' . $type; - if (!$limit) - $limit = defined("_MAX_ART_AFFICHES") ? _MAX_ART_AFFICHES : 10; + $table = table_objet($type); + $primary = id_table_objet($type); - $titre = ($type!='syndic'?'titre':'nom_site'); - $exec = array('article'=>'articles','breve'=>'breves_voir','syndic'=>'sites'); + $lister_objets = charger_fonction('lister_objets','inc'); + $contexte = array('id_rubrique'=>$id_rubrique,'where'=>"$primary!=".intval($id)); - $where = (($GLOBALS['visiteur_session']['statut'] == '0minirezo') - ? '' - : "(statut = 'publie' OR statut = 'prop') AND ") - . "id_rubrique=$id_rubrique AND ($prim != $id)"; + if ($GLOBALS['visiteur_session']['statut'] !== '0minirezo') + $contexte['statut'] = array('publie','prop'); - $select = "$prim AS id, $titre AS titre, statut"; + if ($order) + $contexte['par'] = $order; + elseif ($type=='article' AND defined('_TRI_ARTICLES_RUBRIQUE')) + $contexte['par'] = _TRI_ARTICLES_RUBRIQUE; - $n = sql_countsel($table, $where); + $contexte['titre'] = _T('info_meme_rubrique'); + return $lister_objets($table,$contexte); - if (!$n) return ''; - - if (!defined('_TRI_ARTICLES_RUBRIQUE')) define('_TRI_ARTICLES_RUBRIQUE', 'date DESC'); // surcharge possible dans mes_options.php - $order = ($order == '') ? ($type=='article'?_TRI_ARTICLES_RUBRIQUE:'date desc') : "$order DESC"; - $voss = sql_select($select, $table, $where, '', "$order", $limit); - - $limit = $n - $limit; - $retour = ''; - $puce_statut = charger_fonction('puce_statut', 'inc'); - $idom = 'rubrique_' . $type; - - while($row = sql_fetch($voss)) { - $id = $row['id']; - $num = afficher_numero_edit($id, $prim, $type); - $statut = $row['statut']; - $statut = $puce_statut($id, $statut, $id_rubrique, $type); - $href = "<a class='verdana1' href='" - . generer_url_ecrire($exec[$type],"$prim=$id") - . "'>" - . sinon(typo($row['titre']), _T('info_sans_titre')) - . "</a>"; - - // Todo: refaire en css plus sains - $retour .= "\n<div>" - . "\n<div style='float:$spip_lang_right;width: 32%'>" - . $num . "</div>" - . "<div style='float:$spip_lang_left; padding-top:1px; width:18px;'>".$statut ."</div>" - . "<div style='padding-$spip_lang_left:18px;'>".$href."</div>" - . "<div style='clear:both; height: 3px;'></div>" - . "</div>"; - } - - $icone = '<b>' . _T('info_meme_rubrique') . '</b>'; - $bouton = bouton_block_depliable(_T('info_meme_rubrique'),true,'memerub'); - - $retour = - debut_cadre('meme-rubriques',"article-24.png",'',$bouton) - . debut_block_depliable(true,'memerub') - . $retour; - - - // $retour .= (($limit <= 0) ? '' : "<tr><td colspan='3' style='text-align: center'>+ $limit</td></tr>"); - - $retour .= fin_block() - . fin_cadre('meme-rubriques'); - - if ($ajax) return $retour; - - // id utilise dans puce_statut_article - return "\n<div id='imgstatut$idom$id_rubrique'>$retour</div>"; } ?> diff --git a/prive/listes/articles.html b/prive/listes/articles.html new file mode 100644 index 0000000000000000000000000000000000000000..b3fffecd29d1fa2312b7fdc6139a860678b6b754 --- /dev/null +++ b/prive/listes/articles.html @@ -0,0 +1,39 @@ +[(#SET{defaut_tri,#ARRAY{ + date,#ENV{date_sens,-1}, + titre,1, + id_article,1 +}}) +]<B_liste_art> +#ANCRE_PAGINATION +<div class="liste-objets articles"> +<table class='spip liste'> +[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_article,info_nb_articles}})</strong></caption>] + <thead> + <tr class='first_row'> + <th class='statut'>[(#TRI{statut,<span title="<:afficher_objets:info_statut|attribut_html:>">#</span>,ajax})]</th> + <th class='titre principale'>[(#TRI{titre,<:info_titre:>,ajax})]</th> + <th class='auteur'><:auteur:></th> + <th class='date secondaire'>[(#TRI{date,<:date:>,ajax})]</th> + <th class='id'>[(#TRI{id_article,<:info_numero_abbreviation:>,ajax})]</th> + </tr> + </thead> + <tbody> + <BOUCLE_liste_art(ARTICLES){id_article?}{id_rubrique?}{id_mot?}{id_auteur?}{where?}{statut?}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,10}}{!lang_select}> + <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> + <td class='statut'>[(#ID_ARTICLE|puce_changement_statut{#STATUT,#ID_RUBRIQUE,article})]</td> + <td class='titre principale'>[(#LOGO_ARTICLE|image_reduire{20,26})]<a href="[(#ID_ARTICLE|generer_url_entite{article})]">[(#RANG). ]#TITRE</a></td> + <td class='auteur'><BOUCLE_auteurs(AUTEURS){id_article}{', '}><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]">#NOM</a></BOUCLE_auteurs></td> + <td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td> + <td class='id'>[(#AUTORISER{modifier,article,#ID_ARTICLE}|?{ + <a href="[(#URL_ECRIRE{articles_edit,id_article=#ID_ARTICLE})]">#ID_ARTICLE</a>, + #ID_ARTICLE + })]</td> + </tr> + </BOUCLE_liste_art> + </tbody> +</table> +[<p class='pagination'>(#PAGINATION{prive})</p>] +</div> +</B_liste_art>[ +<div class="liste-objets articles"><strong class="caption">(#ENV*{sinon,''})</strong></div> +]<//B_liste_art> diff --git a/prive/listes/auteurs.html b/prive/listes/auteurs.html new file mode 100644 index 0000000000000000000000000000000000000000..14e1bc9eb8895efb9fc3cd893c2e05019a70c8d1 --- /dev/null +++ b/prive/listes/auteurs.html @@ -0,0 +1,49 @@ +[(#SET{defaut_tri,#ARRAY{ + statut,1, + multi nom,1, + site,1, + compteur_articles,-1 +}}) +]<B_liste_aut> +#SET{afficher_lettres,#TRI|=={'multi nom'}|oui} +#SET{debut,#ENV{debutaut,#EVAL{_request("debutaut");}}} +#ANCRE_PAGINATION +[<h3><:info_resultat_recherche:> «(#ENV{recherche})»</h3>] +<div class="liste-objets auteurs"> +<table class='spip liste'> +[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}})</strong></caption>] + <thead> + + <B_lettre><tr><td colspan="5"><p class='pagination'><BOUCLE_lettre(AUTEURS){tout}{id_auteur?}{where?}{statut?}{recherche?}{par multi nom}{id_auteur==#GET{afficher_lettres}|?{'.*','A'}}>[ + (#NOM**|extraire_multi|initiale|unique|oui) + [(#SELF|parametre_url{debutaut,@#ID_AUTEUR}|ancre_url{paginationaut}|afficher_initiale{[(#NOM**|extraire_multi|initiale)],#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}})] + ]#SAUTER{#ENV{nb,10}|moins{#COMPTEUR_BOUCLE|=={1}|?{2,1}}}</BOUCLE_lettre>[ + (#REM|afficher_initiale{#REM,#TOTAL_BOUCLE,#GET{debut},#ENV{nb,10}}) + ]</p></td></tr></B_lettre> + + [<tr><td colspan="5"><p class='pagination'>(#PAGINATION{prive})</p></td></tr>] + <tr class='first_row'> + <th class='statut'>[(#TRI{statut,#CHEMIN{images/admin-12.gif}|balise_img{<:afficher_objets:info_statut|attribut_html:>},ajax})]</th> + <th class='email'></th> + <th class='nom'>[(#TRI{multi nom,<:info_nom:>,ajax})]</th> + <th class='site'>[(#TRI{url_site,<:info_site:>,ajax})]</th> + <th class='nombre'>[(#TRI{compteur_articles,<:info_articles:>,ajax})]</th> + </tr> + </thead> + <tbody> + <BOUCLE_liste_aut(AUTEURS){tout}{id_auteur?}{where?}{statut?}{recherche?}{tri #ENV{par,multi nom},#GET{defaut_tri}}{pagination #ENV{nb,10} aut}{!compteur_articles_filtres #ENV{filtre_statut_articles,poubelle}}> + <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)][ (#NOM**|extraire_multi|initiale|=={#ENV{i}}|?{on}|unique)]"> + <td class='statut'>[(#ID_AUTEUR|puce_changement_statut{#STATUT,0,auteur})]</td> + <td class="mail">[<a href="(#ID_AUTEUR|auteur_lien_messagerie{#EN_LIGNE,#STATUT,#IMESSAGE,#EMAIL})">[(#CHEMIN{images/m_envoi.gif}|balise_img{<:info_envoyer_message_prive:>})]</a>]</td> + <td class='nom[ (#NOM|non)vide]'>[(#LOGO_AUTEUR|image_reduire{20,26})]<a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"[ title="(#BIO*|couper{200}|attribut_html)"]>[(#RANG). ][(#NOM|sinon{<:texte_vide:>})]</a></td> + <td class='site'>[<a href='(#URL_SITE|traiter_lien_explicite)'>[(#NOM_SITE|sinon{#URL_SITE|traiter_lien_explicite|couper{30}})]</a>]</td> + <td class='nombre'>[(#COMPTEUR_ARTICLES|singulier_ou_pluriel{info_1_article,info_nb_articles})][<br /><span>(#PIPELINE{'compter_contributions_auteur',#ARRAY{args,#ARRAY{id_auteur,#ID_AUTEUR},data,#ARRAY{}}}|implode{'<br />'})</span>]</td> + </tr> + </BOUCLE_liste_aut> + </tbody> +</table> +[<p class='pagination'>(#PAGINATION{prive})</p>] +</div> +</B_liste_aut>[<h3>[(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}})]</h3>(#ENV{recherche}|oui)][ +<div class="liste-objets auteurs"><strong class="caption">(#ENV*{sinon,''})</strong></div> +]<//B_liste_aut> diff --git a/prive/listes/auteurs_fonctions.php b/prive/listes/auteurs_fonctions.php new file mode 100644 index 0000000000000000000000000000000000000000..1bc9fc722307cdb3cc6381989833e6297d10a291 --- /dev/null +++ b/prive/listes/auteurs_fonctions.php @@ -0,0 +1,135 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2010 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + + +/** + * Compter les articles publies lies a un auteur, dans une boucle auteurs + * pour la vue prive/liste/auteurs.html + * + * @param <type> $idb + * @param <type> $boucles + * @param <type> $crit + * @param <type> $left + */ +function critere_compteur_articles_filtres_dist($idb, &$boucles, $crit, $left=false){ + $boucle = &$boucles[$idb]; + + $_statut = calculer_liste($crit->param[0], array(), $boucles, $boucle->id_parent); + + $not=""; + if ($crit->not) + $not=", 'NOT'"; + $boucle->from['auteurs_articles'] = 'spip_auteurs_articles'; + $boucle->from_type['auteurs_articles'] = 'left'; + $boucle->join['auteurs_articles'] = array("'auteurs'","'id_auteur'"); + + $boucle->from['articles'] = 'spip_articles'; + $boucle->from_type['articles'] = 'left'; + $boucle->join['articles'] = array("'auteurs_articles'","'id_article'","'id_article'","'(articles.statut IS NULL OR '.sql_in('articles.statut',$_statut$not).')'"); + + $boucle->select[]= "COUNT(articles.id_article) AS compteur_articles"; + $boucle->group[] = 'auteurs.id_auteur'; +} +/** + * Compter les articles publies lies a un auteur, dans une boucle auteurs + * pour la vue prive/liste/auteurs.html + * + * @param <type> $p + * @return <type> + */ +function balise_COMPTEUR_ARTICLES_dist($p) { + return rindex_pile($p, 'compteur_articles', 'compteur_articles_filtres'); +} + + +/** + * Calculer l'initiale d'un nom + * + * @param <type> $nom + * @return <type> + */ +function initiale($nom){ + return spip_substr(trim(strtoupper($nom)),0,1); +} + +/** + * Afficher l'initiale pour la navigation par lettres + * + * @staticvar string $memo + * @param <type> $url + * @param <type> $initiale + * @param <type> $compteur + * @param <type> $debut + * @param <type> $pas + * @return <type> + */ +function afficher_initiale($url,$initiale,$compteur,$debut,$pas){ + static $memo = null; + $res = ''; + if (!$memo + OR (!$initiale AND !$url) + OR ($initiale!==$memo['initiale']) + ){ + $newcompt = intval(floor(($compteur-1)/$pas)*$pas); + #var_dump("$initiale:$newcompt"); + if ($memo){ + $on = (($memo['compteur']<=$debut) + AND ( + $newcompt>$debut OR ($newcompt==$debut AND $newcompt==$memo['compteur']) + )); + $res = lien_ou_expose($memo['url'],$memo['initiale'],$on,'lien_pagination'); + } + if ($initiale) + $memo = array('initiale'=>$initiale,'url'=>parametre_url($url,'i',$initiale),'compteur'=>$newcompt); + } + return $res; +} + +/** + * Calculer l'url vers la messagerie : + * - si l'auteur accepte les messages internes et que la messagerie est activee + * et qu'il est en ligne, on propose le lien vers la messagerie interne + * - sinon on propose un lien vers un email si possible + * - sinon rien + * + * @staticvar string $time + * @param int $id_auteur + * @param date $en_ligne + * @param string $statut + * @param string $imessage + * @param string $email + * @return string + */ +function auteur_lien_messagerie($id_auteur,$en_ligne,$statut,$imessage,$email){ + static $time = null; + if (!in_array($statut, array('0minirezo', '1comite'))) + return ''; + + if (is_null($time)) + $time = time(); + $parti = (($time-strtotime($en_ligne))>15*60); + + if ($imessage != 'non' AND !$parti AND $GLOBALS['meta']['messagerie_agenda'] != 'non') + return generer_action_auteur("editer_message","normal/$id_auteur"); + + elseif (strlen($email) AND autoriser('voir', 'auteur', $id_auteur)) + return 'mailto:' . $email; + + else + return ''; + + return "<a href='$href' title=\"" + . _T('info_envoyer_message_prive') + . "\" class='message'> </a>"; +} + +?> \ No newline at end of file diff --git a/prive/listes/breves.html b/prive/listes/breves.html new file mode 100644 index 0000000000000000000000000000000000000000..1354cc1b13bf3eb0789d33fb8969c1305ea6f4d2 --- /dev/null +++ b/prive/listes/breves.html @@ -0,0 +1,38 @@ +[(#SET{defaut_tri,#ARRAY{ + date,#ENV{date_sens,-1}, + date_heure,#ENV{date_sens,-1}, + titre,1, + id_breve,1 +}}) +]<B_liste_bre> +#ANCRE_PAGINATION +<div class="liste-objets breves"> +<table class='spip liste'> +[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_breve,info_nb_breves}})</strong></caption>] + <thead> + <tr class='first_row'> + <th class='statut'>[(#TRI{statut,<span title="<:afficher_objets:info_statut|attribut_html:>">#</span>,ajax})]</th> + <th class='titre'>[(#TRI{titre,<:info_titre:>,ajax})]</th> + <th class='date'>[(#TRI{date,<:date:>,ajax})]</th> + <th class='id'>[(#TRI{id_breve,<:info_numero_abbreviation:>,ajax})]</th> + </tr> + </thead> + <tbody> + <BOUCLE_liste_bre(BREVES){id_breve?}{id_secteur?}{id_mot?}{id_rubrique?}{where?}{statut?}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,10}}> + <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> + <td class='statut'>[(#ID_BREVE|puce_changement_statut{#STATUT,#ID_RUBRIQUE,breve})]</td> + <td class='titre principale'>[(#LOGO_BREVE|image_reduire{20,26})]<a href="[(#ID_BREVE|generer_url_entite{breve})]">#TITRE</a></td> + <td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td> + <td class='id'>[(#AUTORISER{modifier,breve,#ID_BREVE}|?{ + <a href="[(#URL_ECRIRE{breves_edit,id_breve=#ID_BREVE})]">#ID_BREVE</a>, + #ID_BREVE + })]</td> + </tr> + </BOUCLE_liste_bre> + </tbody> +</table> +[<p class='pagination'>(#PAGINATION{prive})</p>] +</div> +</B_liste_bre>[ +<div class="liste-objets breves"><strong class="caption">(#ENV*{sinon,''})</strong></div> +]<//B_liste_bre> diff --git a/prive/listes/mots.html b/prive/listes/mots.html new file mode 100644 index 0000000000000000000000000000000000000000..277f75d2aff86e6fb8cce2ceb5329a769de202f6 --- /dev/null +++ b/prive/listes/mots.html @@ -0,0 +1,37 @@ +[(#SET{defaut_tri,#ARRAY{ + date,#ENV{date_sens,-1}, + titre,1, + id_mot,1 +}}) +]<B_liste_mot> +#ANCRE_PAGINATION +<div class="liste-objets mots"> +<table class='spip liste'> +[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_mot_cle,info_nb_mots_cles}})</strong></caption>] + <thead> + <tr class='first_row'> + <th class='icone'></th> + <th class='titre'>[(#TRI{titre,<:info_titre:>,ajax})]</th> + <th class='type'>[(#TRI{type,<:info_dans_groupe:>,ajax})]</th> + <th class='id'>[(#TRI{id_mot,<:info_numero_abbreviation:>,ajax})]</th> + </tr> + </thead> + <tbody> + <BOUCLE_liste_mot(MOTS){id_mot?}{id_rubrique?}{id_article?}{where?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}> + <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> + <td class='icone'>[(#CHEMIN_IMAGE{mot-16.png}|balise_img)]</td> + <td class='titre principale'>[(#LOGO_MOT|image_reduire{20,26})]<a href="[(#ID_MOT|generer_url_entite{mot})]">[(#RANG). ]#TITRE</a></td> + <td class='type secondaire'>#TYPE</td> + <td class='id'>[(#AUTORISER{modifier,mot,#ID_MOT}|?{ + <a href="[(#URL_ECRIRE{mots_edit,id_mot=#ID_MOT})]">#ID_MOT</a>, + #ID_MOT + })]</td> + </tr> + </BOUCLE_liste_mot> + </tbody> +</table> +[<p class='pagination'>(#PAGINATION{prive})</p>] +</div> +</B_liste_mot>[ +<div class="liste-objets mots"><strong class="caption">(#ENV*{sinon,''})</strong></div> +]<//B_liste_mot> diff --git a/prive/listes/rubriques.html b/prive/listes/rubriques.html new file mode 100644 index 0000000000000000000000000000000000000000..216357ed2ddb40dcd956bde348a499e5901a6c75 --- /dev/null +++ b/prive/listes/rubriques.html @@ -0,0 +1,39 @@ +[(#SET{defaut_tri,#ARRAY{ + date,#ENV{date_sens,-1}, + titre,1, + id_rubrique,1 +}}) +]<B_liste_rub> +#ANCRE_PAGINATION +<div class="liste-objets rubriques"> +<table class='spip liste'> +[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_rubrique,info_nb_rubriques}})</strong></caption>] + <thead> + <tr class='first_row'> + <th class='icone'></th> + <th class='titre'>[(#TRI{titre,<:info_titre:>,ajax})]</th> + <th class='langue'></th> + <th class='date'>[(#TRI{date,<:date:>,ajax})]</th> + <th class='id'>[(#TRI{id_rubrique,<:info_numero_abbreviation:>,ajax})]</th> + </tr> + </thead> + <tbody> + <BOUCLE_liste_rub(RUBRIQUES){id_rubrique?}{id_parent?}{id_mot?}{id_auteur?}{where?}{statut?}{tri #ENV{par,num titre},#GET{defaut_tri}}{par titre}{pagination #ENV{nb,10}}> + <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> + <td class='icone'>[(#CHEMIN_IMAGE{rubrique-16.png}|balise_img)]</td> + <td class='titre principale'>[(#LOGO_RUBRIQUE|image_reduire{20,26})]<a href="[(#ID_RUBRIQUE|generer_url_entite{rubrique})]">[(#RANG). ]#TITRE</a></td> + <td class='langue'></td> + <td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td> + <td class='id'>[(#AUTORISER{modifier,rubrique,#ID_RUBRIQUE}|?{ + <a href="[(#URL_ECRIRE{rubriques_edit,id_rubrique=#ID_RUBRIQUE})]">#ID_RUBRIQUE</a>, + #ID_RUBRIQUE + })]</td> + </tr> + </BOUCLE_liste_rub> + </tbody> +</table> +[<p class='pagination'>(#PAGINATION{prive})</p>] +</div> +</B_liste_rub>[ +<div class="liste-objets rubriques"><strong class="caption">(#ENV*{sinon,''})</strong></div> +]<//B_liste_rub> diff --git a/prive/listes/syndic.html b/prive/listes/syndic.html new file mode 100644 index 0000000000000000000000000000000000000000..c9fc323911a1c92207e46ae05d908ad2bf4b3bf9 --- /dev/null +++ b/prive/listes/syndic.html @@ -0,0 +1,50 @@ +[(#SET{defaut_tri,#ARRAY{ + date,#ENV{date_sens,-1}, + nom_site,1, + id_syndic,1 +}}) +]<B_liste_sites> +#ANCRE_PAGINATION +<div class="liste-objets sites"> +<table class='spip liste'> +[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_site,info_nb_sites}})</strong></caption>] + <thead> + <tr class='first_row'> + <th class='statut'>[(#TRI{statut,<span title="<:afficher_objets:info_statut|attribut_html:>">#</span>,ajax})]</th> + <th class='nom_site'>[(#TRI{nom_site,<:form_prop_nom_site:>,ajax})]</th> + <th class='syndication'><:info_syndication:></th> + <th class='date'>[(#TRI{date,<:date:>,ajax})]</th> + <th class='id'>[(#TRI{id_syndic,<:info_numero_abbreviation:>,ajax})]</th> + </tr> + </thead> + <tbody> + <BOUCLE_liste_sites(SYNDIC){id_syndic?}{id_mot?}{id_rubrique?}{where?}{statut?}{syndication?}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,10}}> + <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> + <td class='statut'>[(#ID_SYNDIC|puce_changement_statut{#STATUT,#ID_RUBRIQUE,site})]</td> + <td class='nom_site principale'>[(#LOGO_SITE|image_reduire{26,20})] + <a href="[(#ID_SYNDIC|generer_url_entite{site})]">#NOM_SITE</a> [<span class='visiter'>[<a href='(#URL_SITE)'><:lien_visite_site:></a>]</span>] + </td> + <td class='syndication'>[(#SYNDICATION|match{off|sus}|oui) + <span class="etat #SYNDICATION">[(#CHEMIN{puce-orange-anim.gif}|balise_img|inserer_attribut{alt,<:info_panne_site_syndique:>})<:info_probleme_grave:>]</span> + ]<BOUCLE_articlesyndic(SYNDIC_ARTICLES){id_syndic}{statut==.*}{tout} />[ + (#SYNDICATION|match{oui|off|sus}|oui) + [(#TOTAL_BOUCLE)] <:info_syndication_articles:> + ]<//B_articlesyndic> + </td> + <td class='date secondaire'>[ + (#STATUT|=={prop}|non) [(#DATE|affdate_jourcourt)]][ + (#STATUT|=={prop}|oui) <:info_a_valider:> + ]</td> + <td class='id'>[(#AUTORISER{modifier,site,#ID_SYNDIC}|?{ + <a href="[(#URL_ECRIRE{sites_edit,id_syndic=#ID_SYNDIC})]">#ID_SYNDIC</a>, + #ID_SYNDIC + })]</td> + </tr> + </BOUCLE_liste_sites> + </tbody> +</table> +[<p class='pagination'>(#PAGINATION{prive})</p>] +</div> +</B_liste_sites>[ +<div class="liste-objets sites"><strong class="caption">(#ENV*{sinon,''})</strong></div> +]<//B_liste_sites> diff --git a/prive/listes/syndic_articles.html b/prive/listes/syndic_articles.html new file mode 100644 index 0000000000000000000000000000000000000000..a060587fd84fa3ad377b628d42d97569fc53a2bc --- /dev/null +++ b/prive/listes/syndic_articles.html @@ -0,0 +1,57 @@ +[(#SET{defaut_tri,#ARRAY{ + date,#ENV{date_sens,-1}, + titre,1, + id_article,1 +}}) +]<B_liste_syndicart> +#ANCRE_PAGINATION +<div class="liste-objets syndic_articles"> +<table class='spip liste'> +[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_article_syndique,info_nb_articles_syndiques}})</strong></caption>] + <thead> + <tr class='first_row'> + <th class='statut'>[(#TRI{statut,<span title="<:afficher_objets:info_statut|attribut_html:>">#</span>,ajax})]</th> + <th class='titre'>[(#TRI{titre,<:info_titre:>,ajax})]</th> + [(#ENV{id_syndic,''}|non) + <th class='site'>site</th> + ] + <th class='date'>[(#TRI{date,<:date:>,ajax})]</th> + <th class='action'></th> + </tr> + </thead> + <tbody> + <BOUCLE_liste_syndicart(SYNDIC_ARTICLES){id_syndic_article?}{id_syndic?}{where?}{statut?}{tri #ENV{par,date},#GET{defaut_tri}}{pagination #ENV{nb,10}}> + <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]"> + <td class='statut'>[(#ID_SYNDIC_ARTICLE|puce_changement_statut{#STATUT,#ID_SYNDIC,syndic_article})]</td> + <td class='titre principale'>[<a + href="(#URL_ARTICLE)">#SET{a,'</a>'}]#TITRE[(#GET{a})] + <span class="auteurs">([(#LESAUTEURS), ][(#DATE|affdate_court)])</span> + [(#TAGS|afficher_enclosures)] + [<span class="tags"><em>(#TAGS|afficher_tags)</em></span>] + [<span class="source">[<a href="(#URL_SOURCE)">#SET{b,'</a>'}](#SOURCE|sinon{#URL_SOURCE})#GET{b}</span>] + </td> + [(#ENV{id_syndic,''}|non) + <td class='site'><a href="[(#ID_SYNDIC|generer_url_entite{site})]">#INFO_TITRE{syndic,#ID_SYNDIC}</a></td> + ] + <td class='date secondaire'>[(#DATE|affdate_jourcourt)]</td> + <td class='action'>[(#AUTORISER{modifier,syndic_article,#ID_SYNDIC_ARTICLE}|oui) + #SET{valider,' '} + [(#STATUT|=={publie}|oui)[(#BOUTON_ACTION{<:info_bloquer_lien:>,#URL_ACTION_AUTEUR{instituer_syndic,#ID_SYNDIC_ARTICLE-refuse,#SELF},ajax})] + #SET{valider,''}][ + (#STATUT|=={refuse}|oui)[(#BOUTON_ACTION{<:info_retablir_lien:>,#URL_ACTION_AUTEUR{instituer_syndic,#ID_SYNDIC_ARTICLE-publie,#SELF},ajax})] + #SET{valider,''}][ + (#STATUT|=={off}|et{#ID_SYNDIC_ARTICLE|test_syndic_article_miroir}|oui) + <:syndic_lien_obsolete:> + #SET{valider,''}][(#GET{valider}|oui) + [(#BOUTON_ACTION{<:info_retablir_lien:>,#URL_ACTION_AUTEUR{instituer_syndic,#ID_SYNDIC_ARTICLE-publie,#SELF},ajax})] + ] + ]</td> + </tr> + </BOUCLE_liste_syndicart> + </tbody> +</table> +[<p class='pagination'>(#PAGINATION{prive})</p>] +</div> +</B_liste_syndicart>[ +<div class="liste-objets syndic_articles"><strong class="caption">(#ENV*{sinon,''})</strong></div> +]<//B_liste_syndicart> diff --git a/prive/listes/syndic_articles_fonctions.php b/prive/listes/syndic_articles_fonctions.php new file mode 100644 index 0000000000000000000000000000000000000000..d6a0f4cd3e7ff7f6472cd402febb192aee83dc0a --- /dev/null +++ b/prive/listes/syndic_articles_fonctions.php @@ -0,0 +1,27 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2010 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + + +/** + * Un test sur les articles syndiques + * pour "depublier les items qui ne figurent plsu dans le flux" + * @global <type> $my_sites + * @param <type> $id + * @return <type> + */ +function filtre_test_syndic_article_miroir_dist($id){ + if (isset($GLOBALS['my_sites'][$id]['miroir']) AND $GLOBALS['my_sites'][$id]['miroir'] == 'oui') + return ' '; + return ''; +} + +?> \ No newline at end of file diff --git a/prive/listes/visiteurs.html b/prive/listes/visiteurs.html new file mode 100644 index 0000000000000000000000000000000000000000..1ea92b3195f8b9cb62ec23c288cf8b278b11cfcd --- /dev/null +++ b/prive/listes/visiteurs.html @@ -0,0 +1,48 @@ +[(#SET{defaut_tri,#ARRAY{ + statut,1, + multi nom,1, + site,1 +}}) +]<B_liste_aut> +#SET{afficher_lettres,#TRI|=={'multi nom'}|oui} +#SET{debut,#ENV{debutaut,#EVAL{_request("debutaut");}}} +#ANCRE_PAGINATION +[<h3><:info_resultat_recherche:> «(#ENV{recherche})»</h3>] +<div class="liste-objets visiteurs"> +<table class='spip liste'> +[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_visiteur,info_nb_visiteurs}})</strong></caption>] + <thead> + + <B_lettre><tr><td colspan="5"><p class='pagination'><BOUCLE_lettre(AUTEURS){tout}{id_auteur?}{where?}{statut?}{recherche?}{par multi nom}{id_auteur==#GET{afficher_lettres}|?{'.*','A'}}>[ + (#NOM**|extraire_multi|initiale|unique|oui) + [(#SELF|parametre_url{debutaut,@#ID_AUTEUR}|ancre_url{paginationaut}|afficher_initiale{[(#NOM**|extraire_multi|initiale)],#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}})] + ]#SAUTER{#ENV{nb,10}|moins{#COMPTEUR_BOUCLE|=={1}|?{2,1}}}</BOUCLE_lettre>[ + (#REM|afficher_initiale{#REM,#TOTAL_BOUCLE,#GET{debut},#ENV{nb,10}}) + ]</p></td></tr></B_lettre> + + [<tr><td colspan="5"><p class='pagination'>(#PAGINATION{prive})</p></td></tr>] + <tr class='first_row'> + <th class='statut'>[(#TRI{statut,#CHEMIN{images/admin-12.gif}|balise_img{<:afficher_objets:info_statut|attribut_html:>},ajax})]</th> + <th class='email'></th> + <th class='nom'>[(#TRI{multi nom,<:info_nom:>,ajax})]</th> + <th class='site'>[(#TRI{url_site,<:info_site:>,ajax})]</th> + <th class='contributions'><:info_contributions:></th> + </tr> + </thead> + <tbody> + <BOUCLE_liste_aut(AUTEURS){tout}{id_auteur?}{where?}{statut?}{recherche?}{tri #ENV{par,multi nom},#GET{defaut_tri}}{pagination #ENV{nb,10} aut}{!compteur_articles_filtres #ENV{filtre_statut_articles,poubelle}}> + <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)][ (#NOM**|extraire_multi|initiale|=={#ENV{i}}|?{on}|unique)]"> + <td class='statut'>[(#ID_AUTEUR|puce_changement_statut{#STATUT,0,auteur})]</td> + <td class="mail">[<a href="(#ID_AUTEUR|auteur_lien_messagerie{#EN_LIGNE,#STATUT,#IMESSAGE,#EMAIL})">[(#CHEMIN{images/m_envoi.gif}|balise_img{<:info_envoyer_message_prive:>})]</a>]</td> + <td class='nom[ (#NOM|non)vide]'>[(#LOGO_AUTEUR|image_reduire{20,26})]<a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"[ title="(#BIO*|couper{200}|attribut_html)"]>[(#RANG). ][(#NOM|sinon{<:texte_vide:>})]</a></td> + <td class='site'>[<a href='(#URL_SITE|traiter_lien_explicite)'>[(#NOM_SITE|sinon{#URL_SITE|traiter_lien_explicite|couper{30}})]</a>]</td> + <td class='contributions'>[(#PIPELINE{'compter_contributions_auteur',#ARRAY{args,#ARRAY{id_auteur,#ID_AUTEUR},'data',#ARRAY{}}}|implode{'<br />'})]</td> + </tr> + </BOUCLE_liste_aut> + </tbody> +</table> +[<p class='pagination'>(#PAGINATION{prive})</p>] +</div> +</B_liste_aut>[<h3>[(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}})]</h3>(#ENV{recherche}|oui)][ +<div class="liste-objets auteurs"><strong class="caption">(#ENV*{sinon,''})</strong></div> +]<//B_liste_aut> diff --git a/prive/listes/visiteurs_fonctions.php b/prive/listes/visiteurs_fonctions.php new file mode 100644 index 0000000000000000000000000000000000000000..e78625f5d395ca436551f783f0cace5a05cd47dd --- /dev/null +++ b/prive/listes/visiteurs_fonctions.php @@ -0,0 +1,15 @@ +<?php + +/***************************************************************************\ + * SPIP, Systeme de publication pour l'internet * + * * + * Copyright (c) 2001-2010 * + * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * + * * + * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * + * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * +\***************************************************************************/ + +include_spip('prive/listes/auteurs_fonctions'); + +?> \ No newline at end of file diff --git a/prive/navigation.xml b/prive/navigation.xml index 0e55874c205188bd4814c22ca24806f4d355f947..c90714ad00c1d1acfe4da17a9022859511e591eb 100644 --- a/prive/navigation.xml +++ b/prive/navigation.xml @@ -65,8 +65,7 @@ <bouton id='visiteurs' parent="bando_activite"> <icone>images/auteur-6forum-16.png</icone> <titre>icone_afficher_visiteurs</titre> - <url>auteurs</url> - <args>statut=!1comite,0minirezo,nouveau</args> + <url>visiteurs</url> </bouton> <bouton id="bando_squelette"> diff --git a/prive/style_prive.html b/prive/style_prive.html index e32d988b7907ba13fa7aab6477f5c0ea33ef9dac..4805a05476924bf6105c72a34cc1837ae6caefa0 100644 --- a/prive/style_prive.html +++ b/prive/style_prive.html @@ -9,7 +9,6 @@ ATTENTION: il faut absolument le charset sinon Firefox croit que c'est du text/html ! - <style> ] #CACHE{3600*100,cache-client} #HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15} @@ -289,7 +288,7 @@ a.cellule-h-texte:hover { text-decoration: none; color: #000; border-#GET{right} /* * Style des icones */ - +/* .fondgris { cursor: pointer; padding: 4px; margin: 1px; } .fondgrison { cursor: pointer; padding: 3px; margin: 1px; border: 1px dashed #999; background-color: #e4e4e4; } .fondgrison2 { cursor: pointer; padding: 3px; margin: 1px; border: 1px dashed #999; background-color: #fff; } @@ -297,6 +296,7 @@ a.cellule-h-texte:hover { text-decoration: none; color: #000; border-#GET{right} .bouton36blanc { padding: 6px; margin-top: 2px; border: 1px solid #999; background-color: #fff; } .bouton36rouge { padding: 6px; margin-top: 2px; border: 1px solid red; background-color: #fff; } .bouton36off { padding: 6px; margin-top: 2px; width: 24px; height: 24px; } +*/ div.onglet { font-family: Verdana, Arial, Sans, sans-serif; font-size: 11px; font-weight: bold; border: 1px solid #GET{foncee}; margin-#GET{right}: 3px; padding: 5px; background-color: #fff; } div.onglet a { color: #GET{foncee}; } @@ -333,8 +333,8 @@ div.onglet_off { font-family: Verdana, Arial, Sans, sans-serif; font-size: 11px; /* Liens hypertexte */ -a { text-decoration: none; color: #GET{foncee}; } -a:hover { text-decoration: none; } +a { text-decoration: none; color: [#(#GET{foncee}|couleur_foncer{0.25})]; } +a:hover { text-decoration: underline; } a.icone { text-decoration: none; } a.icone:hover { text-decoration: none; } @@ -391,64 +391,6 @@ td.icone a img { border: 0; } .cadre-alerte { border: 6px solid red; } -/* * Styles pour "Tout le site" */ - -.plan-rubrique { margin-#GET{left}: 12px; padding-#GET{left}: 10px; border-#GET{left}: 1px dotted #888; } -.plan-secteur { margin-#GET{left}: 12px; padding-#GET{left}: 10px; border-#GET{left}: 1px dotted #404040; } - -.plan-articles, .plan-articles-bloques { border-top: 1px solid #ccc; border-#GET{left}: 1px solid #ccc; border-#GET{right}: 1px solid #ccc; } -.plan-articles a, .plan-articles-bloques .publie, .plan-articles-bloques .prepa, .plan-articles-bloques .prop, .plan-articles-bloques .refuse, .plan-articles-bloques .poubelle { display: block; padding: 2px; padding-#GET{left}: 18px; border-bottom: 1px solid #ccc; background: [(#ENV{ltr}|choixsiegal{left,1,99})%] no-repeat; background-color: #eee; font-size: 11px; text-decoration: none; } -.plan-articles a:hover { background-color: #fff; text-decoration: none; } -.plan-articles .publie, .plan-articles-bloques .publie { background-image: url(#CHEMIN_IMAGE{puce-verte.gif}); } -.plan-articles .prepa, .plan-articles-bloques .prepa { background-image: url(#CHEMIN_IMAGE{puce-blanche.gif}); } -.plan-articles .prop, .plan-articles-bloques .prop { background-image: url(#CHEMIN_IMAGE{puce-orange.gif}); } -.plan-articles .refuse, .plan-articles-bloques .refuse { background-image: url(#CHEMIN_IMAGE{puce-rouge.gif}); } -.plan-articles .poubelle, .plan-articles-bloques .poubelle { background-image: url(#CHEMIN_IMAGE{puce-poubelle.gif}); } - -a.foncee, a.foncee:hover, a.claire, a.claire:hover, span.creer, span.lang_base { display: inline; float: none; padding: 2px; margin: 0; margin-#GET{left}: 1px; margin-#GET{right}: 1px; border: 0; font-family: Arial, Helvetica, Sans, sans-serif; font-size: 9px; text-decoration: none; z-index: 1; } -a.foncee, a.foncee:hover { background-color: #GET{foncee}; color: #fff; border: 1px solid #GET{foncee}; } -a.claire, a.claire:hover { background-color: #GET{claire}; color: #GET{foncee}; border: 1px solid #GET{foncee}; } -span.lang_base { color: #666; border: 1px solid #666; background-color: #eee; } -span.creer { color: #333; border: 1px solid #333; background-color: #fff; } -.trad_float { float: #GET{right}; z-index: 20; margin-top: 4px; } - -div.liste,div.cadre-liste { border: 1px solid #ccc; background:white; } -div.cadre div.cadre-liste { margin-top: 3px; margin-bottom: 3px; } -div.cadre-couleur-foncee div.cadre-liste { margin-top: 10px; margin-bottom: 3px; } -div.cadre-liste .cadre_padding {padding: 0; } -div.cadre-liste .padding_x .bloc_depliable {padding: 0; } -div.cadre-liste .tranches{ position: relative;border-top: 1px solid #ccc; background-color: #ddd; border-bottom: 1px solid #ccc; padding: 2px;padding-#GET{right}:25px; } -div.cadre-liste .tranches a.plus {position: absolute; top: 3px; #GET{right}:10px;} - -.tout-site #page ul#articles_tous,.tout-site ul#articles_tous ul { list-style: none; } -.tout-site #page ul { margin-#GET{left}: 10px; padding-#GET{left}: 12px; border-#GET{left}: 1px dotted #888; } -.tout-site #page ul,.tout-site #page li { clear: both; } -li.sec, li.rub { display: inline; } -ul>li.sec,ul>li.rub { display: block; } -li.sec a.titre, li.rub a.titre { display: block; height: 20px; margin: 0; margin-bottom: 5px; padding: 0; padding-top: 4px; padding-#GET{left}: 5px; font-weight: bold; } -li.art { display: block; height:24px; } -li.sec a.titre { background-color: #GET{claire}; } -li.rub a.titre { background-color: transparent; } -li.art a.titre { display: inline; background-color: transparent; font-weight: normal; padding-#GET{left}: 5px; padding-top: 4px; height: 20px; } -span.icone { float: #GET{left}; position: relative; display: block; width: 28px; height: 24px; margin-#GET{left}: -14px; } -li.art span.icone { margin-#GET{left}: 0; } - -span.holder {} -li.sec span.icone { background: url(#CHEMIN_IMAGE{secteur-24.gif}) [(#GET{left})] bottom no-repeat; } -li.rub span.icone { background: url(#CHEMIN_IMAGE{rubrique-24.gif}) [(#GET{left})] top no-repeat; } -li.art span.icone { background: url(#CHEMIN_IMAGE{article-24.gif}) [(#GET{left})] top no-repeat; } -li.sec ul{ display: none; } -li.rub ul{ display: none; } - -li img.expandImage { display: block; float: #GET{left}; position: relative; #GET{left}: -20px; width: 16px; height: 16px; } -li.selected { background-color: #GET{claire}} - -.tr_liste { background-color: #eee; } -.tr_liste_over, .tr_liste:hover { background-color: #fff; } -.tr_liste td, .tr_liste:hover td, .tr_liste_over td { border-bottom: 1px solid #ddd; } -tbody>.tr_liste:last-child td { border-bottom: 0px; } -.tr_liste td div.liste_clip { height: 12px; overflow: hidden; } -.tr_liste:hover td div.liste_clip, span.liste_clip { overflow: visible; height: 100%; } img.puce { width: 7px; height: 7px; border: 0; } img.lang { width: 12px; height: 12px; border: 0; } @@ -550,9 +492,6 @@ h3.titrem {position:relative;} -.cadre-liste .titrem { background-color: #fff; color: #444; } -.cadre-liste .titrem.hover { background-color: #GET{claire}} -.cadre-liste .tr_liste .titrem { background-color:#eee; } .cadre-couleur .titrem { background-color: #fff; } .joindre .titrem, #navigation .joindre .titrem { background-color: #GET{claire}; } @@ -586,6 +525,68 @@ td.message, a.message { background: url([(#CHEMIN_IMAGE{m_envoi[(#GET{rtl})].gif .enfants ul { list-style: none; } .enfants ul li.rubrique_12 {background:url(#CHEMIN_IMAGE{rubrique-12.gif})[ (#GET{left})] center no-repeat; padding: 2px; padding-#GET{left}: 18px; margin-#GET{left}: 6px;position:relative;} +/* Listes d'objet */ +.liste-objets{ + margin:1em 0; + font-size:.85em; + border: 1px solid #dfdfdf; +} +.cadre .liste-objets{font-size:1em;} + +.liste-objets .pagination { + margin-top:0; padding:1px 5px; + background:#eee; border:none; +} +.liste-objets .pagination .separateur {color:#aaa;} + +.liste-objets table.spip {width:100%; /* surcharger le 99% de spip ? */ max-width:none; background:white; border:none; margin-bottom:0;} +.liste-objets table.spip caption {margin:0;text-align:left;} +.liste-objets .caption {display:block;color:#333;font-size:1.1em;padding:7px 6px 6px 30px;background:none no-repeat scroll 2px 2px #FFFFFF} +.liste-objets table.spip tr {background:white;} +.liste-objets table.spip tr.row_odd {background:white;} +.liste-objets table.spip tr.row_even {background:white;} +.liste-objets table.spip thead tr {background:#eee;} +.liste-objets table.spip tbody tr:hover {background-color: #f8f8f8;} +.liste-objets table.spip tr th {border-color:#dfdfdf; border-left:0; border-right:0;} +.liste-objets table.spip tr td {border-color:#dfdfdf; border-left:0; border-right:0;} + +.liste-objets tr > .statut,.liste-objets tr > .icone {width: 16px; padding-left:2px;padding-right:2px;text-align:center;} +.liste-objets tr > .auteur {width: 80px;} +.liste-objets tr > .date {width: 90px;} +.liste-objets tr > .id {width: 40px; text-align:#GET{right};} +.liste-objets tr > .action {width: 90px; text-align:#GET{right};} +.liste-objets tr td .spip_logos {float:#GET{right};} +.liste-objets tr td.syndication .etat {display:block;color:red;} + +.liste-objets tr td {font-size:0.9em;} +.liste-objets tr td.secondaire {font-size:0.85em;} +.liste-objets tr td.principale {font-size:1.025em;} +.liste-objets tr td > span {font-size:0.85em;} +.liste-objets .bouton_action_post .submit {font-size:1em;} + +.liste-objets.syndic_articles tr > .action {width: 50px;} +.liste-objets.syndic_articles td .tags, +.liste-objets.syndic_articles td .source {display:block;text-align:#GET{right};} +.liste-objets.syndic_articles td .tags a {color:#666;} + +.liste-objets.mots .caption {background-image:url(#CHEMIN_IMAGE{mot-cle-24.gif});} +.liste-objets.rubriques .caption {background-image:url(#CHEMIN_IMAGE{rubrique-24.gif});} +.liste-objets.articles .caption {background-image:url(#CHEMIN_IMAGE{article-24.gif});} +.liste-objets.breves .caption {background-image:url(#CHEMIN_IMAGE{breve-24.gif});} +.liste-objets.sites .caption {background-image:url(#CHEMIN_IMAGE{site-24.gif});} +.liste-objets.syndic_articles .caption {background-image:url(#CHEMIN_IMAGE{site-24.gif});} + +/* dans une colonne laterale, ne visualiser que l'info principale, le statut et l'id */ +#navigation .liste-objets tr > .secondaire, +#navigation .liste-objets tr > .auteur, +#navigation .liste-objets tr > .date, +#navigation .liste-objets tr > .action, +#navigation .liste-objets tr > .syndication, +#navigation .liste-objets tr .spip_logos +{display:none;} +#navigation .liste-objets tr td.principale {font-size:0.9em;max-width:120px;} + + /* * ***************************************************/ /* directives specifiques a une page */ /* exec=admin_tech */ diff --git a/prive/style_vieilles_def.html b/prive/style_vieilles_def.html index 3c341423e48701b65e89a2f9f26eeaba6ef9d2fa..a23af923760bfc3a00f20b0acb8fb087590e22ce 100644 --- a/prive/style_vieilles_def.html +++ b/prive/style_vieilles_def.html @@ -178,11 +178,12 @@ a.icone:hover { text-decoration: none; } /* * Styles pour "Tout le site" */ + .plan-rubrique { margin-#GET{left}: 12px; padding-#GET{left}: 10px; border-#GET{left}: 1px dotted #888; } .plan-secteur { margin-#GET{left}: 12px; padding-#GET{left}: 10px; border-#GET{left}: 1px dotted #404040; } .plan-articles, .plan-articles-bloques { border-top: 1px solid #ccc; border-#GET{left}: 1px solid #ccc; border-#GET{right}: 1px solid #ccc; } -.plan-articles a, .plan-articles-bloques .publie, .plan-articles-bloques .prepa, .plan-articles-bloques .prop, .plan-articles-bloques .refuse, .plan-articles-bloques .poubelle { display: block; padding: 2px; padding-#GET{left}: 18px; border-bottom: 1px solid #ccc; background: [(#ENV{ltr}|choixsiegal{left,1,99})%] no-repeat; background-color: #e0e0e0; font-size: 11px; text-decoration: none; } +.plan-articles a, .plan-articles-bloques .publie, .plan-articles-bloques .prepa, .plan-articles-bloques .prop, .plan-articles-bloques .refuse, .plan-articles-bloques .poubelle { display: block; padding: 2px; padding-#GET{left}: 18px; border-bottom: 1px solid #ccc; background: [(#ENV{ltr}|choixsiegal{left,1,99})%] no-repeat; background-color: #eee; font-size: 11px; text-decoration: none; } .plan-articles a:hover { background-color: #fff; text-decoration: none; } .plan-articles .publie, .plan-articles-bloques .publie { background-image: url(#CHEMIN_IMAGE{puce-verte.gif}); } .plan-articles .prepa, .plan-articles-bloques .prepa { background-image: url(#CHEMIN_IMAGE{puce-blanche.gif}); } @@ -197,17 +198,14 @@ span.lang_base { color: #666; border: 1px solid #666; background-color: #eee; } span.creer { color: #333; border: 1px solid #333; background-color: #fff; } .trad_float { float: #GET{right}; z-index: 20; margin-top: 4px; } -div.liste,div.cadre-liste { border: 1px solid #aaa; background:white; } +div.liste,div.cadre-liste { border: 1px solid #ccc; background:white; } +div.cadre div.cadre-liste { margin-top: 3px; margin-bottom: 3px; } +div.cadre-couleur-foncee div.cadre-liste { margin-top: 10px; margin-bottom: 3px; } div.cadre-liste .cadre_padding {padding: 0; } div.cadre-liste .padding_x .bloc_depliable {padding: 0; } -div.cadre-liste .tranches{ position: relative;border-top: 1px solid #000; background-color: #ddd; border-bottom: 1px solid #444; padding: 2px;padding-#GET{right}:25px; } +div.cadre-liste .tranches{ position: relative;border-top: 1px solid #ccc; background-color: #ddd; border-bottom: 1px solid #ccc; padding: 2px;padding-#GET{right}:25px; } div.cadre-liste .tranches a.plus {position: absolute; top: 3px; #GET{right}:10px;} -.cadre-meme-rubriques { background: #eee; border: 1px solid #aaa; } -.cadre-meme-rubriques .cadre_padding.padding_x { padding: 0; } -.cadre-meme-rubriques .padding_x .bloc_depliable { padding: 0; } - - .tout-site #page ul#articles_tous,.tout-site ul#articles_tous ul { list-style: none; } .tout-site #page ul { margin-#GET{left}: 10px; padding-#GET{left}: 12px; border-#GET{left}: 1px dotted #888; } .tout-site #page ul,.tout-site #page li { clear: both; } @@ -237,3 +235,14 @@ a.triangle_block:hover { filter: alpha(opacity=100); -moz-opacity: 1; opacity: 1 /*.swap-couche { border: 0; height: 10px; width: 10px; }*/ +/* anciennes listes d'objet */ +.tr_liste { background-color: #eee; } +.tr_liste_over, .tr_liste:hover { background-color: #fff; } +.tr_liste td, .tr_liste:hover td, .tr_liste_over td { border-bottom: 1px solid #ddd; } +tbody>.tr_liste:last-child td { border-bottom: 0px; } +.tr_liste td div.liste_clip { height: 12px; overflow: hidden; } +.tr_liste:hover td div.liste_clip, span.liste_clip { overflow: visible; height: 100%; } + +.cadre-liste .titrem { background-color: #fff; color: #444; } +.cadre-liste .titrem.hover { background-color: #GET{claire}} +.cadre-liste .tr_liste .titrem { background-color:#eee; }