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

Как перед урлом категории добавить catalog


Recommended Posts

Здравствуйте! скажите пожалуйста! Возник такой вопрос, после того как прописал SEO-URL для категории , к примеру derevo, как сделать чтобы данная категория открывалась по адресу site.ru/catalog/derevo ? А не по site.ru/derevo подскажите пожалуйста. Если прописать SEO-URL для данной категории catalog/derevo то при переходе по данной ссылке пишет страница не найдена 

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


Только что, alxbelarus сказал:

Здравствуйте! скажите пожалуйста! Возник такой вопрос, после того как прописал SEO-URL для категории , к примеру derevo, как сделать чтобы данная категория открывалась по адресу site.ru/catalog/derevo ? А не по site.ru/derevo подскажите пожалуйста. Если прописать SEO-URL для данной категории catalog/derevo то при переходе по данной ссылке пишет страница не найдена 

 

Видимо потому, что такого url не существует =) 

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

Вы меня наверное не поняли, есть или нету такого урла, как сделать чтобы созданная категория с SEO URL (derevo) открывалась не по адресу site.ru/derevo а открывалось по адресу site.ru/catalog/derevo

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


Не прокатит, т.к в меню потом появится только 1 категория каталог и все остальные под-категории. А мне нужно чтобы под-категории шли как категории с урлом catalog

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


kiborg, у меня имеется на сайте 12 категорий с 3-10 подкатегориями с разными урлами, если я их помещу в категорию каталог с урлом catalog, то у мменя на сайте будет в меню появится 1 категория и 12 подкатегорий с 3-10 под подкатегориями. А мне так не пойдет 

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


Just now, alxbelarus said:

kiborg, у меня имеется на сайте 12 категорий с 3-10 подкатегориями с разными урлами, если я их помещу в категорию каталог с урлом catalog, то у мменя на сайте будет в меню появится 1 категория и 12 подкатегорий с 3-10 под подкатегориями

Можно в меню выводить не категорию catalog, а подкатегории, а потом уже 3 уровень.

 

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


Скорее всего это костыли, но можете попробовать так.

Во-первых сделайте бэкап!

 

/catalog/controller/common/header.php

ищите и комментируете:

foreach ($children as $child) {
					$filter_data = array(
						'filter_category_id'  => $child['category_id'],
						'filter_sub_category' => true
					);

					$children_data[] = array(
						'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
					);

сразу после него вставляете:

/*ЗАМЕНА НАЧАЛО*/
				 foreach ($children as $child) {
                    $filter_data = array();
                    $filter_data2 = array();
                    $children_data2 = array(); 
                    $children2 = $this->model_catalog_category->getCategories($child['category_id']); 
             
                    foreach ($children2 as $child2) {
                        $filter_data2 = array(
                            'filter_category_id'  => $child2['category_id'],
                            'filter_sub_category' => true
                        );
                        $children_data2[] = array(
                        'name'  => $child2['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data2) . ')' : ''),
                        'href'  => $this->url->link('product/category', 'path=' . $child['category_id'] . '_' . $child2['category_id']),
                        );
                    }
                 
                    $filter_data = array(
                        'filter_category_id'  => $child['category_id'],
                        'filter_sub_category' => true
                    );

                    $children_data[] = array(
                        'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
                        'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']),
                        'children' => $children_data2,
                    );
                }
/*ЗАМЕНА КОНЕЦ*/

/catalog/view/theme/default/template/common/header.tpl

комментируете:

        <?php foreach ($categories as $category) { ?>
        <?php if ($category['children']) { ?>
        <li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a>
          <div class="dropdown-menu">
            <div class="dropdown-inner">
              <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?>
              <ul class="list-unstyled">
                <?php foreach ($children as $child) { ?>
                <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>
                <?php } ?>
              </ul>
              <?php } ?>
            </div>
            <a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </div>
        </li>
        <?php } else { ?>
        <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
        <?php } ?>
        <?php } ?>

сразу после него вставляете:

        <?php foreach ($categories as $category) { ?>
        <?php if ($category['children']) { ?>
        <li><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a>
          <div class="dropdown-menu">
            <div class="dropdown-inner">
              <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?>
              <ul class="list-unstyled navbar-nav">
                <?php foreach ($children as $child) { ?>
                <li><a href="<?php echo $child['href']; ?>" style="font-size: 18px; "><?php echo $child['name']; ?></a>
                    <?php     if ($child['children']) {?>
                         <div class="child" style="padding-left: 10px;"><ul class="list-unstyled">
                         <?php foreach ($child['children'] as $child) { ?>
                            <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>
                        <?php } ?>
                        </ul></div>
                    <?php } ?>
                </li>
                <?php } ?>
                <li><a href="<?php echo $category['href']; ?>" class="hidden-xs-up"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </li>
              </ul>
              <?php } ?>
            </div>
            <a href="<?php echo $category['href']; ?>" class="see-all hidden-xs"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </div>
        </li>
        <?php } else { ?>
        <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
        <?php } ?>
        <?php } ?>

Так вы получите:

В главном меню - Категории 1-го уровня.

В выпадающем окне - Категории 2-го уровня и под ними, если у них есть, категории 3-го уровня.

 

Если вы хотите вывести категории начиная со 2-го уровня смотрите как в файле header.tpl работают функции foreach

 

Но помните, что ваши товары будут доступны из 2-х, 3-х категорий, уточните у сео специалиста все нюансы.

Уровень вложенности 4 и дальше я не делал и не знаю будет он работать или нет, так что если захотите вывести категории 4-го уровня нужно об это подумать заранее.

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


Как то сложно)

 

alxbelarus,

catalog/controller/startup/seo_pro.php

case 'path':  // Найдите этот блок и пропишите как тут
	$categories = explode('_', $value);
	$queries[] = 'category_suffix';
	$queries[] = 'category_id=' . end($categories);
	unset($data[$key]);
	break;

В менеджере SEO_URL добавьте  category_suffix = catalog

 

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


ScartFM, Извините, а 

В менеджере SEO_URL добавьте  category_suffix = catalog

Не подскажите где это и как правильно добавить? то у меня  под данному адресу нету данного файла.  Был бы очень благодарен

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


1 час назад, alxbelarus сказал:
  Скрыть контент

 

 

У меня Opencart 2.3.0.2 а не OcStore

 

В следующий раз, когда вопрос задаете, указывайте сразу все данные

 

INSERT INTO `oc_url_alias` (`query`, `keyword`) VALUES ('category_suffix', 'catalog'),

 

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


  • 10 months later...
2 часа назад, chukcha сказал:

убедительно, и сразу стало все понятно )
а стоило только после 

case 'product_id':

добавить
$queries[] = 'product_suffix';

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

ну или так, на случай чтоб product был в начале, если нужен полный путь к товару

array_unshift($queries, 'product_suffix');

или есть более мудрое решение?

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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