Struktura

Baza w systemie może mieć dowolnie definiowaną strukturę - typy pól definiuje się na wyższym poziomie abstrakcji niż gdybyśmy definiowali je w bazie SQL - dzięki temu system pozwala na tworzenie gotowego i wygodnego interfejsu dla operatora edytującego zawartość bazy. Na poziomie bazodanowym to, co w systemie jest nazywane "bazą", jest tabelą SQL o nazwach pól zgodnych ze zdefiniowanymi w systemie (z wyjątkiem pól przypisanych do wybranej wersji językowej - wówczas do nazwy pola dodawany jest prefix postaci: lang[numer wersji]_np: lang0_nazwa, lang1_nazwa) oraz z zestawem dodatkowych, standardowych, pól, które sprawiają, że tak przygotowane struktury mogą być obsługiwane przez uniwersalne moduły.
Edycja/dodanie pola
Nazwa pola (bez polskich znaków i spacji): | nazwa pola - wewnętrzna nazwa w tabeli |
Etykieta: | Nazwa opisowa pola |
Typ pola: | Dostępne typy zostały opisane poniżej |
Ilość znaków (pole tekst): | Limit znaków dla pola tekstowego |
Ścieżka dla ilustracji: | Dla pól typu "ilustracja": ścieżka do bazowego katalogu ilustracji: formatu: img/ lub img/produkty/ itd Dla pól "Relacja do tabeli" nazwa wewnętrzna bazy, do której odnosi się pole |
Opcje dodatkowe: | Dla pola typu Lista wyboru - opcje w kolejnych wierszach - pełny opis poniżej |
Niepowtarzalne wartości: | Zdefiniowanie pola jako klucza unikalnego w tabeli |
Kolejność kolumn: | liczba określająca kolejność pola w liście |
Pokaż w liście: | wyświetla pole w liście na stronie ("fornt-end") dla modułu i szablonu, który respektuje dane w tym polu |
na liście w systemie: | Pokazuje wartość pola na liście w systemie |
readonly: | Pole tylko do odczytu |
Pokaż w prezentacji szczegółowej: | wyświetla pole w prezentacji szczegółowej na stronie ("front-end") dla modułu i szablonu, który respektuje dane w tym polu |
Pole przeszukiwane przez wyszukiwarkę: | pole uwzględniane przy przeszukiwaniu bazy |
Wartość początkowa: | wartość domyślna dla pola |
Szukaj frazy i nadaj priorytet: | Zaznaczenie spowoduje, że wyszukiwarka modułu xbase będzie próbowała szukać w tym polu całej szukanej frazy - w przypadku powodzenia zapisze to w polu "__search_priority" wg którego można sortować wyniki wyszukiwania. |
wersja: | wersja językowa dla pola - jeśli wersja różna niż "wszystkie" - wówczas do nazwy pola dodawany jest prefix postaci: lang[numer wersji]_np: lang0_nazwa, lang1_nazwa |
Część ustawień z zakładki Opcje wyświetlania oraz dodatkowe parametry nie jest domyślnie wykorzystana - może być użyta do autoformatowania bazy.
Typy pól:
- Tekst krótki (255 znaków max.) [text]
Opcje dodatkowe - w kolejnych liniach:- suggest - dodaje listę wyboru sugestii na podstawie wcześniej wybranych opcji
- html - edycja zezwala na znaki specjalne
- Blok tekstu [textarea]
Opcje dodatkowe - w kolejnych liniach:- html - edycja zezwala na znaki specjalne
- style="..." styl pola textarea w edycji
- [kolumn]x[wierszy] - ilość kolumn x wierszy np: 300x10
- Blok kodu HTML [richText]
Opcje dodatkowe - w kolejnych liniach:- autosave - autozapis
- [szerokość]x[wysokość] - rozmiar pola edycji w pikselach np: 600x500
- Liczba całkowita [number]
- liczba zmiennoprzecinkowa [float]
- Ilustracja [foto]
- plik [file]
- logiczne (TAK/NIE) [checkbox]
- Lista wyboru [list]
Opcje dodatkowe - w kolejnych liniach wartości wyboru wg formatu:- [wartość]::[etykieta]
lub - [wartość]
przykład: - r::czerwony
g::zielony
n::niebieski
- [wartość]::[etykieta]
- radio [radio]
Opcje dodatkowe - w kolejnych liniach wartości do wyboru tak jak dla listy wyboru - radiochb [radiochb]
Lista wyboru w postaci checboksów - z możliwością niezaznaczenia żadnej opcji
Opcje dodatkowe - w kolejnych liniach wartości do wyboru tak jak dla listy wyboru - multilista (zapis 0/1) [multiList]
- multilista (binarnie) [multiBinList]
- Nagłówek [header]
Pseudopole oddzielające pola na potrzeby edycji - hasło [pass]
tryb kodowania definiowany przez zmienną w ustawieniach systemu "passCoding" md5 lub sha1 - kategoria [cat]
- data [date]
- czas [time]
- data i czas [datetime]
- Relacja do tabeli (jeden rekord) [tlist]
w pole "ścieżka dla ilustracji:" podajemy nazwę tabeli, do której
tworzymy relację,
opcjonalnie po separatorze "::" można dodać warunek
w polu Opcje dodatkowe oddzielone separatorami "::" podajemy kolejno:-
nazwa pola - klucza w obcej tabeli, wg którego następuje złączenie
(zazwyczaj "id"), - nazwa pola - opisującego rekord w zewnętrznej tabeli (np "nazwa")
-
kolejno pola które mają być pobierane przy złączaniu tabel - do nazw
pól z zewnętrznej tabeli dodawany jest przedrostek "R_" aby uniknąć
duplikowania nazw i kolejne dla kolejnych pól wg alfabetu (R_, S_, T_ ...)
-
nazwa pola - klucza w obcej tabeli, wg którego następuje złączenie
- Relacja do tabeli (wiele rekordów) [reltable]w pole "ścieżka dla ilustracji:" podajemy nazwę tabeli, do której
tworzymy relację,w polu Opcje dodatkowe oddzielone separatorami "::" podajemy kolejno:
- nazwa pola w "tej" tabeli, wg którego następuje złączenie (zazwyczaj "id"),
- nazwa pola - opisującego rekord w "tej" tabeli (np "nazwa")
-
nazwa pola - klucza w obcej tabeli, wg którego następuje złączenie (np
"zam_id", "iddzialu" tip),
- opis parametryczny [params]
- w polu Opcje dodatkowe wpisujemy nazwę pola opisującego rekord w "tej" tabeli (np "nazwa")
- zakładka [tab]
pseudopole - tworzy zakładkę w interfejsie edycji - Pole ukryte (typu hidden) [hidden]
- Button - edycja - w panelu edycji rekordu [button]
w polu "ścieżka do ilustracji" - nazwa buttona
w polu Opcje dodatkowe: komenda javascript - w nawiasach klamrowych można podać nazwę pola, które będzie wymienione na wartość np:
parent.actAdd('user_mojskrypt.php?newsid={id}','moja opcja') - Button - lista - na liście w systemie [lbutton]
w polu Opcje dodatkowe: komenda javascript - w nawiasach klamrowych można podać nazwę pola, które będzie wymienione na wartość np:
window.open('http://.........,{uid}.html') - punkt na mapie [gmap]
wymaga zdefiniowania zmiennej "gmap_key" w ustawieniach systemu - klucz google maps dla domeny:
http://code.google.com/intl/pl/apis/maps/signup.html
punkt jest zapisywany w formacie: [latitude],[longitude],[zoom] - Tablica (array) [array]
- tablica - zapis serializowany do postaci tekstowej
Tablica może posiadać wiele kolumn, które definiuje się w kolejnych liniach w polu "Opcje dodatkowe". - Przykład:
type=text;name=Nazwa;width=80
type=date;name=Data;
type=file;name=Plik;
type=image;name=Obraz;
type=checkbox;name=aktywny - W kolejnych liniach znajduje się opis kolejnych kolumn począwszy od kolumny o indeksie "0"
- Opis kolumny jest zdefiniowany w postaci: type=[typ pola kolumny];name=[nazwa kolumny];width=[szerokość pola w pikselach];
- Dostępne typy pól w tej strukturze, oraz opis dodatkowych parametrów dla każdego typu
- text - pole tekstowe
- file - pole wyboru pliku
- date - pole wyboru daty - domyślnie w formacie yyyy-mm-dd
- category - lista kategorii
- menu - numer grupy menu
- where - dodatkowy warunek SQL
- checkbox - pole logiczne 0/1 typu checkbox
- select - lista wyboru danych z osobnej bazy
- baseName - nazwa bazy
- fieldTitle - nazwa pola opisującego rekord w bazie
- where - dodatkowy warunek SQL
- Tablica asocjacyjna (hash) [hash]
- tablica asocjacyjna - zapis serializowany
- multilista ID rekordów z innej tabeli [multiIdList]
- w pole "ścieżka dla ilustracji:" podajemy nazwę tabeli, do której utworzymy relację, opcjonalnie po separatorze "::" można dodać warunek, np: produkty::status=1
- w polu "Opcje dodatkowe" obligatoryjnie wpisujemy jedynie nazwę pola - opisującego rekord w zewnętrznej tabeli (np "nazwa").
- Opcjonalnie można podać więcej parametrów oddzielonym separatorem "::"
nazwa_pola_nagłówkowego::pole_klucz::pole1_filtrowania::pole2_filtrowania::pole3_filtrowania - pole_klucz - (domyślnie id) - inne pole które ma być kluczem w obcej tabeli
- pole1_filtrowania, pole2_filtrowania... - dowolna ilość pól wg których nastąpi filtrowanie rekordów - domyślnie kontrolka filtruje wg kategorii
- przykład:
nazwa::id::perms
(pole nagłówkowe to `nazwa`, klucz w tabeli to `id`, filtr wg pola `perms` - czyli grup dostępu)