Widok zawansowany z wykorzystaniem PhpRender
Mniej niż 1 minuta
PhpRender
PhpRender jest używany w definicji zakładek, w systemowych plikach xml-owych, custom modules.
Implementuje ICustomView gdzie musimy utworzyć metode toHtml, w której utworzymy Panel z listą.
Kod
class ExampleView implements ICustomView {
/**
* @var string
*/
private $name;
/**
* @var string
*/
private $refreshToken = 'return false;';
public function __construct(string $name, ?Panel $parent = NULL) {
$this->name = $name;
$this->refreshToken = 'App.'.$this->name.'asyncRefresh();';
}
public function toHtml(): string {
$html = '<div class="custom-projects gbs sbg b-s-b" style="overflow-y: scroll; height: 100%">
<div class="ready-bootstrap">
<div class="row" style="margin-left: 5px; margin-right: 0;">
<button class="rbos-btn rbos-btn-secondary no-print" title="'.Translator::translate('Odśwież').'"
onclick="'.$this->refreshToken.' return false;">
<i style="vertical-align: middle; font-size: 14px; line-height: 30px; margin-right: 3px;"
class="eic eic-refresh"></i>'.Translator::translate('Odśwież').'
</button>
</div>
</div>
</div>';
return $html;
}
public function setParams(array $params): void {
}
}
Plik do pobrania
Przykład implementacji
W przykładzie prezentowany jest widok z przyciskiem, który potrafi odświeżyć sam siebie poprzez wywołanie funkcji asynchronicznej z atrybutu onClick przycisku "odśwież"
Analogicznie została dodana obsługa na zakładkach spraw poprzez dodanie atrybutu phpRender="{klasa widoku z namespace}"
do elementu tab.
Przykład definiowania zakładki
<tab label="Przykład widoku ICustomView" phpRender="ReadyApp\ExampleApp\View\ExampleView"></tab>