我有文章ID,如何获得本文的有效完整网址?这篇文章已经与菜单相关但我可能不知道,有没有简单的方法在PHP中获取 url ?我正在使用joomla 3.2 我已经尝试过了。
$article = ControllerLegacy::getInstance('Content')->getModel('Article')->getItem($articleId);
JRoute::_(ContentHelperRoute::getArticleRoute($articleId,$article->catid))
答案 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
有关详细信息,请参阅这些链接 - >
答案 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);