public function __construct($manufacturer_id = null, $lang_id = null) { $db = JFactory::getDBO(); if ($lang_id !== null) { $this->lang_id = JeproshopLanguageModelLanguage::getLanguage($lang_id) !== false ? $lang_id : JeproshopSettingModelSetting::getValue('default_lang'); } if ($manufacturer_id) { // Load object from database if object id is present $cache_id = 'jeproshop_manufacturer_model_' . (int) $manufacturer_id . '_' . (int) $lang_id; $db = JFactory::getDBO(); if (!JeproshopCache::isStored($cache_id)) { $query = "SELECT * FROM " . $db->quoteName('#__jeproshop_manufacturer') . " AS manufacturer "; // Get lang informations if ($lang_id) { $query .= " LEFT JOIN " . $db->quoteName('#__jeproshop_manufacturer_lang') . " AS manufacturer_lang ON (manufacturer." . $db->quoteName('manufacturer_id'); $query .= " = manufacturer_lang." . $db->quoteName('manufacturer_id') . " AND manufacturer_lang." . $db->quoteName('lang_id') . " = " . (int) $lang_id . ")"; } $query .= " WHERE manufacturer." . $db->quoteName('manufacturer_id') . " = " . (int) $manufacturer_id; // Get shop informations /*if (Shop::isTableAssociated($this->def['table'])) $sql->leftJoin($this->def['table'].'_shop', 'c', 'a.'.$this->def['primary'].' = c.'.$this->def['primary'].' AND c.id_shop = '.(int)$this->id_shop); */ $db->setQuery($query); $manufacturer_data = $db->loadObject(); if ($manufacturer_data) { if (!$lang_id) { $query = "SELECT * FROM " . $db->quoteName('#__jeproshop_manufacturer_lang') . " WHERE " . $db->quoteName('manufacturer_id') . " = " . (int) $manufacturer_id; $db->setQuery($query); $manufacturer_data_lang = $db->loadObjectList(); if ($manufacturer_data_lang) { foreach ($manufacturer_data_lang as $row) { foreach ($row as $key => $value) { if (array_key_exists($key, $this) && $key != 'manufacturer_id') { if (!isset($manufacturer_data->{$key}) || !is_array($manufacturer_data->{$key})) { $manufacturer_data->{$key} = array(); } $manufacturer_data->{$key}[$row->lang_id] = $value; } } } } } JeproshopCache::store($cache_id, $manufacturer_data); } } else { $manufacturer_data = JeproshopCache::retrieve($cache_id); } if ($manufacturer_data) { //$this->id = (int)$id; foreach ($manufacturer_data as $key => $value) { if (array_key_exists($key, $this)) { $this->{$key} = $value; } } } } $this->link_rewrite = JeproshopTools::str2url($this->name); }
/** * Get and assign attributes combinations informations */ protected function assignAttributesCombinations() { $attributes_combinations = JeproshopProductModelProduct::getAttributesInformationsByProduct($this->product->product_id); if (is_array($attributes_combinations) && count($attributes_combinations)) { foreach ($attributes_combinations as &$ac) { foreach ($ac as &$val) { $val = str_replace(JeproshopSettingModelSetting::getValue('attribute_anchor_separator'), '_', JeproshopTools::str2url(str_replace(array(',', '.'), '-', $val))); } } } else { $attributes_combinations = array(); } $this->assignRef('attributes_combinations', $attributes_combinations); $attribute_anchor_separator = JeproshopSettingModelSetting::getValue('attribute_anchor_separator'); $this->assignRef('attribute_anchor_separator', $attribute_anchor_separator); }
public function getLink() { return JeproshopTools::str2url($this->name); }
/** * Create a link to a category * * @param mixed $category Category object (can be an ID category, but deprecated) * @param string $alias * @param int $lang_id * @param string $selected_filters Url parameter to auto check filters of the module mod_block_layered * @param null $shop_id * @return string */ public function getCategoryLink($category, $alias = null, $lang_id = null, $selected_filters = null, $shop_id = null) { if (!$lang_id) { $lang_id = JeproshopContext::getContext()->language->lang_id; } $url = ""; //$this->getBaseLink($shop_id).$this->getLangLink($lang_id, null, $shop_id); if (!is_object($category)) { $category = new JeproshopCategoryModelCategory($category, $lang_id); } // Set available keywords $params = array(); $params['id'] = $category->category_id; $params['rewrite'] = !$alias ? $category->link_rewrite : $alias; $params['meta_keywords'] = JeproshopTools::str2url($category->getFieldByLang('meta_keywords')); $params['meta_title'] = JeproshopTools::str2url($category->getFieldByLang('meta_title')); // Selected filters is used by the module blocklayered $selected_filters = is_null($selected_filters) ? '' : $selected_filters; if (empty($selected_filters)) { $rule = 'category_rule'; } else { $rule = 'layered_rule'; $params['selected_filters'] = $selected_filters; } return $url; // TODO add query$this->createUrl($rule, $lang_id, $params, $this->allow_link_rewrite, '', $shop_id); }