Sidebar dynamique avec listing d'article par pages statiques
Salut à tous,
Aujourd'hui, j'avais essayé une chose intéressante, avoir un listing d'articles dynamiques !!
J'ai eu cette réflexion :
Sidebar.php
Donc avez vous une idée pour permettre une liste d'article dynamique en fonction des pages statiques avec une position de sidebar ?
Aujourd'hui, j'avais essayé une chose intéressante, avoir un listing d'articles dynamiques !!
J'ai eu cette réflexion :
Donc je teste l'idée !"Pourquoi ne pas se servir de la div sidebar ? avec le code listing ! Et le mettre en page statique !!"
Sidebar.php
<?php if(!defined('PLX_ROOT')) exit; ?>
<!--
<div id="sidebar">
<div class="categories">
<h2>Catégories</h2>
<ul><?php $plxShow->catList('','<li id="#cat_id"><a href="#cat_url" class="#cat_status" title="#cat_name">#cat_name</a></li>'); ?></ul>
</div>
<div class="flux">
<h2>Syndication</h2>
<ul>
<li><a href="./feed.php?atom/commentaires" title="Fil Atom des commentaires">Commentaires</a></li>
<li><a href="./feed.php?atom" title="Fil Atom des articles">Articles</a></li>
</ul>
</div>
<div class="last_art">
<h2>Derniers articles</h2>
<ul><?php $plxShow->lastArtList('<li><a href="#art_url" class="#art_status" title="#art_title">#art_title</a></li>'); ?></ul>
</div>
-->
<!-- EDIT: Afficher commentaires (menu)
<div class="last_com">
<h2>Derniers commentaires</h2>
<ul>
<?php $plxShow->lastComList('<li><a href="#com_url">#com_author a dit :</a> #com_content(34)</li>'); ?>
</ul>
</div>
-->
Ma page statique "Classe J" de test :<p>La première classe journaliste de l’Echo des collines est née en septembre 2008. Une classe de seconde du lycée Elie Faure (Lormont) a été sensibilisée à l’univers des médias et formée aux techniques de rédaction de la presse écrite. Les élèves ont produits des articles tout au long de l’année scolaire : une sélection de leurs textes était publiée chaque mois dans le magazine.
Un public jeune est ainsi amené à réfléchir à son environnement proche (articles sur des thèmes d’actualité locale) mais aussi à s’ouvrir à des sujets de société.
La classe journaliste est une expérience réussie et enrichissante, que l’association entend maintenir sur la durée. Le lycée Elie Faure continue de travailler et de proposer une classe pour ce projet. D’autres classes devraient ouvrir en collège et primaire.
</P>
<div id="sidebar">
<h3> Articles :</h3>
<?php
if(!defined('PLX_ROOT')) exit;
#=======PARAMÈTRES ========
# format de la date
$format_date = '#num_day/#num_month/#num_year(4)';
# liste des catégories à afficher
# exemple: $catList = ''; = articles de toutes les catégories,
# exemple: $catList = '001|003'; = articles des catégories 001 et 003 uniquement
$catList = '003';
# nombre d'articles à afficher par catégorie, mettre 0 pour lister tous les articles
$artsByCategory = 0;
#==========================
global $plxShow;
$plx_arts = array();
$plxGlob_arts = plxGlob::getInstance(PLX_ROOT.$plxShow->plxMotor->aConf['racine_articles']);
$aFiles = $plxGlob_arts->query('/[0-9]{4}.[home|0-9,]*'.$catList.'[0-9,]*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/','art','rsort',0,false,'before');
$aCatList = explode('|', $catList);
if(is_array($aFiles)) { # On a des fichiers
while(list($k,$v) = each($aFiles)) { # On parcourt tous les fichiers
$temp = $plxShow->plxMotor->parseArticle(PLX_ROOT.$plxShow->plxMotor->aConf['racine_articles'].$v);
$cats = explode(',', $temp['categorie']);
foreach($cats as $cat) {
if($catList=='' OR in_array($cat, $aCatList)) {
if(!isset($plx_arts[$cat]))
$plx_arts[$cat][] = $temp;
elseif(intval(sizeof($plx_arts[$cat])) < $artsByCategory OR $artsByCategory == 0)
$plx_arts[$cat][] = $temp;
}
}
}
if($plx_arts) { # On a des articles
# tri en fonction de l'ordre d'affiche des catégories
uksort($plx_arts, create_function('$a, $b', 'global $plxShow; return strcmp(array_search($a, array_keys($plxShow->plxMotor->aCats)), array_search($b, array_keys($plxShow->plxMotor->aCats)));'));
# On boucle sur nos articles
foreach ($plx_arts as $k => $v) {
$cat_num = $k;
# on trie en fonction de l'ordre d'affichage des articles dans la catégorie
if($cat_num=='home') {
if ($plxShow->plxMotor->aConf['tri']=='asc')
usort($v, create_function('$a, $b', 'return strcmp($a["date"], $b["date"]);'));
else
usort($v, create_function('$a, $b', 'return strcmp($b["date"], $a["date"]);'));
echo '<h2><a href="'.$plxShow->plxMotor->aConf['racine'].'">Accueil</a></h2>';
}
elseif(!isset($plxShow->plxMotor->aCats[$cat_num])) {
if ($plxShow->plxMotor->aConf['tri']=='asc')
usort($v, create_function('$a, $b', 'return strcmp($a["date"], $b["date"]);'));
else
usort($v, create_function('$a, $b', 'return strcmp($b["date"], $a["date"]);'));
echo '<h2>Non classé</h2>';
}
else {
if ($plxShow->plxMotor->aCats[$cat_num]['tri'] == 'asc')
usort($v, create_function('$a, $b', 'return strcmp($a["date"], $b["date"]);'));
else
usort($v, create_function('$a, $b', 'return strcmp($b["date"], $a["date"]);'));
$cat_name = plxUtils::strCheck($plxShow->plxMotor->aCats[ $cat_num ]['name']);
$cat_url = $plxShow->plxMotor->aCats[ $cat_num ]['url'];
echo '<h2><a href="'.$plxShow->plxMotor->aConf['racine'].'?categorie'.intval($cat_num).'/'.$cat_url.'">'.$cat_name.'</a></h2>';
}
echo "<ul>";
# On boucle sur les articles de la categories
while(list($null, $art) = each($v)) {
$art_num = intval($art['numero']);
$art_url = plxUtils::strCheck(($art['url']));
$art_title = plxUtils::strCheck(($art['title']));
$art_date = plxDate::dateIsoToHum($art['date'], $format_date);
echo '<li>'.$art_date.': <a href="'.$plxShow->plxMotor->aConf['racine'].'?article'.$art_num.'/'.$art_url.'">'.$art_title.'</a></li>';
}
echo "</ul>";
}
}
}
?>
</div>
Ça n'as pas marché ..., au lieu de sa la liste s'est affiché en dessous de l'article, alors qu'il doit être sur le côté !!Donc avez vous une idée pour permettre une liste d'article dynamique en fonction des pages statiques avec une position de sidebar ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je l'ai fait chez moi, ça fonctionne parfaitement
Sinon merci, je l'ai fait sur mon localhost