如何编写在发布文章日显示的模块?
我写了类似的东西,但它似乎并不是每次都有用。
你能纠正我吗?{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}
答案 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}
它现在有效,但它显示了发布的日期。