Перейти к содержанию
alxbelarus

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

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

Здравствуйте! скажите пожалуйста! Возник такой вопрос, после того как прописал 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 не существует =) 

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


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

Создать категорию catalog и подкатегорию derevo

 

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


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

Вы меня наверное не поняли, есть или нету такого урла, как сделать чтобы созданная категория с 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

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


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, alxbelarus сказал:

ScartFM, 2.3.0.2

 



 

2017-04-15_11-12-59.png

2017-04-15_11-14-20.png

Изменено пользователем ScartFM

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


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

Screenshot_1.png.670a274bbeabc5f4e51fea11d38b3820.pngScreenshot_2.png.bc836128648b92e021f6207ce77a18e1.png

 

У меня Opencart 2.3.0.2 а не OcStore

Изменено пользователем alxbelarus

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


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, alxbelarus сказал:
  Скрыть контент

 

 

У меня Opencart 2.3.0.2 а не OcStore

 

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

 

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

 

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


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

запитой пристроился

 

пс

многие пожалели о последствиях после лишенных смысла игр с адресацией сайта

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


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

спасибо), но к сожалению не помогло

Изменено пользователем alxbelarus

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


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

а как тоже самое сделать с товаром, чтоб начале было /product ?

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, chukcha сказал:

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

case 'product_id':

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

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


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

ну, ну..
 

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


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

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

array_unshift($queries, 'product_suffix');

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

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.