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
- Modele danych - pola, relacje i dostęp przez API.