ResponseForm
extends BaseComponent
in package
uses
FormTrait, ModalTrait, InMultiplierTrait, ResponseFormAccountPrefillTrait
Table of Contents
Constants
- MODAL_TARGET : mixed = 'responseFormModal'
Properties
- $advertId : int
- $container : Container
- $routerDispatcher : RouterDispatcher
- $showPrice : bool
- $translator : ITranslator
- $appContext : AppContext
- $componentParameters : array<string, mixed>
- $currencyContext : CurrencyContext|null
- $deviceDetector : DeviceDetector|null
- $languageContext : LanguageContext|null
- $localizationContext : LocalizationContext|null
- $settingContext : SettingContext
- $themeContext : ThemeContext|null
- $translatorDomain : string|null
- $closed : bool
- A sold advert: no button, no modal, no submit (the Api refuses the save too).
- $currencyManager : CurrencyManager
- $eventDispatcher : EventDispatcher
- $modalRegistry : ModalRegistry
- $responseManager : ResponseManager
- $userManager : UserManager
Methods
- __call() : mixed
- Dispatches `renderXyz()` to `render('Xyz', ...$args)`.
- __construct() : mixed
- createComponent() : IComponent|null
- getAppContext() : AppContext
- getComponentParameter() : mixed
- Returns a component parameter, or null when it is not set.
- getContainer() : Container
- getCurrencyContext() : CurrencyContext|null
- getLanguageContext() : LanguageContext|null
- getLocalizationContext() : LocalizationContext|null
- getRouterDispatcher() : RouterDispatcher
- getSettingContext() : SettingContext
- getSettings() : array<int, array<string, mixed>>
- getThemeContext() : ThemeContext|null
- handleShowResponseModal() : void
- hasServiceByType() : bool
- Returns whether the container has a service of the given type.
- init() : self
- initializeAllContexts() : void
- injectDeviceDetector() : void
- isClosed() : bool
- onCreate() : void
- onError() : void
- Redraws the modal with the field errors. Without it an invalid AJAX submit (browser validation bypassed or off) redrew nothing and the visitor saw no message at all.
- onSuccess() : void
- render() : void
- setAppContext() : $this
- setComponentParameter() : void
- Sets a component parameter.
- setCurrencyContext() : $this
- setLanguageContext() : $this
- setLocalizationContext() : $this
- setSettingContext() : $this
- setThemeContext() : $this
- setup() : void
- setupAppContext() : void
- typedComponent() : T
- Returns a subcomponent with a verified type.
- createComponentForm() : Form
- frontPresenter() : BasePresenter|null
- Returns the front presenter the component is attached to (null outside the front end or when detached).
- getModalTarget() : string
- getTranslator() : ITranslator
- prefillContactFromAccount() : void
- setTemplateFile() : void
- setTranslator() : self
- updateModalContent() : void
- createFormContent() : string
- createModalEvent() : ModalWindowEvent
- createMultiplierComponent() : Multiplier<string|int, IComponent>
- Creates a multiplier for the component.
- createNewComponentInstance() : IComponent|null
- Creates a new component instance without adding it to the presenter; used by the multiplier.
- createStandardComponent() : IComponent|null
- Creates a standard component (not a multiplier).
- createSuccessContent() : string
- prepareCurrencyList() : array<int, string>
- Only public monetary currencies: "Credits" must not be offered for a response price ({@see CurrencyManager::findPublicMonetaryOptions()}).
- rateLimitMessage() : NotTranslate
- "Try again later" message; with the wait in minutes when the Api sent `retryAfter` (an upper bound for the sliding Redis window, exact for the DB limiter, hence "at the latest").
Constants
MODAL_TARGET
private
mixed
MODAL_TARGET
= 'responseFormModal'
Properties
$advertId
public
int
$advertId
= 0
Attributes
- #[Persistent]
$container
public
Container
$container
Attributes
- #[Inject]
$routerDispatcher
public
RouterDispatcher
$routerDispatcher
$showPrice
public
bool
$showPrice
= false
$translator
public
ITranslator
$translator
Tags
$appContext
protected
AppContext
$appContext
$componentParameters
protected
array<string, mixed>
$componentParameters
= []
component parameters set by setComponentParameter()
$currencyContext
protected
CurrencyContext|null
$currencyContext
= NULL
$deviceDetector
protected
DeviceDetector|null
$deviceDetector
= NULL
$languageContext
protected
LanguageContext|null
$languageContext
= NULL
$localizationContext
protected
LocalizationContext|null
$localizationContext
= NULL
$settingContext
protected
SettingContext
$settingContext
$themeContext
protected
ThemeContext|null
$themeContext
= NULL
$translatorDomain
protected
string|null
$translatorDomain
= 'front.bazaar.components.responseForm'
$closed
A sold advert: no button, no modal, no submit (the Api refuses the save too).
private
bool
$closed
= false
$currencyManager read-only
private
CurrencyManager
$currencyManager
$eventDispatcher read-only
private
EventDispatcher
$eventDispatcher
$modalRegistry read-only
private
ModalRegistry
$modalRegistry
$responseManager read-only
private
ResponseManager
$responseManager
$userManager read-only
private
UserManager
$userManager
Methods
__call()
Dispatches `renderXyz()` to `render('Xyz', ...$args)`.
public
__call(string $name, array<string|int, mixed> $args) : mixed
Called only when the component has no renderXyz() method of its own.
Parameters
- $name : string
- $args : array<string|int, mixed>
__construct()
public
__construct(ResponseManager $responseManager, CurrencyManager $currencyManager, ModalRegistry $modalRegistry, EventDispatcher $eventDispatcher, UserManager $userManager) : mixed
Parameters
- $responseManager : ResponseManager
- $currencyManager : CurrencyManager
- $modalRegistry : ModalRegistry
- $eventDispatcher : EventDispatcher
- $userManager : UserManager
createComponent()
public
createComponent(string $name) : IComponent|null
Parameters
- $name : string
Return values
IComponent|nullgetAppContext()
public
getAppContext() : AppContext
Return values
AppContextgetComponentParameter()
Returns a component parameter, or null when it is not set.
public
getComponentParameter(string $name) : mixed
Parameters
- $name : string
getContainer()
public
getContainer() : Container
Return values
ContainergetCurrencyContext()
public
getCurrencyContext() : CurrencyContext|null
Return values
CurrencyContext|nullgetLanguageContext()
public
getLanguageContext() : LanguageContext|null
Return values
LanguageContext|nullgetLocalizationContext()
public
getLocalizationContext() : LocalizationContext|null
Return values
LocalizationContext|nullgetRouterDispatcher()
public
getRouterDispatcher() : RouterDispatcher
Return values
RouterDispatchergetSettingContext()
public
getSettingContext() : SettingContext
Return values
SettingContextgetSettings()
public
getSettings() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>getThemeContext()
public
getThemeContext() : ThemeContext|null
Return values
ThemeContext|nullhandleShowResponseModal()
public
handleShowResponseModal() : void
hasServiceByType()
Returns whether the container has a service of the given type.
public
hasServiceByType(string $className) : bool
The name is composed dynamically (module plus component), so class_exists() runs first, and
a true result guarantees a valid type.
Parameters
- $className : string
Tags
Return values
boolinit()
public
init(int $advertId[, bool $showPrice = false ][, bool $closed = false ]) : self
Parameters
- $advertId : int
- $showPrice : bool = false
- $closed : bool = false
Return values
selfinitializeAllContexts()
public
initializeAllContexts() : void
injectDeviceDetector()
public
injectDeviceDetector(DeviceDetector $detector) : void
Parameters
- $detector : DeviceDetector
isClosed()
public
isClosed() : bool
Return values
boolonCreate()
public
onCreate() : void
onError()
Redraws the modal with the field errors. Without it an invalid AJAX submit (browser validation bypassed or off) redrew nothing and the visitor saw no message at all.
public
onError(Form $form) : void
Parameters
- $form : Form
onSuccess()
public
onSuccess(Form $form, ArrayHash $values) : void
Parameters
- $form : Form
- $values : ArrayHash
render()
public
render() : void
setAppContext()
public
setAppContext(AppContext $appContext) : $this
Parameters
- $appContext : AppContext
Return values
$thissetComponentParameter()
Sets a component parameter.
public
setComponentParameter(string $name, mixed $value) : void
Parameters
- $name : string
- $value : mixed
setCurrencyContext()
public
setCurrencyContext(CurrencyContext|null $currencyContext) : $this
Parameters
- $currencyContext : CurrencyContext|null
Return values
$thissetLanguageContext()
public
setLanguageContext(LanguageContext|null $languageContext) : $this
Parameters
- $languageContext : LanguageContext|null
Return values
$thissetLocalizationContext()
public
setLocalizationContext(LocalizationContext|null $localizationContext) : $this
Parameters
- $localizationContext : LocalizationContext|null
Return values
$thissetSettingContext()
public
setSettingContext(SettingContext $settingContext) : $this
Parameters
- $settingContext : SettingContext
Return values
$thissetThemeContext()
public
setThemeContext(ThemeContext|null $themeContext) : $this
Parameters
- $themeContext : ThemeContext|null
Return values
$thissetup()
public
setup(BasePresenter|BasePresenter $presenter) : void
Parameters
- $presenter : BasePresenter|BasePresenter
setupAppContext()
public
setupAppContext(AppContext $appContext) : void
Parameters
- $appContext : AppContext
typedComponent()
Returns a subcomponent with a verified type.
public
typedComponent(string $name, T> $type) : T
Use it instead of an inline @var above $this['x'] (which does not narrow the type) and
instead of the generic IComponent that $this['x'] returns. See
Form::typedComponent().
Parameters
- $name : string
- $type : T>
Tags
Return values
TcreateComponentForm()
protected
createComponentForm() : Form
Return values
FormfrontPresenter()
Returns the front presenter the component is attached to (null outside the front end or when detached).
protected
frontPresenter() : BasePresenter|null
Return values
BasePresenter|nullgetModalTarget()
protected
getModalTarget() : string
Return values
stringgetTranslator()
protected
getTranslator() : ITranslator
Return values
ITranslatorprefillContactFromAccount()
protected
prefillContactFromAccount(Form $form) : void
Parameters
- $form : Form
setTemplateFile()
protected
setTemplateFile(string $dir, string $filename) : void
Parameters
- $dir : string
- $filename : string
setTranslator()
protected
setTranslator(ITranslator $translator) : self
Parameters
- $translator : ITranslator
Return values
selfupdateModalContent()
protected
updateModalContent(string $content) : void
Parameters
- $content : string
createFormContent()
private
createFormContent() : string
Return values
stringcreateModalEvent()
private
createModalEvent(string $content[, array<string, mixed> $extraOptions = [] ]) : ModalWindowEvent
Parameters
- $content : string
- $extraOptions : array<string, mixed> = []
Return values
ModalWindowEventcreateMultiplierComponent()
Creates a multiplier for the component.
private
createMultiplierComponent(string $name) : Multiplier<string|int, IComponent>
Parameters
- $name : string
Return values
Multiplier<string|int, IComponent>createNewComponentInstance()
Creates a new component instance without adding it to the presenter; used by the multiplier.
private
createNewComponentInstance(string $baseName[, int|string|null $uniqueKey = null ]) : IComponent|null
Parameters
- $baseName : string
- $uniqueKey : int|string|null = null
Return values
IComponent|nullcreateStandardComponent()
Creates a standard component (not a multiplier).
private
createStandardComponent(string $name) : IComponent|null
Parameters
- $name : string
Return values
IComponent|nullcreateSuccessContent()
private
createSuccessContent() : string
Return values
stringprepareCurrencyList()
Only public monetary currencies: "Credits" must not be offered for a response price ({@see CurrencyManager::findPublicMonetaryOptions()}).
private
prepareCurrencyList() : array<int, string>
Return values
array<int, string>rateLimitMessage()
"Try again later" message; with the wait in minutes when the Api sent `retryAfter` (an upper bound for the sliding Redis window, exact for the DB limiter, hence "at the latest").
private
rateLimitMessage(Result $result) : NotTranslate
Parameters
- $result : Result