Elementy aplikacji
Logi
Aplikacja loguje następujące zdarzenia:
- Logowania oraz wylogowania użytkowników
- wygasłe sesje użytkowników
- przerwane sesje przez administratora
- brakujące tłumaczenia
- wyświetlane strony 404
- błędy aplikacji: notice, ..., fatal error
Czynności wykonywane przez użytkowników, przechowywane są w bazie danych tabeli user_log
, natomiast wszystkie komunikaty oraz informacje o błędach aplikacji, umieszczone są w odpowiednich plikach katalogu data/logs
.
Dodanie nowego logu zdarzenia wykonanego przez użytkownika, np: edycji rekordu w bazie, wymaga wykonana statycznej metody UserLog::addLog($id_user, UserLog::TYPE_LOGOUT);
, gdzie parametrami jest numer ID użytkownika oraz typ zdarzednia (w naszym przykładzie wylogowanie użytkownika). Opcjonalnie metoda przyjmuje trzeci parametr, dane w postaci stringa.
Podgląd logów dostępny jest poprzez panel administracyjny: /admin/logs
Ustawienia oraz konfiguracja modułów
Wszystkie ustawienia aplikacji, np: konfiguracja konta dla wysyłki wiadomości e-mail oraz poszczególnych modułów przechowywane są w tabeli settings
. Zalecamy, aby grupować ustawienia modułów poprzez wspólny prefix np: email
.
Panel administracyjny /admin/setting/edit/email
umożliwa edycję danych konfiguracyjnych występujących w tabeli a poszczególne formularze grupowane są po nazwie prefixu.
W celu pobrania wartości należy skorzystać z metody: Setting::getSetting($key)
, np: Setting::getSetting('email.transporter')
Serwis obrazów
Aplikacja posiada wbudowaną obsługę obrazów. Serwis umożliwia:
- przypisanie pliku graficznego do dowolnego rekordu aplikacji
- resize plików graficznych, opcjonalnie z podaniem parametrów resizu
- kadrowanie
- nadanie perspektywy - wymagany rozszerzenie 'php_imagick'
- cachowanie wygenerowanego pliku graficznego
Każdy wygenerowany plik graficzny jest automatycznie cachowany, a każdy kolejny request jest bezpośrednim wyświetleniem pliku bez ingerencji aplikacji.
Upload zdjęcia
Dla przykładu upload zdjęcia profilowego użytkownika.
$upload = new Zend_File_Transfer_Adapter_Http(); $image = Image::createImage($user, array( 'type' => Base::getFileExt($upload->getFileName('id_profile_image', false)), 'name' => $upload->getFileName('id_profile_image', false), 'source' => $upload->getFileName('id_profile_image') )); $image->save(); $user->id_profile_image = $image->getId(); $user->save();
Wyświetlenie obrazka - Image::getUrl($id_image, [array()])
Image::getUrl($user->id_profile_image)
, otrzymamy wynik: /cdn/27/cd839-b-100-100-.jpg
.
Domyślnie wszystkie obrazki wyświetlane są w wielkości 100px na 100px. Metoda getUrl()
, umożliwia podanie tablicy zawierającej parametry:
- width,
Image::getUrl($id, array('width' => 600))
, szerokość - height,
Image::getUrl($id, array('height' => 400))
, wysokość - format,
Image::getUrl($id, array('format' => 'png'))
, format wyświetlonego pliku graficznego - resize,
Image::getUrl($id, array('resize' => 'w'))
, rodzaj przycięcia podczas resizu, dostępne opcje:- o - wyświetlenie oryginalnego zdjęcia
- w - przycięcie na szerokość
- h - przycięcie na wysokość
- b - przycięcie szerokości i wysokości
- bi - przycięcie jeśli oryginalne zdjęcie jest większe niż będzie wyświetlone
- c - kadrowanie, przykład:
Image::getUrl($id, array('c' => 'x,y,width,height'))
, gdzie:- x - początek pozycji kadrowania w px względem szerokości
- y - początek pozycji kadrowania w px względem wysokości
- width - szerokość wyciętego obrazka w px
- height - wysokość wyciętego obrazka w px
- p - nadanie perspektywy. Wymagane jest zainstalowane rozszerzenie 'php_imagick'.
Cache
Aplikacja domyślnie cachuje następujące elementy:
- Rounting adresów
- Tłumaczenia językowe
Wprowadzając zmiany dla wyżej wyszczególnionych elementów, należy każdorazowo wyczyścić cache aplikacji, poprzez opcję w menu /admin/setting/clear-cache
lub z poziomu konsoli poleceniem php zf clean cache
Aby wyłączyć cache w celach deweloperskich należy włączyć tryb deweloperski który umożliwia kontrolę korzystania z cacha aplikacji
Sesja
Sesję użytkowników aplikacja RiseNet przechowuje w bazie danych w tabeli session
. Panel administracyjny /admin/session
umożliwia podgląd wszystkich otwartych sesji oraz ewentualne ich zamknięcie. Zamknięcie sesji spowoduje wylogowanie użytkownika, jeśli był on zalogowany.
Obsługa e-mail
Dane konfiguracyjne konta pocztowego z którego wysyłana jest poczta przechowywane są w tabeli settings
bazy danych. Edycja ich jest dostępna z poziomu formularza aplikacji /admin/setting/edit/email
.
Wszystkie wysyłane wiadomości przez aplikację są logowane w tabeliemail_send
, zawierajaca dane nadawcy, odbiorcy, tematu oraz serializowany obiekt całej wiadomości.
Aby proces wysyłki był przeprowadzany przez Crona, należy włączyć zmienną email.cron_on
. Wówczas wszystkie wiadomości wysyłane przez aplikację będą zapisywane w bazie danych z flagą do wysłania. W przypadku potrzeby natychmiastowej wysyłki pomimo włączonej obsługi Crona, należy bezpośrednio przy wysyłce podać parametr true
.
$mail = new Base_Mail(); ... $mail->send(true);