Przejdź do głównej treści

Widok zawansowany z wykorzystaniem PhpRender

Ready_™ Developer TeamMniej 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 {

    }

}

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>