Php 如何从Joomla中的ID获取节名和类别别名?
Joomla有一个扩展名为Jreviews。它有一个模块,以树状结构列出Joomla的部分和类别。我想把它转换成一个双下拉列表 我从中得到了一个脚本,它将Joomla网站的部分和类别放在一个双下拉列表中。我只需要修改它的结果URL,使之与Jreviews树结构URL相匹配,我就完成了 在脚本中,我发现了以下代码:Php 如何从Joomla中的ID获取节名和类别别名?,php,joomla,drop-down-menu,Php,Joomla,Drop Down Menu,Joomla有一个扩展名为Jreviews。它有一个模块,以树状结构列出Joomla的部分和类别。我想把它转换成一个双下拉列表 我从中得到了一个脚本,它将Joomla网站的部分和类别放在一个双下拉列表中。我只需要修改它的结果URL,使之与Jreviews树结构URL相匹配,我就完成了 在脚本中,我发现了以下代码: var iCatID = document.getElementById('catselect_cat').value; var iSecID = document.getElemen
var iCatID = document.getElementById('catselect_cat').value;
var iSecID = document.getElementById('catselect_sec').value;
if (iCatID != 0)
**window.location= jsLiveSite+'index.php?option=com_content&view=category&layout=blog&id='+iCatID+'&Itemid='+iItemID;**
else
alert('Please select a section and a category');
在这段代码中,如果我可以用Jreviews目录模块url替换粗体行,我将得到所需的结果。在我的网站中,Jreviews目录中有如下类别的URL:
http://www.yoursite.com/component/jreviews/jreviews_directory_name/section_name/category_name_alias/
当我们有节名和类别别名的ID时,是否有办法将它们存储在变量中?
我将发布整个下拉脚本,如下所示:
定义为“JEXEC”或“受限访问”;
全球$大型机;
$database=&JFactory::getDBO;
$itemid=trim$params->get'linkmenu'
//选择已发布的部分
$query=从_节中选择s.id、s.title作为s,其中s.published=1
$database->setQuery$query;
$sections=$database->loadObjectList
$query=从类别中选择c.id、c.title、c.section作为c
其中c.published=1
$database->setQuery$query;
$categories=$database->loadObjectList
//生成javascript函数和变量
回响
var jsCat=[]
jsCat=[");
foreach ($categories as $item)
{
echo("[".$item->id.",\"".$item->title."\",\"".$item->section."\"],");
}
回显[0,\n选择类别\,\0\]\n
变量iItemID=;
echo$itemid;
回响
var jsLiveSite=';
echoJURI::碱基;
回声'\n
函数jsRemoveAllcControl
{
var cCat=document.getElementByIdcControl
for( var i=(cCat.options.length - 1); i >=0 ; i--)
{
cCat.remove(i);
}
}
函数jsOnSecSelect
{
jsRemoveAll'catselect_cat'
var cSec = document.getElementById('catselect_sec');
var cCat = document.getElementById('catselect_cat');
var iSecID = cSec.options[cSec.selectedIndex].value;
for (var i=0; i<jsCat.length; i++)
{
if (jsCat[i][2] == iSecID)
{
var cOpt = document.createElement(\"option\");
cOpt.value = jsCat[i][0];
cOpt.text = jsCat[i][1];
cOpt.secID = jsCat[i][2];
cCat.options.add(cOpt);
}
}
}
;
回声;
//生成表单
回响
选择区段;
foreach$节作为$item
{
echoid.'>.$item->title。\n;
}
回响
\n
选择类别\n
\n
)
?>从你发布的内容来看,你找错了地方。您发布的代码只是从最有可能的表单中获取值,并使用它们创建URL。在代码的这一点上,不太可能有任何其他与章节或类别相关的信息可用。最好的办法是找到创建表单的代码。然后,只需稍微更改查询,甚至只需更改用于创建表单的字段。我们需要查看创建下拉列表的代码,以便为您提供更具体的答案。嗨,Brent,请查看我更新的问题,了解整个脚本。然而,我认为我找对了地方,当我们知道它们的ID时,只需要知道部分名称和类别别名。因为,我尝试用节名和cat别名替换脚本中的url,结果成功了。如果我们可以在一个变量中获取节名和cat别名,并将该变量放在该链接中,我就完成了。
var iCatID = document.getElementById('catselect_cat').value;
var iSecID = document.getElementById('catselect_sec').value;
if (iCatID != 0)
window.location= jsLiveSite+'index.php?option=com_content&view=category&layout=blog&id='+iCatID+'&Itemid='+iItemID;
else
alert('Please select a section and a category');