Joomla发表日期

时间:2016-06-28 22:51:35

标签: joomla

如何编写在发布文章日显示的模块?

我写了类似的东西,但它似乎并不是每次都有用。

你能纠正我吗?

{source}

<?php
    $option = JRequest::getCmd('option');
    $view = JRequest::getCmd('view');
    if ($option=="com_content" && $view=="article") {
    $ids = explode(':',JRequest::getString('id'));
    $article_id = $ids[0];
    $article =& JTable::getInstance("content");
    $article->load($article_id);
    $date = new JDate($article->get("publish_up"));

    $currentTime = new JDate('now');

    $interval = $date->diff($currentTime);

    if($interval->d == 0) {
            echo 'dzisiaj' . "<br>";
        }
        else if( $interval->d == 1) {
            echo 'wczoraj' . "<br>";
        }
        else if( $interval->d > 1) {
            echo $interval->format('%a dni temu') . "<br>";
        }


}

?>

{/source}

2 个答案:

答案 0 :(得分:0)

你获得文章ID的方式看起来很奇怪。尝试这样的事情:

$app = JFactory::getApplication(); 
$article_id = $app->input->getInt('id');

这使用当前的joomla api来获取http变量(more info here

尽管如此,我还没有确切地知道为什么你的代码会以你的方式失败...

答案 1 :(得分:0)

谢谢,但现在我有类似的东西

{source}
<?php


    $app = JFactory::getApplication(); 
    $article_id = $app->input->getInt('id');
    $article =& JTable::getInstance("content");
    $article->load($article_id);
    $date = new JDate($article->get("published"));
    $currentTime = new JDate('now');
    echo $date;
    $interval = $date->diff($currentTime);

    if($interval->d == 0) {
            echo 'dzisiaj';
        }
        else if( $interval->d == 1) {
            echo 'wczoraj';
        }
        else if( $interval->d > 1) {
            echo $interval->format('%a dni temu');
        }




?>

{/source}

它现在有效,但它显示了发布的日期。