Перейти к содержимому


Фотография
- - - - -

Jsitemap + Zoo + Мультикатегорийность

jsitemap canonical

Сообщений в теме: 3

#1 inte

inte

Отправлено 15 November 2018 - 16:06

Всем здравствуйте!

 

Помогите рецептом. На сайте используется JSitemap. Почти каждый item находится в нескольких категориях. Ну и естественно только одна категория является основной. Страница в такой категории считается канонической (rel="canonical").

 

Этот хороший компонент карты сайта "из коробки" ложил на эти обстоятельства. Из-за этого около 600 итемов в карте превращаются приблизительно в 3К страниц. Я понимаю, что ПС сами разберутся где страницы канонические, а где нет. Но мне нужна карта именно канонических страниц. Отдельного поля с указанием именно основной категории, как вы знаете - нет.

 

Подскажите кто имеет опыт работы с этим компонентом, как получить список не дублированных (канонических) урлов.

 

Заранее спасибо!


  • 0

#2 PlanB

PlanB

Отправлено 15 November 2018 - 16:12

Здравствуйте!

Готового ответа я Вам, увы, не дам.
Но дам общее направление.

 

Если вы зайдете в источники карты сайт, выберете Zoo Items, то сможете очень гибко настроить выборку.

 

Там внизу даже есть готовый SQL-запрос, типа

SELECT 
 `#__zoo_item`.`name` AS `title`, 
 `#__zoo_item`.`modified`, 
 `#__zoo_item`.`id` AS `item_id`, 
 `#__zoo_item`.`publish_up`, 
 `#__zoo_category`.`name` AS `catname`
 FROM `#__zoo_item`
 JOIN `#__zoo_category_item` ON `#__zoo_item`.`id` = `#__zoo_category_item`.`item_id`
 JOIN `#__zoo_category` ON `#__zoo_category_item`.`category_id` = `#__zoo_category`.`id`
 WHERE 
 `#__zoo_item`.`state` = '1'
 AND `#__zoo_item`.`access` IN {aid}
 ORDER BY 
 `#__zoo_category`.`name`, 
 `#__zoo_item`.`name` ASC

Например у меня как-то была проблема, что в карту включались элементы Zoo, дата публикации которых еще не наступила. Вот там я это и исправлял. Уже точно не вспомню, как. Я по SQL не самый большой в мире специалист.


  • 1

#3 inte

inte

Отправлено 15 November 2018 - 16:58

Здравствуйте!

Готового ответа я Вам, увы, не дам.
Но дам общее направление.

 

Если вы зайдете в источники карты сайт, выберете Zoo Items, то сможете очень гибко настроить выборку.

 

Там внизу даже есть готовый SQL-запрос, типа

SELECT 
 `#__zoo_item`.`name` AS `title`, 
 `#__zoo_item`.`modified`, 
 `#__zoo_item`.`id` AS `item_id`, 
 `#__zoo_item`.`publish_up`, 
 `#__zoo_category`.`name` AS `catname`
 FROM `#__zoo_item`
 JOIN `#__zoo_category_item` ON `#__zoo_item`.`id` = `#__zoo_category_item`.`item_id`
 JOIN `#__zoo_category` ON `#__zoo_category_item`.`category_id` = `#__zoo_category`.`id`
 WHERE 
 `#__zoo_item`.`state` = '1'
 AND `#__zoo_item`.`access` IN {aid}
 ORDER BY 
 `#__zoo_category`.`name`, 
 `#__zoo_item`.`name` ASC

Например у меня как-то была проблема, что в карту включались элементы Zoo, дата публикации которых еще не наступила. Вот там я это и исправлял. Уже точно не вспомню, как. Я по SQL не самый большой в мире специалист.

 

В этом случае не так все просто. В таблице нету отдельного поля с указанием id основной категории (в отличии от поля с датой начала публикации). Этот параметр хранится в массиве в поле параметров. А вот как его отдельно извлечь и использовать это и есть мой основной вопрос )) 

Но спасибо за участие! )


  • 0

#4 CB9TOIIIA

CB9TOIIIA

Отправлено 16 November 2018 - 10:33

Примерно так - но как это корректно собрать - это другой вопрос)

 

z14Ia4L.png


  • 1





Темы с аналогичным тегами jsitemap, canonical

Click to return to top of page in style!