public function getCategoryNames($virtuemart_category_id, $catMenuId = 0, $parents = 0) { if (empty(self::$categoryNamesCache)) { self::$categoryNamesCache = array(); } if (empty(self::$categoryNamesCache[$this->vmlang])) { self::$categoryNamesCache[$this->vmlang] = array(); } $strings = array(); $db = JFactory::getDBO(); if (empty($parents)) { $parents_id = array_reverse($this->getCategoryRecurse($virtuemart_category_id, $catMenuId)); } else { $parents_id = array_reverse($parents); } foreach ($parents_id as $id) { if (!isset(self::$categoryNamesCache[$this->vmlang][$id])) { $q = 'SELECT `category_name` as name FROM `#__virtuemart_categories_' . $this->vmlang . '` WHERE `virtuemart_category_id`=' . (int) $id; $db->setQuery($q); $cslug = $db->loadResult(); if (empty($cslug)) { $q = 'SELECT `category_name` as name FROM `#__virtuemart_categories_en_gb` WHERE `virtuemart_category_id`=' . (int) $id; $db->setQuery($q); $cslug = $db->loadResult(); } if (!$this->nostatic) { self::$categoryNamesCache[$this->vmlang][$id] = $cslug; } $strings[] = $cslug; } else { $strings[] = self::$categoryNamesCache[$this->vmlang][$id]; } } if (function_exists('mb_strtolower')) { return mb_strtolower(implode('~/~', $strings)); } else { return strtolower(implode('~/~', $strings)); } }