Joomla tworzenie formularza abstraktów (upload plików)
Do tworzenia zaawansowanych formularzy służy darmowy komponent Chronoforms dostępny na stronie producenta: http://www.chronoengine.com/
Tworzenie nowego formularza abstraktów
- Wejdź w: Components(komponenty), a następnie: ChronoForms i z menu wybierz: EasyForm Wizard
- Pojawi się kreator formularzy, w którym to dodajesz poszczególne pola formularza w tym pole File Upload. Dodawanie polega na przeciąganiu i upuszczaniu poszczególnych pól formularza.
Edycja ustawień i treści dostępna jest z poziomu ustawień pola po kliknięciu na ikonkę symbolizującą narzędzia. Identyfikator nie może zawierać znaków specjalnych i symbolu „–„ czy spacji.
- Wybierz zakładkę Emails i dostosuj ją wedle własnych potrzeb. Zaznacz Enabled na Yes tematu. Jeśli chcemy wysłać potwierdzenie do uczestnika należy formularz uzupełnić:
Jeśli chcesz dołączyć plik jako załącznik do maila uzupełnij pozycję: Attachments Fields name o nazwę etykiety pola pobierania pliku (File_1).
- W zakładce templateuzupełnij treść maila. W poniższym przykładzie {file_1} odwołuje się do nazwy pliku, a {email} do adresu mail użytkownika Joomla(konfiguracja w następnym rozdziale).
- W zakładce Static/Dynamic uzupełnij ustawienia dotyczące wysyłki. Jeśli chcesz wysłać email nadaj wartość Dynamic To na emaili przeczytaj dalszą część poradnika.
- Uzupełnij w zakładce Thank You Messager, a następnie Show Thanks Message, która będzie wyświetlana po prawidłowym wypełnieniu i wysłaniu formularza.
- W zakładce Files Upload wybierz ustawienia Upload Files. Zaakceptuj funkcje na Enabled i Yes. W polu Files wybierz typ plików akceptowalnych np. file_1:jpg,gif,jpeg,png,bmp,doc,docx,rtf,txt,pdf,ppt,pps,ppsx,psd,xls,xlsx,zip,rar (pliki graficzne, dokumenty, archiwa), gdzie file_1 to nazwa pola formularza ze ścieżką wyboru pliku. Następnie ustal Upload Path zgodnie z lokalizacją folderów na serwerze. Na koniec Max size i Min Size in KB(rozmiar plików).
Wyciąganie informacji o użytkowniku wypełniającym formularz
Przy łączeniu danych z formularza z bazą danych domyślnie zostają zarejestrowane tylko numer identyfikujący użytkownika. Więcej informacji o zalogowanym użytkowniku można wyciągnąć wstawiając kod PHP do formularza w następujący sposób:
- Uzupełnij wcześniej przygotowany formularz o hidden Box(ukryte pola) w tym przykładzie o etykietach: name i email.
- Przejdź do zakładki Code i wybierz Custom Code – Before Email(s). W polu code wstaw:
<? $user =& JFactory::getUser();
if (!$user->guest) {
$form->data[’name’] = $user->name;
$form->data[’email’] = $user->email;
}
?>
Od tej pory pod pozycją {name} będzie się kryła nazwa użytkownika, a pod pozycją {email} analogicznie jego e-mail. Więcej o funkcji getUser można znaleźć tutaj: http://docs.joomla.org/JFactory/getUser
Zapisanie danych z formularza do bazy danych
Postępujemy analogicznie jak w pierwszej części instrukcji.
Zabezpieczenie formularza przed dostępem dla niezalogowanych użytkowników
- Edytuj formularz w trybie Advanced Mode i wybierz zakładkę Events i grupę: On Load i dodaj do niej z zakładki Actions kontrolkę Authenticator (grupa Security).
- Do ramki Denied przeciągnij z grupy Actions Show Stopper, aby zablokować dostęp do formularza dla niezalogowanych.
- Wybierz ustawienia i zaznacz grupy użytkowników jakie mają mieć dostęp do formularza.