所以我试图从数据库中提取当前文章的别名(放置代码的文章)。
我有一个PHP代码段来提取当前文章类别的别名:
<?php // Get category alias
$db = &JFactory::getDBO();
$option = JRequest::getCmd('option');
$view = JRequest::getCmd('view');
$temp = JRequest::getString('id');
$temp = explode(':', $temp);
$id = $temp[0];
/* Checking if we are making up an article page */
if ($option == 'com_content' && $view == 'article' && $id)
{
/* Trying to get CATEGORY alias from DB */
$db->setQuery('SELECT cat.alias FROM #__categories cat RIGHT JOIN #__content cont ON cat.id = cont.catid WHERE cont.id='.$id);
$category_alias = $db->loadResult();
}
?>
然后我使用变量$category_alias
作为iframe的PHP参数。所有这些都使用插件DirectPHP嵌入到文章中。
我的问题是重写此代码以提取当前文章的别名而不是当前的CATEGORY。
我已经阅读了Joomla文档,但我完全不知道我需要使用哪些表/列来获取文章的别名。
非常欢迎任何帮助!
答案 0 :(得分:2)
您使用了大量遗留代码:
您要查找的别名值与文章一起存储在内容表中。
您的代码 - 连同建议的更正 - 将如下所示:
<?php
$input = JFactory::getApplication()->input;
$option = $input->getCmd('option');
$view = $input->getCmd('view');
$id = array_shift(explode(':', $input->getString('id', 0)));
if ($option == 'com_content' && $view == 'article' && !empty($id))
{
$db = JFactory::getDBO();
$query = $db->getQuery(true)
->select('alias')
->from('#__content')
->where('id=' . (int)$id);
$db->setQuery($query);
$article_alias = $db->loadResult();
}
然后可以通过$article_alias
访问您文章的别名(但只能在if
区块内访问!)。