La semaine dernière, j'ai écrit et je vous ai proposé un petit plugin qui vous permet d'afficher un contenu (dans un article ou un module) entre deux dates de publication
listepubdate.php
<?php
defined('_JEXEC') or die('Access deny');
class plgContentListePubdate extends JPlugin
{
function onContentPrepare($content, $article, $params, $limit){
$document = JFactory::getDocument();
$document->addStyleSheet(JURI::base(). "plugins/content/listepubdate/style.css");
$remplacement = "Le meilleur de seb";
$db=JFactory::getDBO();
// $sql="select * from #__content where introtext like '{pubdate*pubdate}'";
$sql = "SELECT #__content.id, #__content.title, #__content.introtext
FROM #__content,#__categories
WHERE `introtext` regexp '{puBdate:.*{\/pubdate}'";
///echo $sql;
$db->setQuery($sql);
$row = $db->loadRowList();
$i=0;
$remplacement = '<table class="table-pub">';
$remplacement .= '<tr><th>Titre de l\'article</th><th>Date début</th><th>Date de fin</th></tr>';
foreach ($row as $maligne)
{
preg_match_all('/{pubdate:start=(.*):stop=(.*)}\r?\n?(.*)\r?\n?{\/pubdate}/m',$maligne[2], $matches, PREG_SET_ORDER, 0);
/*echo "<pre>";
echo "0 - ".$matches[$i][0]."<br>";
echo "1 - ".$matches[$i][1]."<br>";
echo "2 - ".$matches[$i][2]."<br>";
echo "3 - ".$matches[$i][3]."<br>";
echo "</pre>";*/
$remplacement .= "<tr>";
if (!empty($matches[$i][3]))
{
$remplacement .= "<td>".$matches[$i][3]."</td><td>".$matches[$i][2]."</td><td>".$matches[$i][1]."</td>";
}
$remplacement .= "</tr>";
$i++;
//$remplacement .= '<tr><td>'.$maligne[0].'</td><td>'.$maligne[1].'</td><td>'.$maligne[2].'</td><td><pre>'..'</pre></td></td></tr>';
}
$remplacement .= '</table>';
$article->text = str_replace('{listepubdate}', $remplacement, $article->text);
}
}
listepubdate.xml
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.1" type="plugin" group="Content">
<name>Listepubdate</name>
<author>Sebastien LHUILLIER</author>
<creationDate>Janvier 2023</creationDate>
<copyright>Sébastien LHUILLIER</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.</authorEmail>
<authorUrl>www.sebastien-lhuillier.com</authorUrl>
<version>1.0</version>
<description>Afficher la liste des articles ayant un contenu avec données datées butoires</description>
<files>
<filename plugin="listepubdate">listepubdate.php</filename>
<filename>listepubdate.xml</filename>
</files>
</extension>
