[英]How to get section name and category alias from their ID's in Joomla?
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/
define('_ JEXEC')或die('Restricted access'); 全球主機 $ database =&JFactory :: getDBO(); $ itemid = trim($ params-> get('linkmenu'));
//選擇已發布的部分$ query =“從#__sections AS哪里SELECT。s.id,s.title s.published = 1”;
$ database-> setQuery($ query); $ sections = $ database-> loadObjectList();
$ query =“從#__categories AS c”中選擇c.id,c.title,c.section。“” c.published = 1“;
$ database-> setQuery($ query); $ categories = $ database-> loadObjectList();
//生成javascript函數和變量echo(“ var jsCat = [];
jsCat=[");
foreach ($categories as $item)
{
echo("[".$item->id.",\"".$item->title."\",\"".$item->section."\"],");
}
echo(“ [0,\\”選擇類別\\“,\\” 0 \\“]]; \\ n
var iItemID =“); echo($ itemid); echo(” var jsLiveSite ='“)); echo(JURI :: base()); echo(”'; \\ n
函數jsRemoveAll(cControl){var cCat = document.getElementById(cControl);
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);
}
}
}
函數jsOnFormSubmit(){
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');
}“);
回聲(””); //生成表單echo(“
選擇Section“); foreach(將$ sections作為$ item){echo(” id。“'>”。$ item-> title。“ \\ n”); } echo(“ \\ n選擇類別\\ n \\ n“);
?>
從您發布的內容來看,您所到的地方是錯誤的。 您發布的代碼只是從表單(最有可能)中獲取值,然后使用它們來創建URL。 此時,在代碼中,與該節或類別相關的任何其他信息都不太可能。 最好的選擇是找到創建表單的代碼。 然后,只需稍微更改查詢,甚至只是更改用於創建表單的字段即可。 我們將需要查看創建下拉菜單的代碼,以便為您提供更具體的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.