structure branches / trunk
commit
05d6bfd2fd
@ -0,0 +1,15 @@
|
||||
* text=auto !eol
|
||||
/activite_editoriale.png -text
|
||||
/activite_editoriale_fonctions.php -text
|
||||
/activite_editoriale_pipelines.php -text
|
||||
base/activite_editoriale.php -text
|
||||
base/activite_editoriale_install.php -text
|
||||
fonds/articles_notag.html -text
|
||||
fonds/cfg_activite_editoriale.html -text
|
||||
genie/activite_editoriale_alerte.php -text
|
||||
inclure/maj_branche.html -text
|
||||
inclure/maj_rubrique.html -text
|
||||
lang/activite_editoriale_fr.php -text
|
||||
/plugin.xml -text
|
||||
prive/exec/activite_editoriale.html -text
|
||||
prive/exec/activite_editoriale_rubrique.html -text
|
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
function age_rubrique($date_str) {
|
||||
/*
|
||||
$date = new DateTime();
|
||||
$age = $date->diff(new DateTime($date_str));
|
||||
return $age->d;
|
||||
*/
|
||||
return intval((time() - strtotime($date_str)) / (60 * 60 * 24));
|
||||
}
|
||||
|
||||
?>
|
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
function activite_editoriale_taches_generales_cron($taches_generales) {
|
||||
$taches_generales['activite_editoriale_alerte'] = 24*3600; // tous les jours
|
||||
return $taches_generales;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||
|
||||
function activite_editoriale_declarer_champs_extras($champs = array()){
|
||||
$champs[] = new ChampExtra(array(
|
||||
'table' => 'rubriques', // sur quelle table ?
|
||||
'champ' => 'extras_delai', // nom sql
|
||||
'label' => 'activite_editoriale:delai', // chaine de langue 'mon_plug:mon_label'
|
||||
'precisions' => 'activite_editoriale:delai_precisions', // precisions sur le champ
|
||||
'obligatoire' => false, // 'true', 'false' ou ''
|
||||
'rechercher' => false, // 'false', 'true' ou directement la valeur de ponderation (de 1 a 8 generalement)
|
||||
'type' => 'ligne', // type de saisie
|
||||
'sql' => "tinytext NOT NULL DEFAULT ''", // declaration sql
|
||||
));
|
||||
$champs[] = new ChampExtra(array(
|
||||
'table' => 'rubriques', // sur quelle table ?
|
||||
'champ' => 'extras_identifiants', // nom sql
|
||||
'label' => 'activite_editoriale:identifiants', // chaine de langue 'mon_plug:mon_label'
|
||||
'precisions' => 'activite_editoriale:identifiants_precisions', // precisions sur le champ
|
||||
'obligatoire' => false, // 'true', 'false' ou ''
|
||||
'rechercher' => false, // 'false', 'true' ou directement la valeur de ponderation (de 1 a 8 generalement)
|
||||
'type' => 'ligne', // type de saisie
|
||||
'sql' => "tinytext NOT NULL DEFAULT ''", // declaration sql
|
||||
));
|
||||
return $champs;
|
||||
}
|
||||
|
||||
?>
|
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
if (!defined("_ECRIRE_INC_VERSION")) return;
|
||||
|
||||
include_spip('inc/cextras_gerer');
|
||||
include_spip('base/activite_editoriale');
|
||||
|
||||
function activite_editoriale_upgrade($nom_meta_base_version,$version_cible){
|
||||
$champs = activite_editoriale_declarer_champs_extras();
|
||||
installer_champs_extras($champs, $nom_meta_base_version, $version_cible);
|
||||
}
|
||||
|
||||
function activite_editoriale_vider_tables($nom_meta_base_version) {
|
||||
$champs = activite_editoriale_declarer_champs_extras();
|
||||
desinstaller_champs_extras($champs, $nom_meta_base_version);
|
||||
}
|
||||
?>
|
@ -0,0 +1,23 @@
|
||||
<B_row>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><:activite_editoriale:id_article:></th>
|
||||
<th><:activite_editoriale:titre_article:></th>
|
||||
<th><:activite_editoriale:redacteurs:></th>
|
||||
<th><:activite_editoriale:date:></th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<BOUCLE_row(POUR){tableau #ENV{liste}}>
|
||||
<tr>
|
||||
<BOUCLE_col(POUR){tableau #VALEUR}>
|
||||
<td>#VALEUR</td>
|
||||
</BOUCLE_col>
|
||||
</tr>
|
||||
</BOUCLE_row>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</B_row>
|
@ -0,0 +1,20 @@
|
||||
<div class="formulaire_spip">
|
||||
<!-- titre=<:activite_editoriale:cfg:> -->
|
||||
<form action="#SELF" method="post">
|
||||
[<div>(#ENV{_cfg_}|form_hidden)</div>]
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<label for="champ"><:activite_editoriale:cfg_champ:></label>
|
||||
<select name="champ" id="champ">
|
||||
<option value="maj_rubrique" [(#ENV{champ}|=={maj_rubrique}|oui) selected="selected"]><:activite_editoriale:cfg_maj_rubrique:></option>
|
||||
<option value="date_modif_branche" [(#ENV{champ}|=={date_modif_branche}|oui) selected="selected"]><:activite_editoriale:cfg_date_modif_branche:></option>
|
||||
<option value="date_modif_rubrique" [(#ENV{champ}|=={date_modif_rubrique}|oui) selected="selected"]><:activite_editoriale:cfg_date_modif_rubrique:></option>
|
||||
|
||||
</select>
|
||||
</li>
|
||||
<p class="boutons">
|
||||
<input type="submit" name="_cfg_ok" value="<:OK:>" />
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
function genie_activite_editoriale_alerte_dist() {
|
||||
if (function_exists('lire_config')){
|
||||
$config_champ = lire_config('activite_editoriale/champ','maj_rubrique');
|
||||
}
|
||||
|
||||
switch ($config_champ){
|
||||
case 'maj_rubrique':
|
||||
activite_tester_maj_rubrique();
|
||||
break;
|
||||
case 'date_modif_branche':
|
||||
activite_tester_date_modif_branche();
|
||||
break;
|
||||
case 'date_modif_rubrique':
|
||||
activite_tester_date_modif_rubrique();
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
function activite_tester_maj_rubrique(){
|
||||
if ($rubLists = sql_select("*", "spip_rubriques", "`extras_delai` != '' and TO_DAYS(NOW()) - TO_DAYS(maj) >= `extras_delai`")) {
|
||||
while($list = sql_fetch($rubLists)) {
|
||||
activite_editoriale_envoyer_mail($list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function activite_tester_date_modif_branche(){
|
||||
if ($rubLists = sql_select(array('id_rubrique','extras_delai','extras_identifiants','titre'), "spip_rubriques", "`extras_delai` != ''")){
|
||||
include_spip('inc/utils');
|
||||
while($list = sql_fetch($rubLists)){
|
||||
|
||||
$date_modif = trim(recuperer_fond('inclure/maj_rubrique',array('id_rubrique'=>$list['id_rubrique'])));
|
||||
|
||||
if (age_rubrique($date_modif)>$list['extras_delai']){
|
||||
$list['maj'] = $date_modif;
|
||||
activite_editoriale_envoyer_mail($list);
|
||||
//echo "s;";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function activite_tester_date_modif_rubrique(){
|
||||
if ($rubLists = sql_select(array('id_rubrique','extras_delai','extras_identifiants','titre'), "spip_rubriques", "`extras_delai` != ''")){
|
||||
include_spip('inc/utils');
|
||||
while($list = sql_fetch($rubLists)){
|
||||
|
||||
$date_modif = trim(recuperer_fond('inclure/maj_rubrique',array('id_rubrique'=>$list['id_rubrique'])));
|
||||
|
||||
if (age_rubrique($date_modif)>$list['extras_delai']){
|
||||
$list['maj'] = $date_modif;
|
||||
activite_editoriale_envoyer_mail($list);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function activite_editoriale_envoyer_mail($list){
|
||||
|
||||
$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
|
||||
$subject = _T('activite_editoriale:rubrique_doit_maj');
|
||||
include_spip('activite_editoriale_fonctions');
|
||||
$url = $GLOBALS['meta']['adresse_site'].'/ecrire/?exec=naviguer&id_rubrique='.$list['id_rubrique'];
|
||||
$body = _T('activite_editoriale:rubrique_pas_maj',array('titre'=>$list['titre'],'jours'=>age_rubrique($list['maj'])))."\n\n";
|
||||
$body = $body._T('activite_editoriale:gestionnaire')."\n\n";
|
||||
$body = $body.$url;
|
||||
|
||||
if ($auteurLists = sql_select("*", "spip_auteurs", "id_auteur in (".$list['extras_identifiants'].")")) {
|
||||
while($auteurs = sql_fetch($auteurLists)) {
|
||||
var_dump($auteurs);
|
||||
$to = $auteurs['email'];
|
||||
if ($envoyer_mail($to, $subject, $body)) {
|
||||
spip_log("Message envoyé à".$to, "activite_editoriale");
|
||||
} else {
|
||||
spip_log("Message n'a pu être envoyé à ".$to, "activite_editoriale");
|
||||
}
|
||||
}
|
||||
}
|
||||
$to = '';
|
||||
foreach (explode(',',activite_editoriale_emails($list['extras_identifiants'])) as $to){
|
||||
|
||||
if ($to!=''){
|
||||
|
||||
if ($envoyer_mail($to, $subject, $body)) {
|
||||
spip_log("Message envoyé à".$to, "activite_editoriale");
|
||||
} else {
|
||||
spip_log("Message n'a pu être envoyé à ".$to, "activite_editoriale");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
function activite_editoriale_emails($champ){
|
||||
$champ = ','.str_replace(' ','',$champ).',';
|
||||
$champ = preg_replace('#,[0-9]*,#',',',$champ);
|
||||
return $champ;
|
||||
}
|
||||
?>
|
@ -0,0 +1,3 @@
|
||||
<BOUCLE_articles(ARTICLES){branche}{tout}{!par date_modif}{0,1}>#SET{article,#DATE_MODIF}</BOUCLE_articles>
|
||||
<BOUCLE_breves(BREVES){branche}{tout}{!par maj}{0,1}>#SET{breves,#MAJ}</BOUCLE_breves>
|
||||
[(#GET{article}|max{#GET{breves}})]
|
@ -0,0 +1,3 @@
|
||||
<BOUCLE_articles(ARTICLES){id_rubrique}{tout}{!par date_modif}{0,1}>#SET{article,#DATE_MODIF}</BOUCLE_articles>
|
||||
<BOUCLE_breves(BREVES){id_rubrique}{tout}{!par maj}{0,1}>#SET{breves,#MAJ}</BOUCLE_breves>
|
||||
[(#GET{article}|max{#GET{breves}})]
|
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
$GLOBALS[$GLOBALS['idx_lang']] = array(
|
||||
//A
|
||||
'activite_editoriale' =>'Activité éditoriale',
|
||||
'activite_editoriale_statistiques' => 'Activité éditoriales: statistiques de publication',
|
||||
'au' => ' au ',
|
||||
'apartirde' => 'À partir du ',
|
||||
'activer_stats' => 'Activer les stats des rubriques',
|
||||
'activer_mots_cles' => 'Liste des articles sans mots-clés',
|
||||
'activer_stat_oui' => 'Oui',
|
||||
'activer_stat_non' => 'Non',
|
||||
|
||||
//D
|
||||
'delai' => 'Délai',
|
||||
'delai_precisions' => '(en nombre de jours)',
|
||||
'derniere_maj' => 'Dernière MàJ',
|
||||
'du' => 'Du ',
|
||||
'detail_mots_cles' => 'Articles sans mot-clé',
|
||||
'date' => 'Date',
|
||||
|
||||
//E
|
||||
'editer' => 'Éditer l\'article',
|
||||
|
||||
//G
|
||||
'gestionnaire' => 'Vous êtes identifié comme un gestionnaire de la rubrique',
|
||||
|
||||
//I
|
||||
'identifiants' => 'Identifiants ou email des auteurs à alerter',
|
||||
'identifiants_precisions' => '(séparés par des ",")',
|
||||
'icone_statistics' => 'Voir les statistiques de la rubrique',
|
||||
'icone_mots_cles' => 'Voir le détail',
|
||||
'id_article' => 'ID de l\'article',
|
||||
|
||||
//J
|
||||
'jours' => 'jour(s)',
|
||||
'jusqua' => 'Jusqu\'au',
|
||||
|
||||
//N
|
||||
'nb_art_secteur' => 'Nb d\'articles publiés dans le secteur',
|
||||
'nb_art_branche' => 'Nb d\'articles publiés dans la branche',
|
||||
'nb_art_total' => 'Nb d\'articles publiés total',
|
||||
'nb_total_notag' => 'Nb d\'articles publiés sans mot-clé',
|
||||
'nb_articles' => 'Nombre d\'articles',
|
||||
'nb_rubriques' => 'Nombre de rubriques',
|
||||
'nb_total_articles' => 'Nombre total d\'article',
|
||||
'nb_total_rubriques' => 'Nombre total de rubriques',
|
||||
|
||||
//P
|
||||
'periode' => 'Période',
|
||||
|
||||
//R
|
||||
'responsables' => 'Responsables',
|
||||
'rubriques_a_suivre' => 'Rubriques à suivre',
|
||||
'rubrique_doit_maj' => 'Une rubrique doit être mise a jour',
|
||||
'rubrique_pas_maj' => 'Attention, la rubrique “ @titre@ ” n\'a pas été mise à jour depuis @jours@ jours',
|
||||
'rubriques_pas_a_jour' => 'Rubriques n\'ayant pas été mises à jour à temps',
|
||||
'redacteurs' => 'Rédacteurs',
|
||||
'rubrique' => 'RUBRIQUE: ',
|
||||
|
||||
//S
|
||||
'secteur' => 'Secteur:',
|
||||
|
||||
//T
|
||||
'top_auteurs' => 'Top des auteurs',
|
||||
'toutelaperiode' => 'Toute la période',
|
||||
'titre_article' => 'Titre de l\'article',
|
||||
|
||||
//CFG
|
||||
'cfg' => 'Configurer le plugin Activité éditoriale',
|
||||
'cfg_champ' => 'Quel est le champ analysé pour savoir la MAJ ?',
|
||||
'cfg_maj_rubrique' => 'Le champ MAJ de la rubrique',
|
||||
'cfg_date_modif_branche' => 'Le champ DATE_MODIF des articles (breves) de la branche',
|
||||
'cfg_date_modif_rubrique' => 'Le champ DATE_MODIF des articles (breves) de la rubrique'
|
||||
|
||||
|
||||
);
|
@ -0,0 +1,82 @@
|
||||
<plugin>
|
||||
<nom>Activité éditoriale</nom>
|
||||
<slogan>Un site, c'est bien ! Un site à jour, c'est mieux !</slogan>
|
||||
<auteur>[Stéphanie Caron de Clever Age->http://www.clever-age.com/], [Maïeul ROUQUETTE (amélioration)->http://www.maieul.net]</auteur>
|
||||
<licence>GNU/GPL</licence>
|
||||
<version>1.0.0</version>
|
||||
<version_base>0.1</version_base>
|
||||
<description>Ce plugin a pour objectif de compléter les fonctionnalités de suivi de l'activité éditoriale de SPIP.
|
||||
|
||||
Sont déjà proposés :
|
||||
-* l'ajout de deux champs aux rubriques pour indiquer un délai en jour au delà duquel elle doivent être alimentées, ainsi que les personnes à prévenir
|
||||
-* des alertes par e-mail selon ces deux paramètres
|
||||
-* un tableau de bord présentant les mêmes informations
|
||||
|
||||
</description>
|
||||
<lien>http://www.spip-contrib.net/Activite-editoriale</lien>
|
||||
<etat>stable</etat>
|
||||
<icon>activite_editoriale.png</icon>
|
||||
<prefix>activite_editoriale</prefix>
|
||||
<install>base/activite_editoriale_install.php</install>
|
||||
<pipeline>
|
||||
<nom>declarer_champs_extras</nom>
|
||||
<inclure>base/activite_editoriale.php</inclure>
|
||||
</pipeline>
|
||||
<pipeline>
|
||||
<nom>taches_generales_cron</nom>
|
||||
<inclure>activite_editoriale_pipelines.php</inclure>
|
||||
</pipeline>
|
||||
<fonctions>activite_editoriale_fonctions.php</fonctions>
|
||||
<bouton id='activite_editoriale' parent='naviguer'>
|
||||
<titre>activite_editoriale:activite_editoriale</titre>
|
||||
<icone>activite_editoriale.png</icone>
|
||||
</bouton>
|
||||
<bouton id='activite_editoriale2' parent='bando_publication'>
|
||||
<titre>activite_editoriale:activite_editoriale</titre>
|
||||
<icone>activite_editoriale.png</icone>
|
||||
<url>activite_editoriale</url>
|
||||
</bouton>
|
||||
<categorie>edition</categorie>
|
||||
<necessite id="SPIP" version='[2.0.0;2.1.99]' />
|
||||
<necessite id="cextras" version="[1.0.0;]" />
|
||||
<necessite id='spip_bonux' version='[1.9.1;]' />
|
||||
<necessite id='cfg' version='[1.9.1;]' />
|
||||
</plugin>
|
||||
<plugin spip='[3.0.0-dev;3.0.99]'>
|
||||
<nom>Activité éditoriale</nom>
|
||||
<slogan>Un site, c'est bien ! Un site à jour, c'est mieux !</slogan>
|
||||
<auteur>[Stéphanie Caron de Clever Age->http://www.clever-age.com/], [Maïeul ROUQUETTE (amélioration)->http://www.maieul.net]</auteur>
|
||||
<licence>GNU/GPL</licence>
|
||||
<version>1.0.0</version>
|
||||
<version_base>0.1</version_base>
|
||||
<description>Ce plugin a pour objectif de compléter les fonctionnalités de suivi de l'activité éditoriale de SPIP.
|
||||
|
||||
Sont déjà proposés :
|
||||
-* l'ajout de deux champs aux rubriques pour indiquer un délai en jour au dela duquel elle doivent être alimentées, ainsi que les personnes à prévenir
|
||||
-* des alertes par e-mail selon ces deux paramètres
|
||||
-* un tableau de bord présentant les mêmes informations
|
||||
</description>
|
||||
<lien>http://www.spip-contrib.net/Activite-editoriale</lien>
|
||||
<etat>stable</etat>
|
||||
<bouton id='activite_editoriale' parent='bando_publication'>
|
||||
<titre>activite_editoriale:activite_editoriale</titre>
|
||||
<icone>images/16.png</icone>
|
||||
<url>activite_editoriale</url>
|
||||
</bouton>
|
||||
<icon>activite_editoriale.png</icon>
|
||||
<prefix>activite_editoriale</prefix>
|
||||
<necessite id="cextras" version="[1.0.0;]" />
|
||||
<install>base/activite_editoriale_install.php</install>
|
||||
<pipeline>
|
||||
<nom>declarer_champs_extras</nom>
|
||||
<inclure>base/activite_editoriale.php</inclure>
|
||||
</pipeline>
|
||||
<pipeline>
|
||||
<nom>taches_generales_cron</nom>
|
||||
<inclure>activite_editoriale_pipelines.php</inclure>
|
||||
</pipeline>
|
||||
<fonctions>activite_editoriale_fonctions.php</fonctions>
|
||||
|
||||
<categorie>edition</categorie>
|
||||
<necessite id='cfg' version='[1.9.1;]' />
|
||||
</plugin>
|
@ -0,0 +1,83 @@
|
||||
#CACHE{0}
|
||||
<h1><:activite_editoriale:activite_editoriale:></h1>
|
||||
|
||||
<div>
|
||||
|
||||
<h2><:activite_editoriale:rubriques_pas_a_jour:></h2>
|
||||
<div class='cadre cadre-liste' style='margin-top: 20px;'>
|
||||
<table width='100%' cellpadding='2' cellspacing='0' border='0'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><:rubrique:></th>
|
||||
<th><:activite_editoriale:responsables:></th>
|
||||
<th><:activite_editoriale:delai:></th>
|
||||
<th><:activite_editoriale:derniere_maj:></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<BOUCLE_rubriques(RUBRIQUES){tout}{par maj}>
|
||||
[(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={maj_rubrique}|oui)
|
||||
#SET{maj,#MAJ}
|
||||
]
|
||||
[(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_branche}|oui)
|
||||
#SET{maj,#INCLURE{fond=inclure/maj_branche}{id_rubrique}}
|
||||
]
|
||||
[(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_rubrique}|oui)
|
||||
#SET{maj,#INCLURE{fond=inclure/maj_rubrique}{id_rubrique}}
|
||||
]
|
||||
[(#EXTRAS_DELAI|!={''}|oui)
|
||||
|
||||
|
||||
[(#GET{maj}|age_rubrique|>={#EXTRAS_DELAI}|oui)
|
||||
<INCLURE{fond=prive/exec/activite_editoriale_rubrique}{id_rubrique}{maj=#GET{maj}}>
|
||||
]
|
||||
]
|
||||
</BOUCLE_rubriques>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2><:activite_editoriale:rubriques_a_suivre:></h2>
|
||||
<div class='cadre cadre-liste' style='margin-top: 20px;'>
|
||||
<table width='100%' cellpadding='2' cellspacing='0' border='0'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><:rubrique:></th>
|
||||
<th><:activite_editoriale:responsables:></th>
|
||||
<th><:activite_editoriale:delai:></th>
|
||||
<th><:activite_editoriale:derniere_maj:></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<BOUCLE_rubriques2(RUBRIQUES){tout}{par maj}>
|
||||
[(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={maj_rubrique}|oui)
|
||||
#SET{maj,#MAJ}
|
||||
]
|
||||
[(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_branche}|oui)
|
||||
#SET{maj,#INCLURE{fond=inclure/maj_branche}{id_rubrique}}
|
||||
]
|
||||
[(#CONFIG{activite_editoriale/champ,maj_rubrique}|=={date_modif_rubrique}|oui)
|
||||
#SET{maj,#INCLURE{fond=inclure/maj_rubrique}{id_rubrique}}
|
||||
]
|
||||
[(#EXTRAS_DELAI|!={''}|oui)
|
||||
|
||||
|
||||
[(#GET{maj}|age_rubrique|<{#EXTRAS_DELAI}|oui)
|
||||
<INCLURE{fond=prive/exec/activite_editoriale_rubrique}{id_rubrique}{maj=#GET{maj}}>
|
||||
]
|
||||
]
|
||||
</BOUCLE_rubriques2>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--#navigation-->
|
||||
<!--/#navigation-->
|
||||
|
||||
<!--#extra-->
|
||||
<!--/#extra-->
|
@ -0,0 +1,11 @@
|
||||
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}{tout}>
|
||||
<tr class='tr_liste'>
|
||||
<td><a href='#URL_ECRIRE{naviguer,id_rubrique=#ID_RUBRIQUE}' dir='ltr'>#TITRE</a></td>
|
||||
<td>
|
||||
#SET{liste_auteur, #EXTRAS_IDENTIFIANTS|explode{','}}
|
||||
<BOUCLE_auteurs(AUTEURS) {id_auteur IN #GET{liste_auteur}}{tout}{", "}><a href='#URL_ECRIRE{auteur_infos,id_auteur=#ID_AUTEUR}'>#NOM</a></BOUCLE_auteurs>
|
||||
</td>
|
||||
<td style="text-align: right">#EXTRAS_DELAI <:activite_editoriale:jours:></td>
|
||||
<td style="text-align: right">[(#ENV{maj}|affdate)]</td>
|
||||
</tr>
|
||||
</BOUCLE_rubrique>
|
Loading…
Reference in New Issue