Funktionalitet

På denna sida hittar du grundläggande information om olika funktioner i Ophixor.

Komponenter

Komponenter är de grundläggande byggklossarna för det grafiska användargränssnittet i Ophixor. Du kan se på dem som Legoklossar. Lego har klossar med olika färger och former. Du kombinerar dessa för att få olika strukturer. Samma koncept gäller för komponenter i Ophixor. Men du har även möjlighet att konfigurera varje enskild komponentinstans, till skillnad från de statiska klossarna inom Lego.

Nästan alla komponenter har något som kallas för egenskaper. Alla egenskaper för varje enskild komponentinstans är konfigurerbara. De flesta egenskaperna representerar värden av någon typ. Dessa kan bli konfigurerade med statiska värden eller dynamiska uttryck. Sedan finns det egenskaper som representerar händelser. Dessa kan bli konfigurerade med åtgärder.

Alla egenskaper som används för CSS (Cascading Style Sheets) kan bli konfigurerade med separata konfigurationer för mobiltelefon, surfplatta och dator. Men detta är inget krav.

En del komponenter har något som kallas luckor. Dessa luckor gör det möjligt för en komponentinstans att ha komponentinstanser som barn. Detta kan användas för komponentsammansättningar.

Alla komponentinstanser kan bli konfigurerade med en datakälla. Då får komponentinstansen och dess ättlingar tillgång till data från datakällan. En datakälla kan vara en modell och dennes data, ett uttryck eller en integration.

Många komponenter har varianter som du kan välja från. En variant är i princip en mängd förkonfigurerade egenskaper för en specifik komponent.

Du kan lägga till dina egna CSS-selektorer och egenskaper till vilken komponentinstans som helst. Detta gör det möjligt att ändra CSS för en komponentinstans och dennes ättlingar på många olika sätt.

Både en komponent och en komponentinstans är definierade med JSON. En komponent har ett JSON-baserat schema som definierar allt för den och en komponentinstans är skapad från detta schema. Du kan inte skapa dina egna komponenter.

Mallar

En mall (eller komponentmall) har ett namn och en komponent. Komponenten kan vara en komponentsammansättning eller en enskild komponent. Den kan ha datakällor, uttryck och åtgärder. Du använder den på samma sätt som du använder en vanlig komponent, eftersom den blir till en vanlig komponent (instans) när du använder den.

Du kan skapa dina egna mallar i editorn eller använda någon av de befintliga.

En mall är definierad med JSON.

Modeller och data

En modell är ett schema som beskriver strukturen och reglerna som data skapad från modellen måste följa. Data är innehållet som du kan läsa eller se.

Strukturen för en modell är t.ex. dess fält och reglerna är datatyperna för dessa fält. Datatyperna som finns just nu är boolesk, samling, nummer, relation, singel och textsträng.

Datatypen boolesk kan ha ett av två värden; sant eller falskt. En samling är som en lista och innehåller interna modeller med deras egna fält. Ett nummer kan vara antingen ett heltal eller ett flyttal. En relation är en pekare till en annan modell. Singel refererar till en enskild modell med fält, liknande de som finns i en samling. En textsträng är som vanlig text, men den har andra egenskaper associerade med sig som avgör hur du redigerar det. Den har en texttyp som kan vara antingen fattig text eller rik text. Om texttypen är fattig text har den även en radtyp som kan vara antingen en rad eller flera rader.

Både modeller och data är definierade med JSON.

Uttryck

Ett uttryck är en konstant eller en funktion med noll eller fler parametrar som returnerar ett värde.

Ophixor kommer med många inbyggda uttryck som är redo att användas. T.ex. uttryck för matematik som "Addera", "Cosinus", "Golv" och "Maximum" eller logiska uttryck som "Och", "Är lika med", "Om" och "Inte".

De flesta parametrarna för funktionsuttryck kan kopplas till andra kompatibla uttryck. Kompatibilitetskontrollen är dock inte lika strikt som i vissa andra programmeringsspråk. En parameter som kräver datatypen boolesk kan t.ex. kopplas till ett uttryck som kan returnera vilket som helst. Värdet som returnerats kommer dock tvingas till datatypen boolesk automatiskt.

Ett uttryck är definierat med JSON. Det har ett JSON-schema precis som en komponent, så du kan inte skapa dina egna uttryck.

Datakällor

En datakälla kan bli knuten till en komponentinstans för att göra komponentinstansen och dess ättlingar mer dynamiska. Egenskaper från komponentinstansen och dess ättlingar kan sedan använda data från datakällan. En datakälla som är en lista eller en samling kommer att repetera komponentinstansen för varje föremål. Du kan skapa en datakälla från en modell och modelldata, ett uttryck eller en integration. En datakälla är definierad med JSON och är en del av en komponentinstans.

Åtgärder

En åtgärd är en procedur med noll eller fler parametrar som exekverar olika operationer. Den returnerar inte ett värde som ett uttryck. Istället styrs den av att producera sidoeffekter.

Ophixor kommer med många inbyggda åtgärder som är redo att användas. T.ex. åtgärder för flödeskontroll som "För varje", "Om" och "Vänta" eller användarbaserade åtgärder som "Användare logga in", "Användare logga ut" och "Användare registrera".

De flesta parametrarna kan kopplas till kompatibla uttryck. Kompatibilitetskontrollen är dock inte lika strikt som i vissa andra programmeringsspråk. En parameter som kräver datatypen boolesk kan t.ex. kopplas till ett uttryck som kan returnera vilket som helst. Värdet som returnerats kommer dock tvingas till datatypen boolesk automatiskt.

Du kan även specificera ett valfritt antal villkor som måste bli uppfyllda innan åtgärdens operationer exekveras. Ett villkor är ett uttryck med en returtyp av boolesk.

Det är möjligt att kombinera flera åtgärder genom att specificera ett valfritt antal åtgärder som ska exekveras efter en enskild åtgärd. Hur dessa åtgärder exekveras beror dock på vilken typ av åtgärd det är. Som standard exekveras åtgärderna en i sänder och i den ordning de är definierade.

En åtgärd är definierad med JSON. Den har ett JSON-schema precis som en komponent och ett uttryck, så du kan inte skapa dina egna åtgärder.

Integrationer

En integration är en mängd slutpunkter. Varje slutpunkt är konfigurerad med ett schema som beskriver datastrukturen.

Användare

En webbplats kan ha sina egna användare. Det finns simpla mallar för registrering och inloggning.

WebSockets

Plattformen har stöd för WebSockets vilket gör det möjligt att bygga applikationer med data i realtid.

Design

Du kan ändra många globala CSS-variabler för färger, skuggor och typografiska egenskaper som fontfamilj, fontstorlek och fontvikt.

Export

Du kan exportera statiska versioner av dina sidor som ren HTML, CSS och JavaScript. Exporteringen är dock begränsad på många sätt i dagsläget. En del komponenter har inget stöd för att exporteras. Den exporterade sidan är som en ögonblicksbild av sidan i editorn. Den har nästan ingen dynamisk funktionalitet och saknar responsivitet.

Prestanda

Prestanda är viktigt och detta är något som fokuseras på mycket. En sida ska ladda snabbt och inte lagga.