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

Sliapy    5

Может быть, кто-то решал вопрос с полным путем в canonical?

 

Сейчас при стандартном ЧПУ canonial категорий имеют вид

 

site.ru/subcategory

 

А хотелось бы иметь вид

 

site.ru/category/subcategory

 

SeoPro не подходит из-за неадекватной работы с ним MegaFilterPro.

 

Может быть, кто-то готов помочь на платной основе, в крайнем случае?

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


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

SeoPro не подходит из-за неадекватной работы с ним MegaFilterPro.

 

Я бы изменил "предложение". C SeoPRO всё в порядке.

Это MFP вообще неадекватно работает с SEO URL - там баг на баге, из-за не правильной архитектуры формирования и обработки ЧПУ (я бы на месте пользователей MFP написал бы "знойное" письмо по этому поводу ;) )

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


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

Из моего описания не следует, что проблема в SeoPro :)

 

Просто, ситуация "как есть" и нужно ее решать. На MFP сейчас много чего завязано на сайте и отказаться от него вряд ли получится. По крайней мере, думаю, задачу с canonical решить проще на данный момент.

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


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

Ну, не хотите использовать SeoPro, так просто посмотрите (и скопируйте) методы, которыми там полный путь для категорий и товаров определяется.

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


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

У сотни людей работает, по крайней мере утех кто купил лицензию 

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


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

У сотни людей работает, по крайней мере утех кто купил лицензию 

 

К сожалению, разоблачение у вас не вышло. Скриншоты переписки с саппортом MFP:

 

ot5r_200x0.png

br1s_200x0.png

bygb_200x0.png

jbya_200x0.png

 

С SeoPro не работает:

- SEO-страницы, созданные в MFP

- AJAX-пагинация в MFP

- Не сохраняются параметры фильтра при переходе в карточку товара и назад (потому что SeoPro делает редирект + обрезает параметры сессии, которые для этого использует MFP) - что делает фильтр в принципе несовсместимым с SeoPro.

 

А так у сотни людей работает, бесспорно. Фильтрует же.

 

Как итог: пришлось переключиться на стандартный чпу, в котором нет возможности сделать нужную структуру URL.

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

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


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

Ну, не хотите использовать SeoPro, так просто посмотрите (и скопируйте) методы, которыми там полный путь для категорий и товаров определяется.

К сожалению, у меня никак не получается это сделать. Может быть, вы готовы это сделать за оплату?

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


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

С SeoPro не работает:

- SEO-страницы, созданные в MFP

- AJAX-пагинация в MFP

- Не сохраняются параметры фильтра при переходе в карточку товара и назад (потому что SeoPro делает редирект + обрезает параметры сессии, которые для этого использует MFP) - что делает фильтр в принципе несовсместимым с SeoPro.

 

Если честно...

Автор модуля MFP просто не правильно реализовала ЧПУ для своего модуля

И SeoPro здесь не причем

Это ошибка реализации MFP

Пусть автор переделает свою ошибочную архитектуру работы с ЧПУ

Для этого Даниэль специально заложил addrewrite (для формирования) а "роутер" ЧПУ можно ocmod -м поставить в самое "начало" кода SeoPro. Про Ajax ссылки я вообще промолчу... там тихий ужас, они просто ВРЕДНЫ для SEO (не забываем ПС давно научились исполнять js ajax код) и ajax надо выключать в MFP

Вот автор ocfilter  полностью изменил архитектуру работы ЧПУ - взял и переделал, согласно стандартов opencart, а не говнопатчей и сразу все "жалобы" резко пропали по этому поводу.

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


Ссылка на сообщение
Поделиться на другие сайты
Otvet    433
К сожалению, разоблачение у вас не вышло

его и не было, и лично никого не касалось

 

ввиду стечения обстоятельств мне приходится смотреть сотни сайтов, и на каждом третьем наверное стоит данный фильтр и у большинства сеопро

даже на подопечных сайтах наблюдаю совместную работу

 

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

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


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

его и не было, и лично никого не касалось

 

ввиду стечения обстоятельств мне приходится смотреть сотни сайтов, и на каждом третьем наверное стоит данный фильтр и у большинства сеопро

даже на подопечных сайтах наблюдаю совместную работу

 

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

 

Может это (ответ тех. поддержки MFP) имеет отношение к 2.3 версии ocStore с SeoPro ?

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


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

ввиду стечения обстоятельств мне приходится смотреть сотни сайтов, и на каждом третьем наверное стоит данный фильтр и у большинства сеопро

даже на подопечных сайтах наблюдаю совместную работу

 

А у меня получается вот так

NnFNGNW.gif

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

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


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

Может это (ответ тех. поддержки MFP) имеет отношение к 2.3 версии ocStore с SeoPro ?

Нет, на сайте Версия ocStore 2.1.0.2.1.

 

 

Если честно...

Автор модуля MFP просто не правильно реализовала ЧПУ для своего модуля

И SeoPro здесь не причем

Это ошибка реализации MFP

Пусть автор переделает свою ошибочную архитектуру работы с ЧПУ

Для этого Даниэль специально заложил addrewrite (для формирования) а "роутер" ЧПУ можно ocmod -м поставить в самое "начало" кода SeoPro. Про Ajax ссылки я вообще промолчу... там тихий ужас, они просто ВРЕДНЫ для SEO (не забываем ПС давно научились исполнять js ajax код) и ajax надо выключать в MFP

Вот автор ocfilter  полностью изменил архитектуру работы ЧПУ - взял и переделал, согласно стандартов opencart, а не говнопатчей и сразу все "жалобы" резко пропали по этому поводу.

Ajax-пагинация тут была приведена в качестве примера просто. Ну а про саму реализацию ЧПУ, я думаю, вы понимаете - не будет в ближайшее время автор MFP переписывать это точно.

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

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


Ссылка на сообщение
Поделиться на другие сайты
Dotrox    335
А у меня получается вот так

Может, я чего-то не понимаю, но, похоже, что ЧПУ тут не при чём, а фильтр глючит по другой причине.

Вы когда со страницы товара назад возвращаетесь, у вас же под названием категории есть бейджик "тип: настенные" - значит свои параметры фильтр из адресной строки прочитал (иначе б бейджика не было), но товары выводить не захотел.

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


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

это называется пригласи ведьму на свидание
 

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


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

Может, я чего-то не понимаю, но, похоже, что ЧПУ тут не при чём, а фильтр глючит по другой причине.

Вы когда со страницы товара назад возвращаетесь, у вас же под названием категории есть бейджик "тип: настенные" - значит свои параметры фильтр из адресной строки прочитал (иначе б бейджика не было), но товары выводить не захотел.

Тем не менее, со стандартным ЧПУ такой проблемы нет :)

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


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

В очередной раз спасибо afwollis. Оперативно помог за символическую плату.

 

Итак, чтобы получить полный путь в canonical у подкатегорий opencart нужно:

 

 

catalog/controller/product/category.php
1.
$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], 'SSL'), 'canonical');>>
//$this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'], 'SSL'), 'canonical');
$this->document->addLink($this->url->link('product/category', 'path='.$this->getCanonicalPath($category_id), 'SSL'), 'canonical');
2. перед @public function index() {@ добавить
protected function getCanonicalPath($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 пользователей онлайн

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