Obiekt klasy \core\Messages tworzony jest automatycznie przy inicjalizacji systemu i pozwala na wygenerowanie/wstawienie dowolnej liczby komunikatów (obiektów klasy \core\Message).

Zawiera szereg metod pozwalających zweryfikować czy i jakiego rodzaju komunikaty są już zebrane. Można je również usunąć.

Obiekt klasy Messages można pobrać za pomocą App:getMessages()

Metody klasy \core\Messages

addMessage(\core\Message $m, $index = null)

wstawia komunikat do wewnętrznej tablicy komunikatów na kolejną pozycję (gdy $index nie podany lub = null) lub na pozycję wskazaną parametrem $index, gdy jest on != null.

Wstawianie komunikatów na określone indeksy (np. "name") może być przydatne przy przypisywaniu komunikatów do pól formularza (powiązane z tym metody: getMessage i isMessage).

 

clear()

usuwa wszystkie komunikaty

 

getMessage($index), isMessage($index)

pierwsza metoda zwraca komunikat z określonej pozycji. Używana w parze z drugą metodą, która pozwala uprzednio sprawdzić, czy komunikat na wskazanej pozycji się znajduje (przydatne np. przy przypisywaniu komunikatów do pól formularza)

 

getMessages()

zwraca tablicę z komunikatami - obiektami typu \core\Message (np. do celów wyświetlania po stronie widoku).

 

Metody informacyjne

getNumberOfErrors(), getNumberOfInfos(), getNumberOfWarings()

zwraca liczbę komunikatów z błędami, informacjami i ostrzeżeniami

 

getSize()

zwraca liczbę komunikatów

 

isEmpty(), isError(), isInfo(), isWarning()

metody zwracają true/false w zależności od tego czy są lub nie ma odpowiednio: komunikaty ogólnie, błędy, informacje, ostrzeżenia.

 

Klasa \core\Message

Klasa Message jest prostą klasa pozwalającą tworzyć komunikaty jednego typu, np.

$m = new \core\Message("Treść komunikatu", \core\Message::ERROR);

często używany bezpośrednio przy dodawaniu komunikatu:

App:getMessages()->addMessage(new \core\Message("jakiś tekst informacyjny", \core\Message::INFO));

 

Metody klasy \core\Message

__construct($text, $type)

konstruktor pozwala podać treść oraz typ komunikatu (patrz przykłady powyżej). Dostępne typy: \core\Message::INFO, \core\Message::WARNING, \core\Message::ERROR

 

getTypeName()

zwraca tekst (nazwę) opisującą typ wiadomości. Zwracane wartości to "error", "warning" lub "info"

 

isError(), isInfo(), isWarning()

pozwala sprawdzić czy komunikat jest odpowiednio: błędem, informacją, czy ostrzeżeniem

Metody świetnie nadają się do odpowiedniego wystylizowania komunikatu podczas jego wyświetlania w języku HTML. Poniższy przykład pokazuje wstawienie odpowiednich klas css biblioteki bootstrap, pozwalając na odpowiednią stylizację komunikatu w zależności od jego typu. Przykład zakłada użycie biblioteki Smarty wbudowanej w Amelię (obiekt komunikatów $msgs jest dostępny w widoku bez konieczności jego przekazywania):

{foreach $msgs->getMessages() as $msg}
<div class="alert {if $msg->isInfo()}alert-success{/if}
{if $msg->isWarning()}alert-warning{/if}
{if $msg->isError()}alert-danger{/if}" role="alert">
{$msg->text}
</div>
{/foreach}