protected static function getName($id, $id_field, $name_field, $table, $identifier, $cache_folder, $languages_id, $languages_code, $languages_field = "languages_id") { $id = (int) $id; $cache_filename = self::buildFileName($id, $languages_code); if (($name = SSUCache::read($cache_filename, $cache_folder)) !== false) { return $name; } $sql_query = "SELECT {$name_field} FROM {$table} WHERE {$id_field} ='{$id}'"; if ($languages_id != 0) { $sql_query .= " AND {$languages_field} = '{$languages_id}'"; } $_name = self::getNameFromDB($sql_query, $name_field); // fall back to default language if (empty($_name) && $languages_id != 0) { $sql_query = "SELECT {$name_field} FROM {$table} WHERE {$id_field} ='{$id}' AND {$languages_field} = 1"; $_name = self::getNameFromDB($sql_query, $name_field); } if (empty($_name)) { $_name = $name_field; } $_name = SSULanguage::parseName($_name, $languages_code); $name = $_name . $identifier . $id; SSUCache::write($cache_filename, $cache_folder, $name); // write to link alias if (SSUConfig::registry('configs', 'auto_alias')) { // here we want to make sure we use the product id without the attribute, we dont want to create aliases for attributes if (!is_numeric($id) && ($sem_pos = strpos($id, ':')) !== false) { $id = substr($id, 0, $sem_pos); $name = $_name . $identifier . $id; } SSUAlias::autoAlias($id, $cache_folder, $name, $_name); } return $name; }
protected static function getName($id, $sql_query, $name_field, $identifier, $cache_folder, $languages_code) { $cache_filename = self::buildFileName($id, $languages_code); if (($name = SSUCache::read($cache_filename, $cache_folder)) !== false) { return $name; } $name = self::getNameFromDB($sql_query, $name_field); if (empty($name)) { $name = $name_field; } $name = SSULanguage::parseName($name, $languages_code) . $identifier . $id; SSUCache::write($cache_filename, $cache_folder, $name); return $name; }
static function getName($cPath, $languages_id, $languages_code) { $cache_filename = self::buildFileName($cPath, $languages_code); if (($name = SSUCache::read($cache_filename, self::$identifier)) !== false) { return $name; } // do not trust the passed cPath, always rebuild it $current_categories_id = self::getID($cPath, '_'); $category_ids = array(); zen_get_parent_categories($category_ids, $current_categories_id); $category_ids = array_reverse($category_ids); $category_ids[] = $current_categories_id; $cat_count = count($category_ids); $counter = $cat_count - SSUConfig::registry('configs', 'max_level'); if ($counter < 0) { $counter = 0; } $result = ''; // this may not be the best way to build the category name, but we do this once per cPath only while ($counter <= $cat_count - 1) { $category_ids[$counter] = (int) $category_ids[$counter]; $sql_query = "SELECT categories_name FROM " . TABLE_CATEGORIES_DESCRIPTION . " WHERE categories_id ='" . $category_ids[$counter] . "' AND language_id= '{$languages_id}' LIMIT 1"; $result .= self::getNameFromDB($sql_query, self::$name_field) . SSUConfig::registry('delimiters', 'name'); $counter++; } $result = trim(SSULanguage::parseName($result, $languages_code)); if (empty($result)) { $result = self::$name_field; } $result = $result . SSUConfig::registry('identifiers', self::$identifier) . $cPath; // write to file EVEN if we get an empty content SSUCache::write($cache_filename, self::$identifier, $result); return $result; }
static function getName($cPath, $languages_id, $languages_code) { $cache_filename = self::buildFileName($cPath, $languages_code); if (($name = SSUCache::read($cache_filename, self::$identifier)) !== false) { return $name; } $current_categories_id = self::getID($cPath, '_'); $category_ids = explode('_', $cPath); $cat_count = count($category_ids); $counter = $cat_count - SSUConfig::registry('configs', 'max_level'); if ($counter < 0) { $counter = 0; } $_name = array(); // this may not be the best way to build the category name, but we do this once per cPath only while ($counter <= $cat_count - 1) { $category_ids[$counter] = (int) $category_ids[$counter]; $sql_query = "SELECT categories_name FROM " . self::$table . " WHERE categories_id ='" . $category_ids[$counter] . "' AND language_id= '{$languages_id}' LIMIT 1"; $__name = self::getNameFromDB($sql_query, self::$name_field); // fall back to default language if (empty($__name) && $languages_id != 0) { $sql_query = "SELECT categories_name FROM " . self::$table . " WHERE categories_id ='" . $category_ids[$counter] . "' AND language_id = 1 LIMIT 1"; $__name = self::getNameFromDB($sql_query, self::$name_field); } //if(empty($__name)) // $__name = self::$name_field; $_name[] = SSULanguage::parseName($__name, $languages_code); $counter++; } if (empty($_name)) { $_name = SSULanguage::parseName($name_field, $languages_code); } if (SSUConfig::registry('configs', 'alias_status')) { $_name = implode(SSUConfig::registry('configs', 'category_separator'), $_name); $name = str_replace(SSUConfig::registry('configs', 'category_separator'), SSUConfig::registry('delimiters', 'name'), $_name) . SSUConfig::registry('identifiers', self::$identifier) . $cPath; } else { $_name = implode(SSUConfig::registry('delimiters', 'name'), $_name); $name = $_name . SSUConfig::registry('identifiers', self::$identifier) . $cPath; } // write to file EVEN if we get an empty content SSUCache::write($cache_filename, self::$identifier, $name); // write to link alias if (SSUConfig::registry('configs', 'auto_alias')) { SSUAlias::autoAlias($current_categories_id, self::$identifier, $name, $_name); } return $name; }