Нашел здесь тему "Один материал в нескольких категориях" от Legion Leonhart, все сделал, все работает. Но вот к нему не хватает модуля для выбора нескольких категорий для отображения. Нашел модуль, но он может выбрать раздел и только оду категорию, а хотелось бы 3 и чтоб в каждом combobox'е были исключения или наоборот список категорий.
К примеру один юзер выбрал раздел "бесплатные шаблоны" категории "красный, автомобили, Joomla 1.6"
а другой раздел "платные шаблоны" категории "черный, блог, Joomla 1.5"
Модуль называется catselect, кто может подсказать что, где подправить, чтобы было как описано выше? вот его код:
<?php
defined('_JEXEC') or die('Restricted access');
global $mainframe;
$database = & JFactory::getDBO();
$itemid = trim($params->get('linkmenu'));
// select the published sections
$query = "SELECT s.id, s.title FROM #__sections AS s WHERE s.published=1";
$database->setQuery($query);
$sections = $database->loadObjectList();
$query = "SELECT c.id, c.title, c.section FROM #__categories AS c "
."WHERE c.published=1";
$database->setQuery($query );
$categories = $database->loadObjectList();
// Generate javascript functions and varaibles
echo ("
<script language=\"javascript\" type=\"text/javascript\">
var jsCat = [];
jsCat=[");
foreach ($categories as $item)
{
echo("[".$item->id.",\"".$item->title."\",\"".$item->section."\"],");
}
echo("[0,\"Select Category\",\"0\"]]; \n
var iItemID=");
echo($itemid);
echo("
var jsLiveSite='");
echo(JURI::base());
echo("'; \n
function jsRemoveAll(cControl)
{
var cCat = document.getElementById(cControl);
for( var i=(cCat.options.length - 1); i >=0 ; i--)
{
cCat.remove(i);
}
}
function 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("</script>");
//Generate form
echo("
<form>
<table>
<tr>
<td>
<select id='catselect_sec' class='catselect' onchange=\"jsOnSecSelect()\">
<option value='0'>Разделы</option>");
foreach ($sections as $item)
{
echo("<option value='".$item->id."'>".$item->title."</option> \n" );
}
echo("
</select>
</tr>
<tr>
<td>
<select id='catselect_cat' class='catselect'> \n
<option value='0'>Категории</option> \n
</select> \n
</td>
</tr>
<tr>
<td>
<input type='Button' name='Go' id='Go' value='Go' onclick='jsOnFormSubmit()'/>
</td>
</tr>
</table>
</form>");
?>