web-dev-qa-db-fra.com

Vérifier si le contenu existe

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.

4
JoomlaUser

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

2
AndyGaskell