it-swarm.com.de

Überprüfen Sie, ob Inhalt vorhanden ist

Ich habe diesen Code in meiner Vorlage:

<article id="content">
    <section id="mid">
        <jdoc:include type="component" />
    </section>
</article>

hier wird der Inhalt meiner Website angezeigt.

Ich weiß, dass es eine Möglichkeit gibt, zu überprüfen, ob ein Modul mit $this->countModules('mymodulename') vorhanden ist. Kann ich jedoch überprüfen, ob Inhalt vorhanden ist?

Ich möchte also nur #content Und #mid Ausgeben, wenn im jeweiligen Artikel tatsächlich Inhalt vorhanden ist. Bisher werden die leeren HTML-Tags angezeigt, wenn der Artikel keinen Inhalt enthält.

4
JoomlaUser

Ich bin mit Kommentaren einverstanden, am besten, um leere Artikel zu entfernen.

Es gibt auch einen möglichen Fehler in diesem Plan, nämlich die Annahme, dass die aufgerufene Komponente com_content mit einem einzelnen Artikel ist. Was passiert, wenn die Seite, auf die der Menüpunkt zeigt, nicht com_content ist oder wenn es sich um eine Blogansicht von com_content handelt? In diesen Fällen haben Sie keine einzige Artikel-ID.

Abgesehen von diesen Gedanken könnten Sie dies mit dem folgenden Code tun ...

# 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 :( ";

    }    
}

Dies verwendet den JTableContent von Joomla, siehe https://docs.joomla.org/Creating_content_using_JTableContent

2
AndyGaskell