繁体   English   中英

Joomla:从ID获取内容插件中的文章SEF URL

[英]Joomla: get article SEF URL in Content Plugin from ID

我目前正在开发一个Joomla插件,我想在其中捕获事件onContentAfterSave ,以便将新保存的文章发布到URL缩短器中,以用于社交网络。

有人可以帮助我如何为文章详细信息视图计算适当的SEF URL(无菜单项!)?

该URL应类似于: http://<domain>.<tld>/<category-id>-<category-title>/<article-id>-<article-title>.html

我已经阅读了这篇文章 ,但这并没有真正提供解决方案。

使用JRoute将非基于SEF参数的URL转换为SEF URL。

如果要链接到标准的Joomla文章,则需要以下信息:

$url = JRoute::_('index.php?option=com_content&view=article&id='.$article->id);

$ article-> id可通过onContentAfterSave获得,尽管您可能已经将$ article对象称为别的对象,在这种情况下,可以适当地重命名。

如果确实有用于文章的菜单项,则添加菜单项的id的Itemid参数,它将加载与该菜单项相关的模块。

我可以通过以下帖子解决此问题: https : //joomla.stackexchange.com/questions/36/how-do-i-generate-a-sef-url-in-a-custom-module-instead-of -真实网址

提供的解决方案是:

$rootURL = rtrim(JURI::base(),'/');
$subpathURL = JURI::base(true);
if(!empty($subpathURL) && ($subpathURL != '/')) {
    $rootURL = substr($rootURL, 0, -1 * strlen($subpathURL));
}
$url = $rootURL.JRoute::_(ContentHelperRoute::getArticleRoute($article->id,  $article->catid));

该解决方案的真正好处是,它还可以与子目录中包含的安装一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM