Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从Joomla中的ID获取节名和类别别名?_Php_Joomla_Drop Down Menu - Fatal编程技术网

Php 如何从Joomla中的ID获取节名和类别别名?

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

Joomla有一个扩展名为Jreviews。它有一个模块,以树状结构列出Joomla的部分和类别。我想把它转换成一个双下拉列表

我从中得到了一个脚本,它将Joomla网站的部分和类别放在一个双下拉列表中。我只需要修改它的结果URL,使之与Jreviews树结构URL相匹配,我就完成了

在脚本中,我发现了以下代码:

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');