fields
object
%field
/phlo/resources/fields/field.phlo
function
function field ($type, ...$args):field
line 11
Maakt een veld met een opgegeven type en aanvullende argumenten, waarbij de phlo-functie wordt gebruikt om een unieke identificatie voor het veld te genereren.
phlo("field_$type", ...$args, type: $type)static
field :: __handle
line 13
Deze eigenschap wordt gebruikt om toegang te krijgen tot de interne handle van een veldobject in Phlo.
nullprop
%field -> title:string
line 15
Deze expressie haalt de 'name' eigenschap van het huidige object op en kapitaliseert de eerste letter.
ucfirst($this->name)method
%field -> input ($record):string
line 17
Genereert een invoerveld op basis van het opgegeven type, naam en waarde uit het opgegeven record, met optionele attributen voor maxlength en placeholder.
input(type: $this->type, name: $this->name, value: $record->{$this->name} ?? $this->default, maxlength: $this->length, placeholder: $this->placeholder, class: 'field')method
%field -> label ($record)
line 18
Haal het label van een veld op uit het opgegeven record met behulp van de naam van het veld.
$record->{$this->name};prop
%field -> objColumns:array
line 20
Deze eigenschap haalt de kolommen van het opgegeven obj op in de context van een veld.
[]method
%field -> objValidate ($value):?string
line 22
Valideert de gegeven waarde tegen specifieke regels zoals verplicht, lengte, patroon en enumeratiebeperkingen, en retourneert foutmeldingen als de validatie mislukt.
if (($value === null || $value === void) && $this->required) return $this->title.' is required'
if ($value === null || $value === void) return null
if ($this->length && is_string($value) && mb_strlen($value) > $this->length) return $this->title.' is too long (max '.$this->length.')'
if ($this->pattern && is_string($value) && !preg_match('/'.str_replace('/', '\\/', $this->pattern).'/', $value)) return $this->title.' has invalid format'
if ($this->enum && !in_array($value, (array)$this->enum, true)) return $this->title.' must be one of: '.implode(', ', (array)$this->enum)
return nullobject
%field_bool
/phlo/resources/fields/bool.phlo
prop
%field_bool -> true
line 12
Stelt een boolean-veld voor met een waar waarde, weergegeven als een vinkje-symbool '✅'.
'✅'prop
%field_bool -> false
line 13
Stelt een boolean-veld voor met een standaardwaarde van false, weergegeven als '❌'.
'❌'method
%field_bool -> label ($record):string
line 15
Geeft het label terug dat overeenkomt met een boolean veld in het gegeven record, waarbij het waar-label of het onwaar-label wordt geretourneerd op basis van de waarde van het veld.
$record->{$this->name} ? $this->true : $this->falsemethod
%field_bool -> input ($record):string
line 16
Genereert een checkbox invoerveld voor een boolean waarde, met een label en een slider voor visuele verbetering, gebaseerd op de waarde van het opgegeven record.
tag('label', inner: input(type: 'checkbox', name: $this->name, value: 1, checked: $record->{$this->name} ? true : null).tag('span', class: 'slider', inner: void))method
%field_bool -> parse ($record):int
line 17
$record->{$this->name} = %payload->{$this->name} ? 1 : 0method
%field_bool -> nullable:bool
line 18
Deze functie converteert een boolean veld naar een nullable type, waardoor het waar, onwaar of null waarden kan vertegenwoordigen.
falseprop
%field_bool -> objColumns:array
line 20
Toegang tot de kolom die is gekoppeld aan het boolean-veld in de objectcontext.
[$this->name]object
%field_child
/phlo/resources/fields/child.phlo
prop
%field_child -> list
line 12
Toegang tot de 'count' eigenschap van het field_child object binnen de lijst.
'count'prop
%field_child -> change
line 13
De field_child->$change-eigenschap geeft aan of het kindveld enige wijzigingen heeft ondergaan, waarbij een boolean waarde van false betekent dat er geen wijzigingen zijn opgetreden.
falseprop
%field_child -> create
line 14
Deze expressie evalueert naar false, wat aangeeft dat de field_child eigenschap de create-operatie niet ondersteunt.
falseprop
%field_child -> record
line 15
Toegang tot het kindrecord van het huidige veld in een lijst.
'list'method
%field_child -> count ($record):string
line 17
Telt het aantal kindrecords dat aan een gegeven record is gekoppeld en retourneert de telling.
tag('a', href: slash.($record::$uriRecord ?? $record::class).slash.$record->{$record::idColumn()}.slash.$this->name, class: 'async', inner: $record->getCount($this->name).space.$this->title)method
%field_child -> last ($record)
line 18
Haal de laatste waarde van het opgegeven veld uit het gegeven record.
$record->getLast($this->name)method
%field_child -> label ($record):string
line 19
Haal het label op voor een kindveld uit een gegeven record, en retourneer een streepje als er geen label wordt gevonden.
implode(loop($record->{$this->name}, fn($child) => $this->link($child))) ?: dashmethod
%field_child -> input ($record):string
line 20
Genereert een invoerveld dat is gekoppeld aan een specifiek record, waarbij de labelmethode wordt gebruikt om het bijbehorende label weer te geven.
$this->label($record)method
%field_child -> link ($record):string
line 21
Genereert een link naar een specifiek record met behulp van de URI en ID, en maakt een anker-tag met de klasse 'async'.
tag('a', href: slash.($record::$uriRecord ?? $record::class).slash.$record->{$record::idColumn()}, class: 'async', inner: $record)method
%field_child -> objKey ($parentModel):string
line 23
Geeft de waarde van de key-eigenschap terug als deze bestaat; anders retourneert het de $parentModel.
$this->key ?? $parentModelmethod
%field_child -> objOwns ($record, $parentId, $parentModel):bool
line 25
Does $record belong to parent $parentId via this relation? (direct foreign key).
$value = $record->{$this->objKey($parentModel)};
is_object($value) && $value = $value->{$value::idColumn()};
return (string)$value === (string)$parentIdobject
%field_date
/phlo/resources/fields/date.phlo
prop
%field_date -> handle
line 12
Deze expressie haalt de handle op die is gekoppeld aan het field_date-object en retourneert true als deze bestaat.
trueprop
%field_date -> format
line 13
Formatteert een datumveld volgens de opgegeven opmaakstring.
nullprop
%field_date -> months:array
line 14
Dit item biedt een associatieve array die maandnummers koppelt aan hun overeenkomstige namen in het Engels en het Nederlands.
[
'nl' => [1 => 'januari', 2 => 'februari', 3 => 'maart', 4 => 'april', 5 => 'mei', 6 => 'juni', 7 => 'juli', 8 => 'augustus', 9 => 'september', 10 => 'oktober', 11 => 'november', 12 => 'december'],
'en' => [1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April', 5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August', 9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December'],
]method
%field_date -> label ($record):string
line 19
Formatteert een datetitel uit een gegeven record en retourneert een geformatteerde string op basis van het opgegeven formaat of standaard naar een lokale weergave.
$v = $record->{$this->name};
if ($v === null || $v === void) return dash
$ts = is_numeric($v) ? (int)$v : strtotime($v)
if (!$ts) return esc($v)
if ($this->format) return date($this->format, $ts)
$lang = substr((string)(%app->lang ?? 'en'), 0, 2)
if (class_exists('IntlDateFormatter')) return (new \IntlDateFormatter($lang, \IntlDateFormatter::LONG, \IntlDateFormatter::NONE))->format($ts)
return date('j', $ts).space.(($this->months[$lang] ?? $this->months['en'])[(int)date('n', $ts)]).space.date('Y', $ts)prop
%field_date -> objColumns:array
line 30
Toegang tot het datumveld van de opgegeven objectkolommen met behulp van de naam eigenschap.
[$this->name]object
%field_datetime
/phlo/resources/fields/datetime.phlo
prop
%field_datetime -> handle
line 12
De field_datetime->$handle expressie wordt gebruikt om de handle van een datetime-veld in Phlo te benaderen.
trueprop
%field_datetime -> change
line 13
Dit item controleert of de veldnaam niet 'created' of 'changed' is voordat een wijziging aan het datetime-veld wordt toegestaan.
!in_array($this->name, ['created', 'changed'])prop
%field_datetime -> create
line 14
Controleert of de veldnaam niet 'created' of 'changed' is.
!in_array($this->name, ['created', 'changed'])method
%field_datetime -> label ($record):string
line 16
Genereert een label voor een datetime-veld in een record, met een pictogram en een leesbaar tijdformaat als er een waarde bestaat.
($value = $record->{$this->name}) ? tag('i', class: 'icon clock-'.$this->labelIconClass(time() - $value), inner: void).tag('span', data_ts: $record->{$this->name}, inner: time_human($record->{$this->name})) : dashmethod
%field_datetime -> labelIconClass ($value):string
line 17
Geeft een kleurklasse terug op basis van de waarde van tijd in seconden, waarbij het wordt gecategoriseerd als 'rood' voor meer dan een dag, 'geel' voor meer dan een uur en 'blauw' voor minder.
$value > 86400 ? 'red' : ($value > 3600 ? 'yellow' : 'blue')method
%field_datetime -> input ($record):string
line 18
Genereert een invoerveld van het type 'datetime-local' voor een opgegeven recordeigenschap, zodat gebruikers een datum en tijd kunnen selecteren.
input(type: 'datetime-local', name: $this->name, value: $record->{$this->name} ? date('Y-m-d\TH:i', $record->{$this->name}) : void, class: 'field')method
%field_datetime -> parse ($record):void
line 19
Parst een datetime-veld uit een record, waarbij 'created' wordt ingesteld op de huidige tijd als het nog niet is ingesteld, 'changed' wordt bijgewerkt naar de huidige tijd, of een payloadwaarde wordt omgezet naar een tijdstempel als deze bestaat.
if ($this->name === 'created') $record->created ??= time()
elseif ($this->name === 'changed') $record->{$this->name} = time()
elseif ($payload = %payload->{$this->name}) $record->{$this->name} = strtotime($payload)prop
%field_datetime -> objColumns:array
line 25
Toegang tot de kolom die is gekoppeld aan het field_datetime-object, waarbij de naam wordt geretourneerd.
[$this->name]object
%field_email
/phlo/resources/fields/email.phlo
view
%field_email -> label ($record)
line 13
Deze view genereert een mailto-link voor een e-mailadres dat in het record is opgeslagen, zodat gebruikers kunnen klikken en direct een e-mail kunnen verzenden.
<a href="mailto:{{ $record->{$this->name} }}">{{ $record->{$this->name} }}</a>object
%field_file
/phlo/resources/fields/file.phlo
prop
%field_file -> canDelete
line 12
De `field_file->$canDelete` eigenschap geeft aan of het bestand kan worden verwijderd.
trueprop
%field_file -> delete
line 13
Vraagt de gebruiker om bevestiging voordat een bestand wordt verwijderd.
'Delete file?'prop
%field_file -> path
line 14
De `field_file->$path` haalt het bestandspad op dat is gekoppeld aan een specifiek bestandsveld in de context van een resource.
filesprop
%field_file -> uri
line 15
Deze eigenschap retourneert de URI voor een bestand dat is opgeslagen in de '/files/' directory.
'/files/'prop
%field_file -> length
line 16
De `$length` eigenschap van `field_file` retourneert de grootte van het bestand in bytes.
100prop
%field_file -> accept
line 17
Bepaalt de geaccepteerde bestandstypen voor een bestandsinvoerveld in een formulier.
nullmethod
%field_file -> label ($record):string
line 19
($filename = $record->{$this->name}) ? tag('a', href: $this->uri.$record->{$this->name.'_token'}.slash.rawurlencode($filename), target: 'file', inner: tag('i', class: 'icon '.$this->ext($filename), inner: void).esc($filename)) : dashmethod
%field_file -> input ($record):string
line 20
$input = void
$file = ($filename = $record->{$this->name}) ? $this->read($record) : null
$input .= lf.tab.tag('div', class: 'file', inner: $file ? tag('i', class: 'icon '.$this->ext($filename), inner: void).esc($filename) : '-select-')
$input .= lf.tab.input(type: 'file', class: 'file-input', name: $this->name, accept: $this->accept)
$file && $this->canDelete && $input .= lf.tab.tag('div', inner: tag('label', inner: input(type: 'checkbox', name: $this->name.'Delete')." $this->delete"))
return $input.lfmethod
%field_file -> parse ($record):void
line 29
Parst een bestand uit de payload, behandelt verwijdering en schrijft het bestand als het geldig is, en werkt het record bij met de verkorte naam en token van het bestand.
$file = %payload->{$this->name};
if ($delete = %payload->{$this->name.'Delete'}) unset(%payload->{$this->name.'Delete'})
if ($record->{$this->name} && $delete && $this->canDelete) $record->{$this->name} = $record->{$this->name.'_token'} = null
if (is_a($file, 'file')){
$token = $file->token
if (!$this->write($file)) return
$record->{$this->name} = $file->shortenTo($this->length)
$record->{$this->name.'_token'} = $token
}method
%field_file -> read ($record, $path = null):file
line 41
$filename = $record->{$this->name};
$token = $record->{$this->name.'_token'};
return %file(($path ?? $this->path).($info = substr($token, 0, 2).slash.substr($token, 2).dot.$this->ext($filename)), name: $filename, info: $info)method
%field_file -> write ($file)
line 47
Schrijft het opgegeven bestand naar het aangewezen pad, verplaatst het indien nodig, en activeert een fout als de schrijfoperatie mislukt.
file_exists($dest = $this->writePath($file)) || $file->move($dest) || error("Couldn't write: $dest")method
%field_file -> writePath ($file, $path = null):string
line 48
$token = $file->token
$path = ($path ?? $this->path).substr($token, 0, 2)
is_dir($path) || mkdir($path) || error("Couldn't create: $path")
return $path.slash.substr($token, 2).dot.$this->ext($file->name)method
%field_file -> ext (string $filename):string
line 55
strtolower(pathinfo($filename, PATHINFO_EXTENSION))prop
%field_file -> objColumns:array
line 57
Deze eigenschap haalt een array op met de naam van het veld en de bijbehorende token voor de opgegeven objectkolommen.
[$this->name, $this->name.'_token']view
script
line 59
Dit script beheert de interacties met bestandsinvoer door een klik op de bestandsinvoer te activeren wanneer het bijbehorende label wordt aangeklikt en de labeltekst bij te werken met de geselecteerde bestandsnaam bij het selecteren van een bestand.
on('click', '.input.file .file', file => file.nextElementSibling.click())
on('change', '.input.file .file-input', input => input.previousElementSibling.innerText = input.files[0].name)object
%field_image
/phlo/resources/fields/image.phlo
prop
%field_image -> delete
line 12
Geeft de gebruiker een bevestigingsbericht met de vraag of ze de afbeelding willen verwijderen.
'Delete image?'prop
%field_image -> uri
line 13
Deze expressie haalt de URI van een afbeeldingsveld op door het basispad '/images/' aan de waarde van het veld toe te voegen.
'/images/'prop
%field_image -> path
line 14
De `field_image->$path` geeft het pad van de afbeelding in de `field_image` resource weer.
imagesprop
%field_image -> thumbPath
line 15
Het `thumbPath`-veld in het `field_image`-object haalt het pad op naar de miniatuurafbeelding die is opgeslagen in de `thumbs`-resource.
thumbsprop
%field_image -> thumbSize
line 16
De `field_image->$thumbSize` eigenschap definieert de grootte van de miniatuurafbeelding voor een gegeven veld in Phlo.
64prop
%field_image -> thumbUri
line 17
Deze prop genereert een thumbnail-URI door '/thumbs/' toe te voegen aan de waarde van field_image.
'/thumbs/'prop
%field_image -> placeholder
line 18
Geeft een base64-gecodeerde SVG-placeholderafbeelding terug voor gebruik in views.
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiM4ODgiIHN0cm9rZS13aWR0aD0iMS40Ij48cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHJ4PSIyIi8+PGNpcmNsZSBjeD0iOC41IiBjeT0iOC41IiByPSIxLjYiLz48cGF0aCBkPSJNMjEgMTVsLTUtNUw1IDIxIi8+PC9zdmc+'prop
%field_image -> record
line 20
Toegang tot het 'preview' veld van het huidige record in een field_image context.
'preview'method
%field_image -> label ($record):string
line 22
Genereert een HTML-ankertag met een afbeelding, die linkt naar een opgegeven URI op basis van de verstrekte recordgegevens. Als het record geen bestandsnaam bevat, retourneert het een streepje.
($filename = $record->{$this->name}) ? tag('a', href: $this->uri.($url = $record->{$this->name.'_token'}.slash.rawurlencode($filename)), target: 'image', inner: tag('img', src: $this->thumbUri.$url)) : dashmethod
%field_image -> preview ($record):string
line 23
Genereert een voorbeeldafbeelding link voor een opgegeven record, waarbij de bestandsnaam en token uit het record worden gebruikt om de URL te construeren.
($filename = $record->{$this->name}) ? tag('a', href: $this->uri.($url = $record->{$this->name.'_token'}.slash.rawurlencode($filename)), target: 'image', inner: tag('img', src: $this->uri.$url, class: 'preview')) : dashmethod
%field_image -> input ($record):string
line 24
Genereert een HTML-invoerelement voor het uploaden van een afbeelding, samen met een voorbeeld van de huidige afbeelding indien beschikbaar, en een optionele checkbox voor het verwijderen van de afbeelding.
$input = void
$file = $record->{$this->name} ? $this->read($record, $this->thumbPath) : null
$input .= lf.tab.tag('img', src: $file ? $this->thumbUri.$record->{$this->name.'_token'}.slash.rawurlencode($record->{$this->name}) : $this->placeholder, class: 'image')
$input .= lf.tab.input(type: 'file', class: 'image-input', name: $this->name, accept: 'image/*', data_size: $this->thumbSize)
$file && $this->canDelete && $input .= lf.tab.tag('div', inner: tag('label', inner: input(type: 'checkbox', name: $this->name.'Delete')." $this->delete"))
return $input.lfmethod
%field_image -> write ($file)
line 33
Schrijft een afbeeldingsbestand naar een opgegeven pad en verplaatst het originele bestand naar een andere locatie, terwijl de afbeelding ook wordt geschaald naar een gedefinieerde thumbnailgrootte.
%img($file->file)->scale($this->thumbSize, $this->thumbSize)->save($this->writePath($file, $this->thumbPath)) && $file->move($this->writePath($file))prop
%field_image -> objColumns:array
line 35
Deze expressie haalt de kolommen op die zijn gekoppeld aan het field_image, specifiek de kolomnamen die zijn gedefinieerd door de naam van het object en de tokenvariant.
[$this->name, $this->name.'_token']view
script
line 37
Dit script behandelt klikgebeurtenissen op afbeeldingelementen om een bestandinvoer te activeren en verwerkt afbeeldinguploads door de geselecteerde afbeelding te verkleinen voordat de bron van het vorige sibling-element wordt bijgewerkt.
on('click', '.input.image .image', img => img.nextElementSibling.click())
on('change', '.input.image .image-input', input => imageResizer(input.files[0], input.dataset.size, input.dataset.size, image => input.previousElementSibling.src = image))object
%field_many
/phlo/resources/fields/many.phlo
prop
%field_many -> list
line 12
De field_many->$list eigenschap wordt gebruikt om een lijst van labels voor een veld in een Phlo-applicatie te definiëren.
'label'prop
%field_many -> record
line 13
Toegang tot het 'label' veld van elk record in een verzameling records.
'label'prop
%field_many -> create
line 14
Maakt meerdere instanties van een veld in een resource.
falseprop
%field_many -> change
line 15
De field_many->$change-eigenschap geeft aan of er wijzigingen zijn opgetreden in de waarde van het veld.
falsemethod
%field_many -> count ($record):int
line 17
Geeft het aantal records terug dat is gekoppeld aan de opgegeven veldnaam in het gegeven record.
$record->getCount($this->name)method
%field_many -> label ($record):string
line 18
Genereert een label voor elk item in een many-to-many-relatie vanuit het gegeven record, met koppelingen naar de gerelateerde entiteiten.
loop($record->{$this->name}, fn($relation) => $this->link($relation), lf) ?: dashmethod
%field_many -> link ($record):string
line 19
Maakt een link naar een specifiek record met behulp van de URI en ID, en rendert het als een anker-tag met de klasse 'async'.
tag('a', href: slash.($record::$uriRecord ?? $record::class).slash.$record->{$record::idColumn()}, class: 'async', inner: $record)method
%field_many -> input ($record):string
line 21
Genereert een set checkbox-invoervelden voor een many-to-many-relatie op basis van het opgegeven record, waarmee meerdere selecties mogelijk zijn.
$pk = $this->obj::idColumn()
$current = array_keys($record->{$this->name} ?: [])
$boxes = loop($this->obj::records(), fn($o) => tag('label', tag('input', type: 'checkbox', name: $this->name.'[]', value: $o->$pk, checked: in_array($o->$pk, $current) ? true : null).esc((string)$o), class: 'ms-opt'), void)
return tag('div', $boxes ?: tag('span', 'no options', class: 'muted'), class: 'ms-grid')method
%field_many -> sync ($model, $parentId)
line 28
Synchroniseert een many-to-many-relatie door bestaande vermeldingen voor een gegeven ouder-ID te verwijderen en nieuwe vermeldingen te maken op basis van de verstrekte payload.
$rel = $model::objMany()[$this->name]
$ids = array_values(array_unique(array_filter((array)(%payload->{$this->name} ?? []), fn($id) => (string)$id !== '')))
$db = $model::DB()
$db->delete($rel['table'], $rel['localKey'].'=?', $parentId)
foreach ($ids AS $id) $db->create($rel['table'], ...[$rel['localKey'] => $parentId, $rel['foreignKey'] => $id])method
%field_many -> objOwns ($record, $parentId, $parentModel):bool
line 36
Controleert of een record eigendom is van een opgegeven bovenliggend model door de database te raadplegen voor een relatie die in het bovenliggende model is gedefinieerd.
$rel = $parentModel::objMany()[$this->name]
return (bool)$parentModel::DB()->record($rel['table'], ...[$rel['localKey'] => $parentId, $rel['foreignKey'] => $record->{$record::idColumn()}])prop
%field_many -> objColumns:array
line 41
De property field_many->$objColumns bevat een array van kolomobjecten die zijn gekoppeld aan een many-to-many relatie in een Phlo resource.
[]object
%field_multiselect
/phlo/resources/fields/multiselect.phlo
method
%field_multiselect -> label ($record):string
line 12
Genereert een label voor een multi-select veld op basis van het opgegeven record, waarbij de geselecteerde waarden worden gefilterd en opgemaakt in tags.
$values = array_filter(array_map('trim', explode(comma, (string)($record->{$this->name} ?? void))))
return $values ? loop($values, fn($v) => tag('span', esc($v), class: 'ms-tag'), space) : dashmethod
%field_multiselect -> input ($record):string
line 17
Genereert een multi-select invoerveld met selectievakjes op basis van de gegeven opties, waarmee gebruikers meerdere waarden uit een lijst kunnen selecteren.
$current = array_filter(array_map('trim', explode(comma, (string)($record->{$this->name} ?? void))))
$js = "var f=this.closest('.field');f.querySelector('input.msv').value=[...f.querySelectorAll('input.msc:checked')].map(c=>c.value).join(',')"
$boxes = loop((array)$this->options, fn($o) => tag('label', tag('input', type: 'checkbox', value: (string)$o, class: 'msc', checked: in_array((string)$o, $current) ? true : null, onchange: $js).esc((string)$o), class: 'ms-opt'), void)
return tag('input', type: 'hidden', name: $this->name, value: implode(comma, $current), class: 'msv').tag('div', $boxes ?: tag('span', 'no options', class: 'muted'), class: 'ms-grid')prop
%field_multiselect -> objColumns:array
line 24
Dit haalt de waarde op van het veld dat wordt geïdentificeerd door de naam eigenschap vanuit de huidige objectcontext.
[$this->name]object
%field_number
/phlo/resources/fields/number.phlo
prop
%field_number -> decimals
line 12
De `field_number->$decimals` eigenschap specificeert het aantal decimalen voor een numeriek veld in Phlo.
prop
%field_number -> length
line 13
Dit definieert de lengte-eigenschap van een field_number, die het maximale aantal toegestane cijfers specificeert.
5prop
%field_number -> min
line 14
Deze prop definieert de minimale waarde voor een getalveld in een view.
method
%field_number -> label ($record):string
line 16
($value = $record->{$this->name}) === null || $value === void ? dash : number_format($value, $this->decimals, comma, dot)method
%field_number -> input ($record):string
line 17
Genereert een HTML-invoerelement van het type 'number' met gespecificeerde attributen, waaronder naam, waarde, stap en min, met gegevens uit het opgegeven record.
input(type: 'number', name: $this->name, value: $record->{$this->name} ?? $this->default, step: $this->decimals ? dot.str_repeat('0', $this->decimals - 1).'1' : null, min: $this->min, class: 'field')method
%field_number -> parse ($record):void
line 19
$name = $this->name
if (!%payload->hasData($name)) return
$value = %payload->$name
$record->$name = ($value === null || (is_string($value) && trim($value) === void)) ? ($this->default ?? 0) : $valueprop
%field_number -> objColumns:array
line 26
Toegang tot de kolomgegevens die zijn gekoppeld aan het veld dat wordt weergegeven door de huidige objectinstantie met behulp van de naam.
[$this->name]object
%field_parent
/phlo/resources/fields/parent.phlo
method
%field_parent -> label ($record):string
line 12
Geeft het label van het bovenliggende veld voor een gegeven record terug, met een link naar het model indien van toepassing, anders retourneert het een streepje.
is_a($obj = $record->{$this->name}, 'model') ? $this->link($obj) : dashmethod
%field_parent -> input ($record):string
line 13
Genereert een HTML <select> invoerelement dat is gevuld met opties op basis van het opgegeven $record, waarbij de optie als geselecteerd wordt gemarkeerd als deze overeenkomt met de ID van het record.
select(name: $this->name, inner: loop($this->options, fn($parent) => '<option'.($parent->id === $record->{$this->name}?->id ? ' selected' : void).' value="'.$parent->id.'">'.$parent, void))method
%field_parent -> link ($record, $content = null):string
line 14
Genereert een anker (`<a>`) HTML-element dat linkt naar de URI van een specifiek record, met gebruik van de ID van het record en optionele interne inhoud.
tag('a', href: slash.($record::$uriRecord ?? $record::class).slash.$record->id, class: 'async', inner: $content ?? $record)prop
%field_parent -> options:array
line 15
Toegang tot de opties die zijn gekoppeld aan het bovenliggende veld in de context van de huidige objectrecords.
$this->obj::records()prop
%field_parent -> objColumns:array
line 17
Toegang tot de kolommen van het bovenliggende object in de context van het huidige veld.
[$this->name]object
%field_password
/phlo/resources/fields/password.phlo
prop
%field_password -> list
line 12
De field_password->$list expressie wordt gebruikt om toegang te krijgen tot een lijst van wachtwoordvelden in een Phlo-applicatie, en retourneert false als er geen dergelijke velden bestaan.
falseprop
%field_password -> required
line 13
Geeft aan of het wachtwoordveld verplicht is voor het indienen van het formulier, waarbij een waarde van true aangeeft dat het verplicht is.
trueprop
%field_password -> minlength
line 14
Stelt de minimale lengte-eis in voor het wachtwoordveld.
8prop
%field_password -> placeholder
line 15
Stelt de placeholdertekst voor het wachtwoordinvoerveld in op 'New password'.
'New password'method
%field_password -> input ($record):string
line 17
Genereert een invoerveld voor een wachtwoord met gespecificeerde attributen zoals type, naam, placeholder en klasse.
input(type: $this->type, name: $this->name, placeholder: $this->placeholder, class: 'field')method
%field_password -> label ($record):string
line 18
Genereert een label voor een wachtwoordveld op basis van het opgegeven record.
'••••••••'method
%field_password -> parse ($record)
line 19
($password = trim((string)%payload->{$this->name})) && $record->{$this->name} = password_hash($password, PASSWORD_BCRYPT)prop
%field_password -> objColumns:array
line 21
Toegang tot het wachtwoordveld van de objColumns-array met de naam van het huidige object als sleutel.
[$this->name]object
%field_price
/phlo/resources/fields/price.phlo
prop
%field_price -> decimals
line 12
Deze eigenschap definieert het aantal decimalen voor het prijsveld.
2object
%field_select
/phlo/resources/fields/select.phlo
method
%field_select -> input ($record):string
line 12
Genereert een select-invoerveld met opties op basis van het opgegeven $record, waarbij de huidige optie als geselecteerd wordt gemarkeerd als deze overeenkomt met de waarde in $record.
select(name: $this->name, inner: loop($this->options, fn($option) => "<option".($record->{$this->name} === $option ? ' selected' : void).">$option", void))prop
%field_select -> objColumns:array
line 14
Toegang tot de kolomgegevens die zijn gekoppeld aan de naam van het huidige object in de context van een veldselectie.
[$this->name]object
%field_text
/phlo/resources/fields/text.phlo
prop
%field_text -> length
line 12
De field_text->$length eigenschap retourneert de lengte van de tekst in het veld als een geheel getal.
100prop
%field_text -> multiline:bool
line 13
De field_text->$multiline eigenschap bepaalt of het tekstveld meerdere regels invoer toestaat op basis van de voorwaarde dat de lengte meer dan 250 tekens bedraagt.
$this->length > 250method
%field_text -> label ($record):string
line 15
($value = $record->{$this->name}) === null ? dash : strtr(esc(strlen($value) > 100 ? substr($value, 0, 80).'...' : $value), [lf => br])method
%field_text -> input ($record):string
line 16
Genereert een invoerveld voor tekstinvoer, waarbij op basis van de multiline-eigenschap of een meerregelig of een enkelregelig invoerveld wordt gebruikt.
$this->multiline ? $this->inputMulti($record) : $this->inputField($record)method
%field_text -> inputField ($record):string
line 17
Genereert een invoerveld voor een formulier, met de opgegeven type, naam, waarde, maxlength, placeholder en class-attributen.
input(type: $this->type, name: $this->name, value: ($value = $record->{$this->name}) ? esc($value) : $this->default, maxlength: $this->length, placeholder: $this->placeholder, class: 'field')method
%field_text -> inputMulti ($record):string
line 18
Genereert een meerregelige tekstinvoerveld met behulp van een textarea-element, waarbij het wordt vooraf ingevuld met een waarde uit het opgegeven record of een standaardwaarde als deze niet bestaat.
textarea(name: $this->name, inner: ($value = $record->{$this->name}) ? esc($value) : $this->default ?? void, placeholder: $this->placeholder, class: 'field')prop
%field_text -> objColumns:array
line 20
Toegang tot de kolomgegevens die zijn gekoppeld aan de naam van het veld in het object.
[$this->name]object
%field_token
/phlo/resources/fields/token.phlo
prop
%field_token -> length
line 12
Geeft de lengte van de field_token terug als een geheel getal.
8prop
%field_token -> default:string
line 13
Genereert een standaardtoken van een opgegeven lengte met behulp van de token-functie.
token($this->length)prop
%field_token -> create
line 14
Maakt een nieuw veldtoken aan in de context van een resource en retourneert false als de operatie mislukt.
falseprop
%field_token -> change
line 15
De field_token->$change expressie evalueert naar false, wat aangeeft dat er geen wijziging is in de field token.
falseprop
%field_token -> search
line 16
De expressie field_token->$search evalueert naar true, wat aangeeft dat de zoekfunctionaliteit is ingeschakeld voor de veldtoken.
trueprop
%field_token -> handle
line 17
Deze expressie haalt de waarde van de 'handle'-eigenschap op uit het 'field_token'-object en retourneert true als deze bestaat.
truemethod
%field_token -> label ($record):string
line 19
Deze functie haalt het label voor een veldtoken op uit een gegeven record en wikkelt het in een 'div'-tag, waarbij speciale tekens worden ontsnapt.
tag('div', inner: esc($record->{$this->name}))method
%field_token -> parse ($record)
line 20
Parst een veldtoken uit het gegeven record en wijst een standaardwaarde toe als het token niet aanwezig is.
$record->{$this->name} ??= $this->defaultprop
%field_token -> objColumns:array
line 22
Toegang tot de kolomgegevens die zijn gekoppeld aan de veldtoken in de huidige objectcontext.
[$this->name]object
%field_virtual
/phlo/resources/fields/virtual.phlo
prop
%field_virtual -> create
line 12
Deze eigenschap geeft aan of het veld virtueel is en dynamisch moet worden aangemaakt.
falseprop
%field_virtual -> change
line 13
De field_virtual->$change eigenschap geeft aan of het virtuele veld is veranderd ten opzichte van de vorige waarde.
falseprop
%field_virtual -> objColumns:array
line 15
De field_virtual->$objColumns eigenschap wordt gebruikt om de kolommen van een virtueel veld in een object te benaderen.
[]object
%field_wysiwyg
/phlo/resources/fields/wysiwyg.phlo
method
%field_wysiwyg -> input ($record):string
line 12
Genereert een WYSIWYG-editorinvoerveld, inclusief een werkbalk voor tekstopmaak en een verborgen invoer om de waarde op te slaan.
$value = $record->{$this->name} ?? $this->default ?? void
$toolbar = tag('div', class: 'toolbar', inner: tag('button', type: 'button', data_command: 'bold', inner: '<b>B</b>').tag('button', type: 'button', data_command: 'italic', inner: '<i>I</i>').tag('button', type: 'button', data_command: 'underline', inner: '<u>U</u>').tag('button', type: 'button', data_command: 'insertUnorderedList', inner: '•').tag('button', type: 'button', data_command: 'insertOrderedList', inner: '1.'))
$editor = tag('div', class: 'editor', contenteditable: 'true', inner: $value)
$hiddenInput = textarea(name: $this->name, class: 'hidden-value', inner: $value)
return tag('div', class: 'wysiwyg-container', inner: "$toolbar$editor$hiddenInput")prop
%field_wysiwyg -> objColumns:array
line 20
Toegang tot de kolommen van het WYSIWYG-veld als een object, waarmee de datastructuur van het veld kan worden gemanipuleerd.
[$this->name]view
script
line 22
Dit script activeert een WYSIWYG-editor door knoppenklikken te verwerken om opdrachten uit te voeren en een verborgen textarea bij te werken met de HTML-inhoud van de editor bij invoergebeurtenissen.
on('click', '.wysiwyg-container .toolbar button', (button, e) => {
e.preventDefault()
const command = button.dataset.command
document.execCommand(command, false, null)
})
on('input', '.wysiwyg-container .editor', editor => {
const container = editor.closest('.wysiwyg-container')
const hiddenInput = container.querySelector('textarea.hidden-value')
hiddenInput.value = editor.innerHTML
})
on('click', '.wysiwyg-container .editor a', a => window.open(a.href))Functions
function
field($type, ...$args):field
/phlo/resources/fields/field.phlo line 11
Maakt een veld met een opgegeven type en aanvullende argumenten, waarbij de phlo-functie wordt gebruikt om een unieke identificatie voor het veld te genereren.
phlo("field_$type", ...$args, type: $type)Laatst bijgewerkt op 23-08-2026