Adresy rekordów

Powiedz cmssy, gdzie rekordy modelu są na Twojej stronie, a każdy rekord dostanie prawdziwy link publiczny - w panelu, przez API i dla asystentów AI.

cmssy nie renderuje Twojej strony, więc nie zna Twoich ścieżek. Mówi mu o nich wzorzec adresu modelu: po jego ustawieniu każdy opublikowany rekord ma publicUrl - publiczny adres strony plus wzorzec wypełniony danymi rekordu. Edytor rekordu pokazuje przycisk Zobacz na stronie, a Spotlight i narzędzia MCP zwracają link jako url, zamiast zgadywać go ze sluga.

Ustaw wzorzec

Otwórz model, zakładka Podstawowe, i wypełnij Adres na stronie albo przekaż urlPattern do create_model / update_model. Wzorzec zaczyna się od / i jest doklejany do publicznego adresu strony z ustawień. Zostaw puste, gdy rekordy nie mają strony.

  • {fieldKey} - widoczne pole tekstowe, liczbowe, daty, wyboru lub radio tego modelu, np. /p/{slug}.
  • {relationField.fieldKey} - pole rekordu, do którego prowadzi pojedyncza relacja (jeden krok), np. /shop/{category.slug}/{slug}.
  • {locale} - język, w którym prosisz o link, np. /{locale}/p/{slug}.

Każdy token jest sprawdzany przy zapisie: nieznane pole, pole ukryte lub hasło, relacja wielokrotna albo zła składnia są odrzucane z podaniem powodu. Każda wartość staje się jednym zakodowanym segmentem ścieżki, więc slug z / lub spacjami pozostaje jednym segmentem.

Kiedy linku nie ma

publicUrl jest null - a przycisk ukryty - gdy:

  • model nie ma wzorca albo strona nie ma publicznego adresu;
  • model nie jest udostępniany: dostęp przez API to brak (domyślnie) lub to model logowania - ustaw publiczny albo członkowie;
  • rekord, albo rekord czytany przez relację, nie jest opublikowany;
  • token jest pusty dla tego rekordu.

Języki

Poproś o język przez publicUrl(locale: "pl"); bez niego, albo dla języka niewłączonego na stronie, używany jest język domyślny. Pole tłumaczalne jest czytane w tym języku z powrotem do domyślnego - dokładnie tak, jak dopasowuje je filtr API dostarczania, więc zapytanie Twojej strony znajdzie rekord za każdym linkiem od cmssy.

Przez API

query {
  record {
    get(id: "...") { publicUrl(locale: "en") }
  }
}

Pole jest na rekordach w API panelu i w katalogu produktów; zapytania listowe rozwiązują całą stronę jednym wsadem. Nie ma go w publicznym API dostarczania - Twoja strona zna własne ścieżki.

Dalej