Как получить название раздела и псевдоним категории из их идентификаторов в Joomla? - PullRequest
0 голосов
/ 10 апреля 2011

Для 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

");

?>

1 Ответ

0 голосов
/ 11 апреля 2011

Из того, что вы опубликовали, вы ищете не в том месте. Код, который вы разместили, просто берет значения из формы (скорее всего) и использует их для создания URL. На данный момент в коде маловероятно, что любая другая информация, относящаяся к разделу или категории доступна. Лучше всего найти код, который создает форму. Затем нужно немного изменить запрос или просто изменить поля, которые вы используете для создания форм. Нам нужно увидеть код, который создает выпадающие списки, чтобы дать вам более конкретный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...