Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Прикрутить id категории к ссылке из карусели


Jozo

Recommended Posts

	private function getProducts( $results, $setting ){
		$products = array();
		foreach ($results as $result) {
			if ($result['image']) {
				$image = $this->model_tool_image->resize($result['image'], $setting['width'], $setting['height']);
			} else {
				$image = false;
			}
						
			if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
				$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
			} else {
				$price = false;
			}
					
			if ((float)$result['special']) {
				$special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')));
			} else {
				$special = false;
			}
			
			if ($this->config->get('config_review_status')) {
				$rating = $result['rating'];
			} else {
				$rating = false;
			}
			 
			$products[] = array(
				'product_id' => $result['product_id'],
				'thumb'   	 => $image,
				'name'    	 => $result['name'],
				'price'   	 => $price,
				'special' 	 => $special,
				'rating'     => $rating,
				'description'=> (html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')),
				'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
				'href'    	 => $this->url->link('product/product', 'product_id=' . $result['product_id']),
			);
		}
		return $products;
	}
}

Хочется добиться 

'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])

Но никак не могу понять, как прикрутить переменную path

Надіслати
Поділитися на інших сайтах


$check_cat = $this->checkCat($result['product_id']);

if ($check_cat) {
 $path = $check_cat;
} else {
 $path = 0;
}

...


'href'        => $this->url->link('product/product', 'path=' . (int)$path . '&product_id=' . $result['product_id'])


private function checkCat($product_id) {
	$product_id = (int)$product_id;
	if ($product_id < 1) return false;

	static $path = null;
	if (!is_array($path)) {
		$path = $this->cache->get('product.seopath');
		if (!is_array($path)) $path = array();
	}

	if (!isset($path[$product_id])) {
		$query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . $product_id . "' ORDER BY main_category DESC LIMIT 1");

		$path[$product_id] = $this->getPathByCategory($query->num_rows ? (int)$query->row['category_id'] : 0);

		$this->cache->set('product.seopath', $path);
		}

	return $path[$product_id];
}

private function getPathByCategory($category_id) {
	$category_id = (int)$category_id;
	if ($category_id < 1) return false;

	static $path = null;
	if (!is_array($path)) {
		$path = $this->cache->get('category.seopath');
		if (!is_array($path)) $path = array();
	}

	if (!isset($path[$category_id])) {
		$max_level = 10;

		$sql = "SELECT CONCAT_WS('_'";
		for ($i = $max_level-1; $i >= 0; --$i) {
			$sql .= ",t$i.category_id";
		}
		$sql .= ") AS path FROM " . DB_PREFIX . "category t0";
		for ($i = 1; $i < $max_level; ++$i) {
			$sql .= " LEFT JOIN " . DB_PREFIX . "category t$i ON (t$i.category_id = t" . ($i-1) . ".parent_id)";
			}
		$sql .= " WHERE t0.category_id = '" . $category_id . "'";

		$query = $this->db->query($sql);

		$path[$category_id] = $query->num_rows ? $query->row['path'] : false;

		$this->cache->set('category.seopath', $path);
	}

	return $path[$category_id];
}

как то так...

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.