Dokumentacja techniczna

Jak używać aplikacji RiseNet CMS

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);