hmm, il te faut un moyen pour savoir combien d’articles sont dans une rubrique. Si c’est possible à passer cette variable, tu peux faire un morceau de code PHP dans le squelette qui decide ou il faut utiliser une part du squelette avec display de rubrique ou l’autre part avec display de l’article.
Quelqu’un a une solution sauf directement marcher dans la base MySQL ? Ça m’interesse aussi !
Si tu marches directement dans la base MySQL, j’espère qu’il te faut une query comme :
<?php
if(isset($id_rubrique)) { // only ask if $id_rubrique has a value (if not: fatal mySQL error)
// define variables
$user='yourUsername';
$pass='yourPassword';
$dbase="'yourMySQL_db';
// this is the query you need
$query="SELECT COUNT(*) from spip_articles WHERE id_rubrique=$id_rubrique AND statut='publie'";
$conn = mysql_connect($dbase, $user, $pass); // open MySQL connection
if($conn) {
mysql_select_db($dbase, $conn); // connection successful: ask MySQL
}
else {
die("<B>Error: Cannot connect to MySQL-Server"); // connection failed for whichever reason. check user, pw and db
}
$result = mysql_query ($query,$conn); // mySQL stores result in a buffer; retrieve it.
mysql_close($conn); // DON'T FORGET: close the connection or other SPIP queries will fail
} // fermer la boucle isset($id_rubrique)
if($result>1) { // now you can ask: is there more than 1 article?
?>... put here the squelette code for rubrique display
<?php } elseif($result==1) { // is there only one article? ?>
... put here the squelette code for article display;
<?php } else { // ... or is there no article at all? ?>
... put here the squelette code for no_article_in_this_section
<?php } // ne pas oublier à fermer la boucle if! ?>
Ce code a encore un trou : Quand tu as une rubrique avec un seul article ET des sous.-rubriques, quoi faire ? Peut-être il faut reformuler la query un peu. Je n’ai pas encore trouvé comme SPIP trouve si il y a une sous rubrique dans une rubrique.
Quand-même il faut que tu écrives le code de display pour l’article deux fois : une fois dans article.html, et l’autre fois dedans rubrique.html.