public function getSubCategories($parentId, $ordering = 'title', $direction = 'ASC') { $params = $this->getState('params'); $showEmptyCategory = $params->get('show_empty_subcategory', 1); $user = JFactory::getUser(); $levels = $user->getAuthorisedViewLevels(); $levelsStr = implode(',', $levels); $db = JFactory::getDbo(); $nullDate = $db->getNullDate(); $nowDate = JFactory::getDate()->toSql(); $query = $db->getQuery(true); $query->select('*'); $query->from('#__judownload_categories'); $query->where('parent_id=' . $parentId); $query->where('published = 1'); $query->where('(publish_up = ' . $db->quote($nullDate) . ' OR publish_up <= ' . $db->quote($nowDate) . ')'); $query->where('(publish_down = ' . $db->quote($nullDate) . ' OR publish_down >= ' . $db->quote($nowDate) . ')'); $query->where('access IN (' . $levelsStr . ')'); $app = JFactory::getApplication(); $tag = JFactory::getLanguage()->getTag(); if ($app->getLanguageFilter()) { $query->where('language IN (' . $db->quote($tag) . ',' . $db->quote('*') . ',' . $db->quote('') . ')'); } $query->order($ordering . ' ' . $direction); $db->setQuery($query); $subCategoriesBefore = $db->loadObjectList(); $subCategoriesAfter = array(); foreach ($subCategoriesBefore AS $category) { $showTotalSubCats = $params->get('show_total_subcats_of_subcat', 0); $showTotalChildDocs = $params->get('show_total_docs_of_subcat', 0); $nestedCategories = null; if ($showTotalChildDocs || $showTotalSubCats) { $nestedCategories = JUDownloadFrontHelperCategory::getCategoriesRecursive($category->id, true, true, true, false, false, true); if ($showTotalChildDocs) { $category->total_documents = JUDownloadFrontHelperCategory::getTotalDocumentsInCategory($category->id, $nestedCategories); } if ($showTotalSubCats) { $category->total_nested_categories = JUDownloadFrontHelperCategory::getTotalSubCategoriesInCategory($category->id, $nestedCategories); } } $registry = new JRegistry; $registry->loadString($category->images); $category->images = $registry->toObject(); $category->link = JRoute::_(JUDownloadHelperRoute::getCategoryRoute($category->id)); if (!$showEmptyCategory) { if (is_null($nestedCategories)) { $nestedCategories = JUDownloadFrontHelperCategory::getCategoriesRecursive($category->id, true, true, true, false, false, true); } if (!isset($category->total_nested_categories)) { $category->total_nested_categories = JUDownloadFrontHelperCategory::getTotalSubCategoriesInCategory($category->id, $nestedCategories); } if (!isset($category->total_documents)) { $category->total_documents = JUDownloadFrontHelperCategory::getTotalDocumentsInCategory($category->id, $nestedCategories); } if (($category->total_nested_categories > 0) || ($category->total_documents > 0)) { $subCategoriesAfter[] = $category; } } else { $subCategoriesAfter[] = $category; } } return $subCategoriesAfter; }