tarkensan

Как изменить модуль "Доставка по городу"

Рекомендуемые сообщения

tarkensan    1

Хочу немного откорректировать модуль "Доставка по городу". А именно:

Доставка по городу
        Доставка по городу (Вес: 0.00g)
Заменить на

Доставка по городу
        Доставка по городу
Т.е. убрать из этого модуля отображение веса.

Сам модуль я так понимаю, лежит по следующему пути: catalog/model/shipping/citylink.php

Вот его содержание:

<?php
class ModelShippingCitylink extends Model {
	function getQuote($address) {
		$this->load->language('shipping/citylink');
		
		if ($this->config->get('citylink_status')) {
      		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('citylink_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");
		
      		if (!$this->config->get('citylink_geo_zone_id')) {
        		$status = TRUE;
      		} elseif ($query->num_rows) {
        		$status = TRUE;
      		} else {
        		$status = FALSE;
      		}
		} else {
			$status = FALSE;
		}

		$method_data = array();
	
		if ($status) {
			$cost = 0;
			$weight = $this->cart->getWeight();
			
			$rates = explode(',', $this->config->get('citylink_rate'));
			
			foreach ($rates as $rate) {
  				$data = explode(':', $rate);
  					
				if ($data[0] >= $weight) {
					if (isset($data[1])) {
    					$cost = $data[1];
					}
					
   					break;
  				}
			}
			
			$quote_data = array();
			
			if ((float)$cost) {
				$quote_data['citylink'] = array(
        			'id'           => 'citylink.citylink',
        			'title'        => $this->language->get('text_title') . '  (' . $this->language->get('text_weight') . ' ' . $this->weight->format($weight, $this->config->get('config_weight_class')) . ')',
        			'cost'         => $cost,
        			'tax_class_id' => $this->config->get('citylink_tax_class_id'),
					'text'         => $this->currency->format($this->tax->calculate($cost, $this->config->get('citylink_tax_class_id'), $this->config->get('config_tax')))
      			);
				
      			$method_data = array(
        			'id'         => 'citylink',
        			'title'      => $this->language->get('text_title'),
        			'quote'      => $quote_data,
					'sort_order' => $this->config->get('citylink_sort_order'),
        			'error'      => FALSE
      			);
			}
		}
	
		return $method_data;
	}
}
?>

Что именно необходимо заменить в этом модуле, дабы убрать отображение веса товара?

Полагаю что за это отвечает строчка:

'title'        => $result['name'] . '  (' . $this->language->get('text_weight') . ' ' . $this->weight->format($weight, $this->config->get('config_weight_class')) . ')',
Но сколько не пробовал редактировать, успешного результата так и не добился. Может не там смотрю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Fix305    164

оставь только

'title'        => $result['name'],

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
tarkensan    1

Уже пробовал, код стал выглядеть так:

<?php
class ModelShippingCitylink extends Model {
        function getQuote($address) {
                $this->load->language('shipping/citylink');
                
                if ($this->config->get('citylink_status')) {
                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('citylink_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");
                
                if (!$this->config->get('citylink_geo_zone_id')) {
                        $status = TRUE;
                } elseif ($query->num_rows) {
                        $status = TRUE;
                } else {
                        $status = FALSE;
                }
                } else {
                        $status = FALSE;
                }

                $method_data = array();
        
                if ($status) {
                        $cost = 0;
                        $weight = $this->cart->getWeight();
                        
                        $rates = explode(',', $this->config->get('citylink_rate'));
                        
                        foreach ($rates as $rate) {
                                $data = explode(':', $rate);
                                        
                                if ($data[0] >= $weight) {
                                        if (isset($data[1])) {
                                        $cost = $data[1];
                                        }
                                        
                                        break;
                                }
                        }
                        
                        $quote_data = array();
                        
                        if ((float)$cost) {
                                $quote_data['citylink'] = array(
                                'id'           => 'citylink.citylink',
                                'title'        => $result['name'],
                                'cost'         => $cost,
                                'tax_class_id' => $this->config->get('citylink_tax_class_id'),
                                        'text'         => $this->currency->format($this->tax->calculate($cost, $this->config->get('citylink_tax_class_id'), $this->config->get('config_tax')))
                        );
                                
                        $method_data = array(
                                'id'         => 'citylink',
                                'title'      => $this->language->get('text_title'),
                                'quote'      => $quote_data,
                                        'sort_order' => $this->config->get('citylink_sort_order'),
                                'error'      => FALSE
                        );
                        }
                }
        
                return $method_data;
        }
}
?>

Но такой вариант почему-то у меня не работает. Может какую-то скобку или запятую упустил в коде?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Fix305    164

откуда вообще взялась переменная $result['name'] ?

замени на $this->language->get('text_title') ну или вообще текстом пропиши

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

откуда вообще взялась переменная $result['name'] ?

ты ж сам выше написал это

оставь только

'title'        => $result['name'],

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Fix305    164

ну а я взял из

'title'        => $result['name'] . '  (' . $this->language->get('text_weight') . ' ' . $this->weight->format($weight, $this->config->get('config_weight_class')) . ')',

вообщем делай

'title'        => $this->language->get('text_title'),

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Webracer    7

А разве отображение веса нельзя отключить из админки?. Я отключил, у меня не отображается!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу