Как я могу управлять картами сайта в Kentico Cloud? - PullRequest
1 голос
/ 13 мая 2019

Раньше была функциональность файлов Sitemap, но она устарела. Таксономии предлагаются в качестве замены, но когда я запрашиваю элементы из API, элементам таксономии не хватает иерархической структуры. Как мне найти элемент, который представляет родительскую страницу в структуре сайта? Спасибо.

1 Ответ

1 голос
/ 13 мая 2019

Вы можете сделать это с помощью API доставки.Во-первых, вам нужно создать и организовать свою группу таксономии так же, как и карту сайта.Рассмотрим следующую карту сайта в качестве примера:

  • Home
  • О
    • Наша команда
      • Управление
      • Свяжитесь с нами
    • Миссия и ценности

Вот как будут выглядеть таксономии в Облаке Kentico:

taxomony image

Модели для ваших элементов должны быть созданы с элементом таксономии, который будет служить в качестве селектора местоположения карты сайта.Когда вы извлекаете этот элемент из элемента, он выдаст вам список терминов, с которыми связан элемент.Если вы отметите два элемента с элементом (Свяжитесь с нами, наша команда), то этот элемент будет выглядеть в API:

{
  "item": {
    "system": {
      "id": "8a9e7010-c79b-41c5-a0bc-4f20c9c233b8",
      "name": "Example item - contact form",
      "codename": "example_item___contact_form",
      "language": "default",
      "type": "example_content_model",
      "sitemap_locations": [],
      "last_modified": "2019-05-13T08:20:50.3173519Z"
    },
    "elements": {
      "sitemap": {
        "type": "taxonomy",
        "name": "Sitemap",
        "taxonomy_group": "sitemap",
        "value": [
          {
            "name": "Contact Us",
            "codename": "contact_us"
          },
          {
            "name": "Our team",
            "codename": "our_team"
          }
        ]
      }
    }
  },
  "modular_content": {}
}

. Как видите, вы получаете информацию о кодовом имени таксономической группы иплоский список пар имени и кодового имени каждого отмеченного термина.Чтобы получить иерархическую структуру, вам нужно сделать второй вызов, чтобы получить группу таксономии, которая выдаст следующее:

{
  "system": {
    "id": "0b4e3da2-8699-4b4d-961c-1fe912c91570",
    "name": "Sitemap",
    "codename": "sitemap",
    "last_modified": "2019-05-13T08:01:34.6109452Z"
  },
  "terms": [
    {
      "name": "Home",
      "codename": "home",
      "terms": []
    },
    {
      "name": "About",
      "codename": "about",
      "terms": [
        {
          "name": "Our team",
          "codename": "our_team",
          "terms": [
            {
              "name": "Management",
              "codename": "management",
              "terms": []
            },
            {
              "name": "Contact Us",
              "codename": "contact_us",
              "terms": []
            }
          ]
        },
        {
          "name": "Mission & Values",
          "codename": "mission___values",
          "terms": []
        }
      ]
    }
  ]
}

, которая отражает необходимую иерархию.Вы можете сравнить кодовые имена, которые вы получили от своего элемента, с положением термина таксономии в вашей группе - чтобы получить родительский термин таксономии, просто получите родительский узел JSON.Если вам нужно выяснить сам родительский элемент, вы можете снова вызвать API доставки и использовать один из фильтров массива, чтобы получить все элементы, отмеченные местоположением родительского сайта.

...