J'ai ce morceau de code dans mon template:
<article id="content">
<section id="mid">
<jdoc:include type="component" />
</section>
</article>
qui affiche le contenu de mon site.
Je sais qu'il existe un moyen de vérifier si un module existe avec $this->countModules('mymodulename')
mais est-il possible de vérifier si le contenu existe?
Donc, je veux seulement sortir #content
Et #mid
Si le contenu réel existe dans l'article respectif. Jusqu'à présent, les balises HTML vides sont affichées si je n'ai aucun contenu dans l'article.
Je suis d'accord avec les commentaires, mieux vaut peut-être annuler la publication d'articles vides.
Il existe également une faille dans ce plan, à savoir l'hypothèse que le composant appelé est com_content avec un seul article. Que se passe-t-il si la page pointée par l'élément de menu n'est pas com_content ou s'il s'agit d'une vue de blog de com_content? Dans ces cas, vous n'avez pas un seul identifiant d'article.
Ces pensées mises à part, vous pouvez le faire avec le code suivant ...
# get the app object, you may already be doing this in your code
$app = JFactory::getApplication();
# get the article id
$article_id = $app->input->get('id');
# check we have one
if ($article_id) {
# load the JTableContent object
$article = JTable::getInstance('content');
$article->load($article_id);
# use these for debug
echo $article->get('title');
echo $article->get('introtext');
if ( strlen($article->get('introtext') ) ) {
echo "we have content :)";
?>
<article id="content">
<section id="mid">
<jdoc:include type="component" />
</section>
</article>
<?php
} else {
echo "we have no content :( ";
}
}
Ceci utilise le JTableContent de Joomla, voir https://docs.joomla.org/Creating_content_using_JTableContent