function categories() { global $categorySEF; $qwr = !_ADMIN ? ' AND a.visible=\'YES\'' : ''; if (s('num_categories') == 'on') { $count = ', COUNT(DISTINCT a.id) as total'; $join = 'LEFT OUTER JOIN ' . _PRE . 'articles' . ' AS a ON (a.category = c.id AND a.position = 1 AND a.published = 1' . $qwr . ')'; } else { $count = ''; $join = ''; } $result = mysql_query('SELECT c.seftitle, c.name, description, c.id AS parent' . $count . ' FROM ' . _PRE . 'categories' . ' AS c ' . $join . ' WHERE c.subcat = 0 AND c.published = \'YES\' GROUP BY c.id ORDER BY c.catorder,c.id'); if (mysql_num_rows($result) > 0) { while ($r = mysql_fetch_array($result)) { $category_title = $r['seftitle']; $r['name'] = s('language') != 'EN' && $r['name'] == 'Uncategorized' && $r['parent'] == 1 ? l('uncategorised') : $r['name']; $class = $category_title == $categorySEF ? ' class="current"' : ''; if (isset($r['total'])) { $num = '(' . $r['total'] . ')'; } echo '<li><a' . $class . ' href="' . _SITE . $category_title . '/" title="' . $r['name'] . ' - ' . $r['description'] . '">' . $r['name'] . $num . '</a>'; $parent = $r['parent']; if ($category_title == $categorySEF) { subcategories($parent); } echo '</li>'; } } else { echo '<li>' . l('no_categories') . '</li>'; } }
<?php function subcategories($parent_id) { global $dbh; $sth = $dbh->prepare("SELECT id, name FROM hst_catalog WHERE parent_id = ?"); $sth->execute(array($parent_id)); $subcategory = $sth->fetchAll(); return $subcategory; } $text .= '<ul id="categories">'; foreach ($category as $item) { $text .= '<li><a href="index.php?p=edit_category&id=' . $item['id'] . '">' . $item['name'] . '</a> (<a title="Добавить подкатегорию" href="index.php?p=add_category&parent=' . $item['id'] . '">+</a>)</li>'; $subcats = subcategories($item['id']); $text .= '<ul class="subcategories">'; foreach ($subcats as $sub) { $text .= '<li><a href="index.php?p=edit_category&id=' . $sub['id'] . '">' . $sub['name'] . '</a></li>'; } $text .= '</ul>'; } $text .= '</ul>';
function menu() { global $conn; $query = "SELECT parent_cat, cat_name FROM Categories WHERE cat_id = ?"; $stm = $conn->prepare($query); $stm->execute(array(category())); $par_cat = $stm->fetch(); if (empty($par_cat) || $par_cat == 0) { Categories(); } else { subcategories($par_cat['cat_name']); } }