Témaszekció készítése
Írj egy szekciót a témakódszerkesztőben, adj hozzá beállításokat, helyben szerkesztést és stílusvezérlőket, helyezd el a témaszerkesztőben, majd tedd közzé. Körülbelül tizenöt perc.
Ezen az oldalon
Egy USP-stripet adsz hozzá egy témához: egy egysoros meggyőző üzenetet, mint például „Free delivery over 50”, igazítási lehetőséggel, szöveggel, amit a kereskedők helyben szerkeszthetnek, valamint a témaszerkesztő térköz-, háttér-, tipográfia- és láthatósági vezérlőivel. Ezután elhelyezed a kezdőlapon, és közzéteszed.
Kövesd a https://developers.poltura.com/themes/build-a-section.md leírást, és tartsd be a témákra vonatkozó szabályokat a https://developers.poltura.com/ai/rules/AGENTS.md címen. Írj egy Poltura-témaszekciót az src/sections/usp-strip.tsx fájlban a defineSection használatával a @poltura/theme-sdk/elements csomagból. Tartalmazzon egy szöveges beállítást alapértelmezett értékkel, egy igazítási választót (left, center), EditableText komponenst a szöveghez, valamint a spacing, background, typography és láthatóság stíluslistát. Bontsd ki az attrs propjait az egyetlen root elemre, és egyesítsd a class-okat a cn függvénnyel a @poltura/theme-sdk/ui csomagból. Kizárólag a @poltura/theme-sdk moduljaiból, a reactből és a téma saját fájljaiból importálj. Ne használj gondolatjelet (em dash) az alapértelmezett szövegekben.
Mielőtt elkezded
Mindössze egy olyan Poltura-boltra van szükséged, amelynek szerkesztheted a témáját.
Semmit sem kell telepítened. A témakódszerkesztő közvetlenül a böngészőben fut, és minden mentéskor ellenőrzi a kódodat.
Nyisd meg a témakódszerkesztőt
Az adminfelületen nyisd meg a Webáruház → Témák menüpontot, és válaszd a Szerkesztés a kódszerkesztőben lehetőséget a módosítani kívánt témánál. A témaszerkesztő felső sávjából is elérheted a szerkesztőt.
A szerkesztő a téma piszkozatán dolgozik. A mentés soha nem módosítja az élő webáruházat. A közzététel egy külön lépés a végén.
Hozd létre a szekciófájlt
Nyisd meg a command palette-et (Cmd+Shift+P Macen, Ctrl+Shift+P más rendszereken),
és futtasd a Téma: Új szekció… parancsot. Add neki a usp-strip nevet. A szerkesztő létrehozza az src/sections/usp-strip.tsx fájlt egy
működő kiindulási alappal: egy címsorral, egy szöveggel, egy slottal a child blockok számára és a szabványos stíluslistával.
Nem kell semmit külön regisztrálnod. A témafordító mentéskor automatikusan megtalál minden defineSection hívást az src/sections/ mappában.
Írd meg a szekciót
Cseréld le a fájl tartalmát a következőre:
import { EditableText, defineSection, field } from '@poltura/theme-sdk/elements';
import { cn } from '@poltura/theme-sdk/ui';
export const uspStrip = defineSection({
type: 'usp-strip',
label: 'USP strip',
description: 'One short line of reassurance',
icon: 'section',
category: 'marketing',
settings: {
text: field.text({ label: 'Text', default: 'Free delivery over 50' }),
alignment: field.select({
label: 'Alignment',
options: [
{ value: 'left', label: 'Left' },
{ value: 'center', label: 'Center' },
],
default: 'center',
}),
},
style: ['spacing', 'background', 'typography', 'visibility'],
component: ({ settings, attrs }) => (
<section {...attrs} className={cn(attrs.className, 'py-6')}>
<div className='theme-container'>
<EditableText
setting='text'
as='p'
className={cn('text-foreground', settings.alignment === 'center' && 'text-center')}
/>
</div>
</section>
),
});Mit csinálnak az egyes részek:
- A
typea szekció állandó kulcsa a téma oldalfájljaiban. Ne változtasd meg, miután a kereskedők használni kezdték a szekciót. Későbbi átnevezéshez add meg a régi kulcsot arenamedFrommezőben. - A
label,description,iconéscategoryértékeket látják a kereskedők a témaszerkesztő szekcióválasztójában. Amarketingérték a Marketing kategóriába sorolja. - A
settingsmezőkből jönnek létre a szekció beállítási paneljének mezői. Mindenfield.*építő tartalmaz egy címkét és egy alapértelmezett értéket, a komponens pedig már típusos formában kapja meg ezeket az értékeket asettingsobjektumban. - A
stylehatározza meg, milyen stílusvezérlőket kapnak a kereskedők. A platform az általuk választott beállításokat class-okká és attribútumokká alakítja azattrsobjektumon. - Az
attrsobjektumot pontosan egy root elemre kell kibontani, acn(attrs.className, ...)segítségével összefűzve a saját class-aiddal. Enélkül a stílusvezérlők nem fognak működni. - Az
EditableTextrendereli atextbeállítást, így a kereskedők helyben szerkeszthetik azt a vásznon.
Minden mező és stílusvezérlő megtalálható a Szekciók, blokkok és elemstílusok oldalon.
Mentsd el és ellenőrizd a hibákat
Mentsd el a fájlt. A szerkesztő minden mentéskor lefuttatja a témaellenőrzést, és sor, illetve oszlop szerint listázza a hibákat a Problems panelen. A fenti szekció hibátlanul átmegy az ellenőrzésen. Íme a leggyakrabban előforduló hibák és a kapott üzenetek (az utolsó rövidítve szerepel):
src/sections/usp-strip.tsx(26,19): [usage] reads setting "txt" no element definition declares for usp-strip (declared: text, alignment)
src/sections/usp-strip.tsx(18,7): [types] Type '"middle"' is not assignable to type '"center" | "left" | undefined'.
src/sections/usp-strip.tsx(5,3): [elements] type "UspStrip" must be kebab-case starting with a letter (bad-definition)
src/sections/usp-strip.tsx(2,21): [import] Theme file src/sections/usp-strip.tsx imports "lodash", which is outside the theme surface.A teljes importálási hibaüzenet felsorolja, mit importálhat egy téma: a @poltura/theme-sdk/* modulokat, a téma saját fájljait, a Reactot,
valamint egy rögzített könyvtárkészletet, például a @radix-ui/*, lucide-react, motion és clsx csomagokat.
Javítsd ki a hibákat, amíg a panel teljesen üres nem lesz.
Helyezd el a témaszerkesztőben
Az adminfelületen válaszd a Testreszabás lehetőséget a témánál. A kezdőlapon válaszd a Szekció hozzáadása lehetőséget, keresd meg a USP strip elemet a Marketing alatt, majd add hozzá. A következőket látod:
- „Free delivery over 50” a vásznon. Kattints rá, és írd át.
- Alignment a Left és Center opciókkal a szekció beállításaiban.
- Térköz, Háttér, Tipográfia és Láthatóság a stílusvezérlők között.
A témaszerkesztő az elhelyezést a piszkozat pages/home.json fájljába menti. A szekció kódja az
src/sections/usp-strip.tsx fájlban marad.
Tedd közzé
Válaszd a Közzététel lehetőséget a témaszerkesztőben (vagy a Közzététel gombot a kódszerkesztő állapotsorán). A piszkozat kódja és layoutja együtt válik élessé. Addig a vásárlók az előző verziót látják.
Lépj tovább
- Child blockok: engedélyezd a kereskedőknek blokkok hozzáadását a szekción belül a
blocks: { accepts: [...] }segítségével, majd rendereld őket a<Slot />komponenssel. A szerkesztő kezdőfájlja bemutatja ezt a mintát. - Megjelenés korlátozása: a
templates: ['home', 'page']beállítással kizárhatod a szekciót a termék- és kosároldalakról. - A választó lefordítása:
i18n: { hu: { label: '...' } }a szekción és az egyes mezőkön. - Bolti adatok beolvasása: kérd le a termékeket a
@poltura/theme-sdk/datahookjaival, és jeleníts meg árakat a@poltura/theme-sdk/priceelemeivel.
A USP-strip példa ugyanez a szekció az első három lépéssel kiegészítve: usp-item child blockokkal,
egy kiindulási presettel, három sablonnal és magyar feliratokkal.