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

ЧПУ у производителей


Recommended Posts

Добрый день, хочу сделать, чтобы производители отображались в виде sitename.ru/brands/brand_name

Для этого в seo_pro.php поменял код

Тут

	$queries = array();
		$id_manufacturer = false;//new
		if(!in_array($route, array('product/search'))) {
			foreach($data as $key => $value) {
				switch($key) {
					case 'product_id':
					//case 'manufacturer_id':
					//manufacturers brands
					case 'manufacturer_id':
					$queries[] = $key . '=' . $value;
					unset($data[$key]);
					$postfix = 1;
					$id_manufacturer = true;
					break;
	//manufacturers brands

 И еще здесь

// Manufacturer brands/
		if(count($rows) == count($queries)) {
		$aliases = array();
		foreach($rows as $row) {
		$aliases[$row['query']] = $row['keyword'];
		}
		foreach($queries as $query) {

		if ($id_manufacturer) {
//if (in_array('davinci72/brands', explode('/', $_SERVER['REQUEST_URI']))) {
		//	if(strpos($_SERVER['REQUEST_URI'], '/davinci72.ru/brands/') == true)	{
				$seo_url .= '/brands/' . rawurlencode($aliases[$query]);
		//}

		//}
	}
	 else
		{
		$seo_url .= '/' . rawurlencode($aliases[$query]);
		}
		}
	}
// /Manufacturer brands/

Но на странице товаров начинает дублироваться слово brand, в самих производителях все нормально отображается, как это можно исправить? Пытался условие сделать, чтобы слово бренд в URL добавлялось только если страница с брендами, но что-то не помогло.

Безымянный.png

Змінено користувачем Timur3294237423428934
Надіслати
Поділитися на інших сайтах


29 минут назад, Timur3294237423428934 сказал:

@Eldaeron Ко всем страницам c товарами этот url стал добавляться 

Перед кодом:

if(!in_array($route, array('product/search'))) {

Вставить:

$brand = false;

Удалить

case 'manufacturer_id':

Выше 

case 'product_id':

Вставить:

case 'manufacturer_id':
						$brand = true;
						$queries[] = $key . '=' . $value;
						unset($data[$key]);
						$postfix = 1;
						break;

После:

$seo_url = trim($seo_url, '/');

Вставить:

if ($brand) {
			$seo_url = "brands/" . $seo_url;
		}

 

В картинках:

 

image.png.1114d0dce402ec76b220e194d29503c7.png

image.png.d4ad050c17954d79535cf766b9533f04.png

 

Попробуйте так.

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

Почему-то при клике на все страницы выдает только список производителей

if (count($data)) {
			$link .= '&' . urldecode(http_build_query($data, '', '&'));
		}

		$queries = array();
		$brand = false;
		foreach ($data as $key => $value) {
			switch ($key) {
				
				case 'manufacturer_id':
						$brand = true;
						$queries[] = $key . '=' . $value;
						unset($data[$key]);
						$postfix = 1;
						break;
						
				case 'product_id':
				//case 'manufacturer_id':
			
				case 'category_id':
				case 'information_id':
				case 'order_id':

				case 'download_id':

				case 'search':
				case 'sub_category':
				case 'description':

				// Compatibility with Shopencart News/Blog:
				case 'news_id':
				case 'author':
				case 'ncat':

				// Compatibility with VDF News (villagedefrance)
				case 'news_id':
				case 'posts_id':

				// Compatibility with unknown Blog:
				case 'blog_id':
				case 'blog_category_id':
				case 'blogpath':

					$queries[] = $key . '=' . $value;
					unset($data[$key]);
					$postfix = 1;
					break;

				case 'page':
					if($value == 1) {
						unset($data[$key]);
					} else {
						$queries[] = $key . '=' . $value;
					}
					break;

				case 'path':
					// ATTN: user can set any path: path=2_4_1_2_3
					$category_path = explode('_', $value);

					// find real category path:
					$category_id = end($category_path);
					$categories = $this->getPathByCategory($category_id);

					// save all categories queries to find later their aliases
					$categories = explode('_', $categories);
					foreach ($categories as $category) {
						$queries[] = 'category_id=' . $category;
					}
					unset($data[$key]);
					break;

				default:
					break;
			}
		}

Эта структура seo_pro отличается от стандартной, как быть?


		if ($seo_url == '') return $link;

		$seo_url = $code . trim($seo_url, '/');

		if ($brand) {
					$seo_url = "brands/" . $seo_url;
				}

 

Змінено користувачем Timur3294237423428934
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

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

Important Information

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