Zdravím. Som opäť s logikou v koncoch. Posúďte sami.
Z indexu volám do výpisu $page->RenderSortiment();
Rendder sortiment vyzera nasledovne:
Kód:
function RenderSortiment()
{
global $app;
$sqlQuery = "SELECT S.*, count(S.ID) FROM clSortiment S
INNER JOIN Product P ON P.clSortiment=S.ID
WHERE S.DateValidTo IS NULL AND P.DateValidTo IS NULL AND S.nadkat = 0
GROUP BY S.ID ORDER BY Value";
$result = $app->Db->Select($sqlQuery);
while ($row = mysql_fetch_object($result))
{
echo " <li><a href='?p=sortiment&id=$row->ID' title='$row->Value'> " .
$row->Value . " »" .
"</a></li>\n";
if ($row->ID == $this->id) // generovanie submenu
{
$this->RenderSortimentSub($row->ID);
}
}
}
Tu je to myslim zrozumitelne. RenderSortimentSub som prerobil v ramci logiky- Selectnem kategoriu podla jej ID, pozriem sa na jej nadkategoriu, zapisem ju do pola. To iste spravim s dalsou nadkategoriou az po nultu uroven. Takto naplnene pole dam potom na foreach vypis, kde volam RenderSortimentSub pokial v poli nieco je( moj prepracovany mozog si mysli, ze by tym padom malo vypisat vsetky podkategorie zainteresovanych kategorii:)
Kód:
function RenderSortimentSub($sortimentId)
{
global $app;
$sqlQuery = "SELECT * FROM `clSortiment` WHERE ID = $sortimentId";
$result = $app->Db->Select($sqlQuery);
$row = mysql_fetch_object($result);
global $poleNadkat;
$poleNadkat[] = $row->nadkat;//Pridam ID povodne volanej polozky menu
$this->SelectNadkat($row->nadkat);
echo "<ol>»";
$sqlQuery = "SELECT * FROM `clSortiment` WHERE nadkat = $sortimentId";
$result = $app->Db->Select($sqlQuery);
while ($row = mysql_fetch_object($result))
{
echo " <li><a href='?p=sortiment&id=$row->ID' title='$row->Value'> " .
$row->Value . " " .
"</a></li>\n";
}
echo "»</ol>\n";
// foreach ($poleNadkat as &$value) { // Zabespecenie rekurzie funkcie
// $this->RenderSortimentSub($value);
//}
}
function SelectNadkat($nadkategoria) //Plnim zasobnik volani funkcie tvorby menu
{
global $app;
$sqlQuery = "SELECT * FROM `clSortiment` WHERE ID = $nadkategoria";
$result = $app->Db->Select($sqlQuery);
$row = mysql_fetch_object($result);
global $poleNadkat;
$poleNadkat[] = $row->nadkat;//Pridam cislo nadkategorie do pola
if ($row->nadkat != 0) // overenie konca rekurzie funkcie
{
$this->SelectNadkat($row->nadkat);
}
}
Dufam ze som tu dal vsetko relevantne. Dajte mi prosim vediet ci na to idem velmi zle alebo len trochu.
Vdaka