簡體   English   中英

如何從Joomla中的ID獲得板塊名稱和類別別名?

[英]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/

當我們有它們的ID時,是否可以將部分名稱和類別別名存儲在變量中?

我將發布整個下拉腳本,如下所示:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM