CoolCMS API

NewsletterAddressPickerTrait

Newsletter subscriber picker — the reusable "many objects pick NewsletterAddress" pattern.

A presenter uses this trait + PickerHostTrait, returns newsletterAddressPicker() from pickers() and creates the fields in a multiplier row (or directly in the form) through addNewsletterAddressControls().

In Newsletter the picker is inside a Multiplier (addresses[N][addressId]), so every row has its own picker instance; the label is held by the text control addressEmail (survives the AJAX re-render). $this->newsletterAddressManager is injected by the presenter constructor.

Table of Contents

Methods

addNewsletterAddressControls()  : void
Creates the picker fields (hidden `addressId` + text label `addressEmail`) in the given container — a multiplier row or the form itself.
newsletterAddressPicker()  : PickerConfig
Picker configuration for {@see \App\UI\Admin\System\Presenters\Traits\Pickers\PickerHostTrait::pickers()}.
resolveNewsletterAddressLabel()  : string|null
Label for prefilling on edit (from the hidden value).
suggestNewsletterAddresses()  : array<int, array{id: int, label: string}>

Methods

addNewsletterAddressControls()

Creates the picker fields (hidden `addressId` + text label `addressEmail`) in the given container — a multiplier row or the form itself.

protected addNewsletterAddressControls(Container $parent[, string $targetField = 'addressId' ][, string $displayField = 'addressEmail' ]) : void
Parameters
$parent : Container
$targetField : string = 'addressId'
$displayField : string = 'addressEmail'

newsletterAddressPicker()

Picker configuration for {@see \App\UI\Admin\System\Presenters\Traits\Pickers\PickerHostTrait::pickers()}.

protected newsletterAddressPicker([string $formName = 'editForm' ][, string|null $container = 'addresses' ][, string $targetField = 'addressId' ][, string $displayField = 'addressEmail' ]) : PickerConfig
Parameters
$formName : string = 'editForm'

form name (editForm)

$container : string|null = 'addresses'

multiplier container name (addresses); null = top-level field

$targetField : string = 'addressId'
$displayField : string = 'addressEmail'
Return values
PickerConfig

resolveNewsletterAddressLabel()

Label for prefilling on edit (from the hidden value).

private resolveNewsletterAddressLabel(int $id) : string|null
Parameters
$id : int
Return values
string|null

suggestNewsletterAddresses()

private suggestNewsletterAddresses(string $query) : array<int, array{id: int, label: string}>
Parameters
$query : string
Return values
array<int, array{id: int, label: string}>
On this page

Search results