【问题标题】:Joomla 2.5: displaying or hiding information based on amount of articles in moduleJoomla 2.5:根据模块中的文章数量显示或隐藏信息
【发布时间】:2013-10-23 10:46:55
【问题描述】:

对于我正在进行的项目,我遇到了以下问题

我有一个基于类别加载文章的模块。我需要使用 {loadposition} 将这些文章加载到另一篇文章中,其中将加载一个模块来加载该类别的文章。

对于每个所说的类别,我都有一个标题和一些文本,然后将加载包含文章的模块。但是,当类别中没有文章时,我会得到标题和文本,但没有相关文章。

我想要的是,当一个类别中没有文章,因此不会显示任何文章时,我还想隐藏该类别的标题和文本。

我曾尝试使用 countModules 函数,但这不起作用,因为用于加载文章的模块将始终处于活动状态,即使该类别中根本没有文章。有什么办法可以做到这一点?也许某种方式可以查看该类别中是否确实有任何文章,并根据该显示或隐藏标题和文本?

任何帮助将不胜感激

【问题讨论】:

    标签: joomla joomla2.5 joomla-module


    【解决方案1】:

    你可以做什么,在后台打开文章,然后在编辑器中点击小“html”按钮。您将看到您的文章文本和标题将包裹在 <p> 标记周围。所以首先,像这样向它添加一个类:

    <p class="my_module_article">Title of Article</p>
    <p class="my_module_article">Text for article</p>
    

    然后在您的模块 default.php 中使用 ifelse 语句并在一个小 CSS 中像这样:

    $results = "the code you used to get the articles from the category";
    
    if ($results) {
        //code to display the articles
    }
    else {
        $doc = JFactory::getDocument();
        $doc->addStyleDeclaration(".my_module_article { display: none; }");
        echo "There are no articles to be displayed";
    }
    

    希望对你有帮助

    【讨论】:

    • 感谢您的回答!我不太确定如何进行。我使用的模块是 Joomla 附带的标准新闻快讯模块。我查看了模块的代码,但我不确定在哪里放置 if 语句。我把它放在了一些我认为它可能工作的地方,但问题是我不知道该模块如何或在哪里从一个类别中提取文章(如果有的话)。很遗憾我还没有成功,但我会尝试更多
    • 啊我不知道您使用的是默认的新闻快讯模块。在这种情况下,我建议创建模块的template override,并在覆盖完成后将代码添加到 default.php
    • 我成功了!我做了一个模板覆盖并且对代码有些挣扎,但它现在可以工作了。非常感谢您的帮助!
    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多