/** * Looks up all child categories for category with $id * and their children recursively, returning an array containing * strings that represent the category hierarchy. */ public static function getChildrenCategoryStrings($id, $strings, $level) { jimport('joomla.application.categories'); $children = JCategories::getInstance('Content')->get($id)->getChildren(); for ($i = 0; $i < count($children); $i++) { // Append to array. $strings[] = array('title' => str_repeat(' ', $level) . $children[$i]->get('title'), 'id' => $children[$i]->get('id')); // Recursively add their children, too. $strings = modNavSliderHelper::getChildrenCategoryStrings($children[$i]->get('id'), $strings, $level + 1); } return $strings; }
<?php // Restrict access. defined('_JEXEC') or die; // Require helper. require_once dirname(__FILE__) . '/helper.php'; // Fetch articles from database. $articles = modNavSliderHelper::queryDatabase('#__content', 'title, images, alias', 'state = 1', 0, 'publish_up DESC'); // Fetch categories & tags from database. $categories = modNavSliderHelper::getCategories(); $tags = modNavSliderHelper::getTags(); // Load CSS & JS. $document = JFactory::getDocument(); $document->addStyleSheet(JURI::base() . 'modules/' . $module->module . "/css/mod_navslider.css"); $document->addScript("https://storage.googleapis.com/code.getmdl.io/1.0.6/material.min.js"); $document->addStyleSheet("https://fonts.googleapis.com/icon?family=Material+Icons"); $document->addStyleSheet("//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css"); $document->addScript("//cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"); $document->addScript(JURI::base() . 'modules/' . $module->module . "/js/mod_navslider.js"); $document->addScript(JURI::base() . 'modules/' . $module->module . "/js/iscroll.js"); require JModuleHelper::getLayoutPath('mod_navslider');