fields
object
%field
/phlo/resources/fields/field.phlo
function
function field ($type, ...$args)
line 10
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 12
Deze eigenschap wordt gebruikt om toegang te krijgen tot de interne handle van een veldobject in Phlo.
nullprop
%field -> title
line 14
Deze expressie haalt de 'name' eigenschap van het huidige object op en kapitaliseert de eerste letter.
ucfirst($this->name)method
%field -> input ($record)
line 16
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 17
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
line 19
Deze eigenschap haalt de kolommen van het opgegeven obj op in de context van een veld.
[]method
%field -> objValidate ($value)
line 21
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 11
Stelt een boolean-veld voor met een waar waarde, weergegeven als een vinkje-symbool '✅'.
'✅'prop
%field_bool -> false
line 12
Stelt een boolean-veld voor met een standaardwaarde van false, weergegeven als '❌'.
'❌'method
%field_bool -> label ($record)
line 14
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)
line 15
Genereert een checkbox invoerveld voor een boolean waarde, met een label, op basis van de waarde van het opgegeven record.
tag('label', inner: input(type: 'checkbox', name: $this->name, value: 1, checked: $record->{$this->name} ? false : null).tag('span', class: 'slider', inner: void))method
%field_bool -> parse ($record)
line 16
Parst een booleaanse waarde uit de payload en wijst deze toe aan het opgegeven veld in het record.
$record->{$this->name} = (bool)%payload->{$this->name};method
%field_bool -> nullable
line 17
Deze functie converteert een boolean veld naar een nullable type, waardoor het waar, onwaar of null waarden kan vertegenwoordigen.
falseprop
%field_bool -> objColumns
line 19
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 11
Toegang tot de 'count' eigenschap van het field_child object binnen de lijst.
'count'prop
%field_child -> change
line 12
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 13
Deze expressie evalueert naar false, wat aangeeft dat de field_child eigenschap de create-operatie niet ondersteunt.
falseprop
%field_child -> record
line 14
Toegang tot het kindrecord van het huidige veld in een lijst.
'list'method
%field_child -> count ($record)
line 16
Telt het aantal kindrecords dat is gekoppeld aan het opgegeven record en retourneert het aantal.
tag('a', href: slash.($record::$uriRecord ?? $record::class).slash.$record->id.slash.$this->name, class: 'async', inner: $record->getCount($this->name).space.$this->title)method
%field_child -> last ($record)
line 17
Haal de laatste waarde van het opgegeven veld uit het gegeven record.
$record->getLast($this->name)method
%field_child -> label ($record)
line 18
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)
line 19
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)
line 20
Genereert een anker (`<a>`) element dat linkt naar een bron die wordt geïdentificeerd door het gegeven `$record`, met gebruik van de URI en ID, en past de 'async' klasse toe voor asynchrone laadtijd.
tag('a', href: slash.($record::$uriRecord ?? $record::class).slash.$record->id, class: 'async', inner: $record)object
%field_date
/phlo/resources/fields/date.phlo
prop
%field_date -> handle
line 11
Deze expressie haalt de handle op die is gekoppeld aan het field_date-object en retourneert true als deze bestaat.
trueprop
%field_date -> objColumns
line 13
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 11
De field_datetime->$handle expressie wordt gebruikt om de handle van een datetime-veld in Phlo te benaderen.
trueprop
%field_datetime -> change
line 12
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 13
Controleert of de veldnaam niet 'created' of 'changed' is.
!in_array($this->name, ['created', 'changed'])method
%field_datetime -> label ($record)
line 15
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)
line 16
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)
line 17
Genereert een invoerveld van het type 'datetime-local' voor een opgegeven record, vooraf gevuld met de geformatteerde datum- en tijdwaarde.
input(type: 'datetime-local', name: $this->name, value: date('Y-m-d\TH:i', $record->{$this->name}), class: 'field')method
%field_datetime -> parse ($record)
line 18
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
line 24
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 12
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 11
De `field_file->$canDelete` eigenschap geeft aan of het bestand kan worden verwijderd.
trueprop
%field_file -> delete
line 12
Vraagt de gebruiker om bevestiging voordat een bestand wordt verwijderd.
'Delete file?'prop
%field_file -> path
line 13
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 14
Deze eigenschap retourneert de URI voor een bestand dat is opgeslagen in de '/files/' directory.
'/files/'prop
%field_file -> length
line 15
De `$length` eigenschap van `field_file` retourneert de grootte van het bestand in bytes.
100method
%field_file -> label ($record)
line 17
Genereert een hyperlink voor een bestand dat aan het gegeven record is gekoppeld, met de naam van het bestand en een token voor veilige toegang. Als er geen bestand aanwezig is, retourneert het een streepje.
($filename = $record->{$this->name}) ? tag('a', href: $this->uri.$record->{$this->name.'_token'}.slash.rawurlencode($filename), target: 'file', inner: tag('i', class: 'icon '.pathinfo($filename, PATHINFO_EXTENSION), inner: void).$filename) : dashmethod
%field_file -> input ($record)
line 18
Genereert een HTML-invoerveld voor bestandsuploads, waarbij de huidige bestandsnaam wordt weergegeven als deze beschikbaar is en een optie wordt geboden om het bestand te verwijderen.
$input = void
$file = ($filename = $record->{$this->name}) ? $this->read($record) : null
$input .= lf.tab.tag('div', class: 'file', inner: $file ? tag('i', class: "icon $file->ext", inner: void).$filename : '-select-')
$input .= lf.tab.input(type: 'file', class: 'file-input', name: $this->name, accept: '.pdf')
$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)
line 27
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)
line 39
Leest een bestand dat aan een record is gekoppeld, met een opgegeven pad of een standaardpad, en retourneert de inhoud van het bestand samen met de naam en aanvullende informatie.
$filename = $record->{$this->name};
$token = $record->{$this->name.'_token'};
return %file(($path ?? $this->path).($info = substr($token, 0, 2).slash.substr($token, 2).dot.pathinfo($filename, PATHINFO_EXTENSION)), name: $filename, info: $info)method
%field_file -> write ($file)
line 45
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)
line 46
Schrijft het bestand naar een opgegeven pad, waarbij de map wordt aangemaakt als deze niet bestaat, en retourneert het volledige pad van het geschreven bestand.
$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.$file->extprop
%field_file -> objColumns
line 53
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 55
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 bestandsselectie.
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 11
Geeft de gebruiker een bevestigingsbericht met de vraag of ze de afbeelding willen verwijderen.
'Delete image?'prop
%field_image -> uri
line 12
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 13
De `field_image->$path` geeft het pad van de afbeelding in de `field_image` resource weer.
imagesprop
%field_image -> thumbPath
line 14
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 15
De `field_image->$thumbSize` eigenschap definieert de grootte van de miniatuurafbeelding voor een gegeven veld in Phlo.
64prop
%field_image -> thumbUri
line 16
Deze prop genereert een thumbnail-URI door '/thumbs/' toe te voegen aan de waarde van field_image.
'/thumbs/'method
%field_image -> label ($record)
line 18
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 -> input ($record)
line 19
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}) : '/image.select.jpg', 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 28
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
line 30
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 32
Dit script behandelt klikgebeurtenissen op afbeeldings-elementen om een bestandinvoer te activeren en verwerkt afbeeldingswijzigingen om de geüploade 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 11
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 12
Toegang tot het 'label' veld van elk record in een verzameling records.
'label'prop
%field_many -> create
line 13
Maakt meerdere instanties van een veld in een resource.
falseprop
%field_many -> change
line 14
De field_many->$change-eigenschap geeft aan of er wijzigingen zijn opgetreden in de waarde van het veld.
falsemethod
%field_many -> count ($record)
line 16
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)
line 17
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)
line 18
Genereert een anker (`<a>`) element dat linkt naar de URI van een specifiek record, waarbij de ID en klasse van het record voor de URL worden gebruikt, en past de 'async' klasse toe voor asynchrone laadtijd.
tag('a', href: slash.($record::$uriRecord ?? $record::class).slash.$record->id, class: 'async', inner: $record)method
%field_many -> input ($record)
line 19
Genereert een invoerveld voor elk item in het opgegeven record, met behulp van de label-methode om het label van het veld in te stellen.
$this->label($record)prop
%field_many -> objColumns
line 21
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)
line 11
Geeft het label voor een multiselectveld op basis van het opgegeven record, met een streepje als standaard als de waarde leeg is.
($v = (string)($record->{$this->name} ?? '')) !== '' ? $v : dashmethod
%field_multiselect -> input ($record)
line 13
$current = array_filter(array_map('trim', explode(',', (string)($record->{$this->name} ?? ''))))
$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 : void, onchange: $js).esc((string)$o), class: 'ms-opt'), void)
return tag('input', type: 'hidden', name: $this->name, value: implode(',', $current), class: 'msv').tag('div', $boxes ?: tag('span', 'geen opties', class: 'muted'), class: 'ms-grid')prop
%field_multiselect -> objColumns
line 20
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 11
De `field_number->$decimals` eigenschap specificeert het aantal decimalen voor een numeriek veld in Phlo.
prop
%field_number -> length
line 12
Dit definieert de lengte-eigenschap van een field_number, die het maximale aantal toegestane cijfers specificeert.
5prop
%field_number -> min
line 13
Deze prop definieert de minimale waarde voor een getalveld in een view.
method
%field_number -> label ($record)
line 15
Formatteert een numeriek veld uit het opgegeven record volgens de opgegeven decimalen, met een komma als duizendtalscheiding en een punt als decimaalteken.
number_format($record->{$this->name}, $this->decimals, comma, dot)method
%field_number -> input ($record)
line 16
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')prop
%field_number -> objColumns
line 18
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)
line 11
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)
line 12
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)
line 13
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
line 14
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
line 16
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 11
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 12
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 13
Stelt de minimale lengte-eis in voor het wachtwoordveld.
8prop
%field_password -> placeholder
line 14
Stelt de placeholdertekst voor het wachtwoordinvoerveld in op 'New password'.
'New password'method
%field_password -> input ($record)
line 16
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)
line 17
Genereert een label voor een wachtwoordveld op basis van het opgegeven record.
'••••••••'method
%field_password -> parse ($record)
line 18
Parst het wachtwoordveld uit de payload, trimt het en hash het met PASSWORD_BCRYPT voordat het in het record wordt opgeslagen.
($password = trim(%payload->{$this->name})) && $record->{$this->name} = password_hash($password, PASSWORD_BCRYPT)prop
%field_password -> objColumns
line 20
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 11
Deze eigenschap definieert het aantal decimalen voor het prijsveld.
2object
%field_select
/phlo/resources/fields/select.phlo
method
%field_select -> input ($record)
line 11
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
line 13
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 11
De field_text->$length eigenschap retourneert de lengte van de tekst in het veld als een geheel getal.
100prop
%field_text -> multiline
line 12
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)
line 14
Deze functie haalt het label op voor een tekstveld uit een gegeven record, waarbij de waarde wordt ingekort als deze meer dan 100 tekens bevat en regelovergangen worden vervangen door HTML-breaks.
($value = $record->{$this->name}) === null ? dash : strtr(strlen($value) > 100 ? substr($value, 0, 80).'...' : $value, [lf => br])method
%field_text -> input ($record)
line 15
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)
line 16
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)
line 17
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
line 19
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 11
Geeft de lengte van de field_token terug als een geheel getal.
8prop
%field_token -> default
line 12
Genereert een standaardtoken van een opgegeven lengte met behulp van de token-functie.
token($this->length)prop
%field_token -> create
line 13
Maakt een nieuw veldtoken aan in de context van een resource en retourneert false als de operatie mislukt.
falseprop
%field_token -> change
line 14
De field_token->$change expressie evalueert naar false, wat aangeeft dat er geen wijziging is in de field token.
falseprop
%field_token -> search
line 15
De expressie field_token->$search evalueert naar true, wat aangeeft dat de zoekfunctionaliteit is ingeschakeld voor de veldtoken.
truemethod
%field_token -> label ($record)
line 17
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 18
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
line 20
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 11
Deze eigenschap geeft aan of het veld virtueel is en dynamisch moet worden aangemaakt.
falseprop
%field_virtual -> change
line 12
De field_virtual->$change eigenschap geeft aan of het virtuele veld is veranderd ten opzichte van de vorige waarde.
falseprop
%field_virtual -> objColumns
line 14
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)
line 11
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
line 19
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 21
Dit script activeert een WYSIWYG-editor door knopklikken te verwerken om commando's 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)
/phlo/resources/fields/field.phlo line 10
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)