Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 /**
  * 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);
 }
Esempio n. 3
0
 public function getLink()
 {
     return JeproshopTools::str2url($this->name);
 }
Esempio n. 4
0
 /**
  * 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);
 }