Для Joomla есть расширение под названием Jreviews.Он имеет модуль, который перечисляет раздел и категории Joomla в древовидной структуре.Я хотел превратить его в двойной выпадающий список.
Я получил один скрипт, который делает раздел и категории веб-сайта Joomla в двойном раскрывающемся списке.Мне просто нужно было изменить его результирующий URL, чтобы он соответствовал URL-адресу древовидной структуры Jreviews, и все будет готово.
В скрипте есть фрагмент кода, который я обнаружил:
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');
В этом фрагменте кода, если бы я мог заменить жирную строку URL-адресами модуля каталога Jreviews, я бы получил требуемый результат.На моем сайте в каталоге Jreviews есть URL-адреса для таких категорий:
http://www.yoursite.com/component/jreviews/jreviews_directory_name/section_name/category_name_alias/
Можно ли сохранить имя раздела и псевдоним категории в переменной, когда у нас есть их идентификаторы?
Я опубликую весь выпадающий скрипт, который выглядит следующим образом:
определен ('_ JEXEC') или умрет ('Ограниченный доступ');глобальный мэйнфрейм $;$ database = & JFactory :: getDBO ();$ itemid = trim ($ params-> get ('linkmenu'));
// выбрать опубликованные разделы $ query = "SELECT s.id, s.title FROM #__sections AS s ГДЕ s.published= 1 ";
$ database-> setQuery ($ query);$ section = $ database-> loadObjectList ();
$ query = "SELECT c.id, c.title, c.section FROM #__categories AS c". "WHERE 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);
}
}
}
function 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 (""); // Создать форму echo ("
Выбрать раздел"); foreach ($ section как $ item) {echo ("id." '> ". $ item-> title." \ n ");} echo ("\ n Выбрать категорию \ n \ n
");
?>