如何通过joomla中的ID获取文章的完整URL?

时间:2014-05-16 19:13:55

标签: joomla2.5 joomla3.0

我有文章ID,如何获得本文的有效完整网址?这篇文章已经与菜单相关但我可能不知道,有没有简单的方法在PHP中获取 url ?我正在使用joomla 3.2 我已经尝试过了。

$article = ControllerLegacy::getInstance('Content')->getModel('Article')->getItem($article‌​Id); 
JRoute::_(ContentHelperRoute::getArticleRoute($articleId,$article->catid))

4 个答案:

答案 0 :(得分:6)

你可以这样使用

 $article = JControllerLegacy::getInstance('Content')
            ->getModel('Article')->getItem($articleId);

  $url =  JRoute::_(ContentHelperRoute::getArticleRoute($articleId, 
                      $article->catid, 
                      $article->language))

答案 1 :(得分:2)

我写这篇文章是因为我认为这些信息对于所有其他想要在Joomla中的任何地方使用完整当前URL的用户而言非常有用。

在Joomla中使用JURI类来获取URL。 像root()current()和& base()将根据需要使用。

echo 'Joomla root URI is ' . JURI::root();
output:-Joomla root URI is http://localhost/joomla/

echo 'Joomla current URI is ' . JURI::current();
output:-Joomla current URI is http://localhost/joomla3/index.php/somealias

注意: - current()将提供除查询字符串部分之外的整个URI,例如

如果您的完整网址为http://localhost/joomla3/index.php/somealias?id=1,那么current()只会返回此信息 - > http://localhost/joomla3/index.php/somealias

但是,如果您使用JURI::getInstance()->toString(),则会返回此 - >

http://localhost/joomla3/index.php/somealias?id=1

有关详细信息,请参阅这些链接 - >

  1. https://docs.joomla.org/JURI/root
  2. https://docs.joomla.org/JURI/current
  3. https://docs.joomla.org/JURI/getInstance

答案 2 :(得分:0)

也许JURI(来自Joomla!API)可以帮助您:

为例:

echo 'Joomla current URI is ' . JURI::current() . "\n";

可能会输出

Joomla base URI is http://localhost/joomla/

答案 3 :(得分:0)

您还可以使用正确的方式获取完整网址:

$config = JFactory::getConfig();
$mode = $config->get('force_ssl', 0) == 2 ? 1 : (-1);
echo JRoute::_('index.php?Itemid=164',false,$mode);