email()->validate('user-email'); // check for errors if ($validator->hasErrors()) { var_dump($validator->getAllErrors()); $_SESSION['errors']['brief'] = $validator->getAllErrors(); } else { /* Send email with attached file(s) */ $path = $root . '/file-uploads/images/thumbs/md/'; $attachments = array(); if (isset($_POST['uploaded-images']) && !empty($_POST['uploaded-images'])) { $images = FileUploader::getPostedFiles($_POST['uploaded-images']); foreach ($images as $f) { $attachments[] = $path . $f['file']; } $attachments = implode(', ', $attachments); } $email_config = array( 'sender_email' => 'kkepa@kompan.pl', 'sender_name' => 'Php Form Builder', 'recipient_email' => 'kkepa@kompan.pl', 'subject' => 'Brief został wypełniony', 'attachments' => $attachments, 'filter_values' => 'brief, uploaded-images', 'sent_message' => '

Twój brief został wysłany!

' ); $sent_message = Form::sendMail($email_config); Form::clear('brief'); } } /* ================================================== The Form ================================================== */ $form = new Form('brief', 'horizontal', 'novalidate', 'tailwind'); $form->setMode('production'); $form->startFieldset('Dane o firmie', 'id=1', 'class=text-2xl dark:text-white my-6'); $form->addInput('text', 'company', '', 'Nazwa firmy', 'data-fv-not-empty, data-fv-not-empty___message=Pole nie może być puste.'); $form->addInput('email', 'email', '', 'Email', 'required'); $form->addInput('tel', 'user-phone', '', 'Telefon'); $form->addInput('text', 'portfolio-web-site', '', 'Obecna strona www', 'placeholder=http://, data-fv-uri, required'); $form->addPlugin('tinymce', '#additional-information', 'light'); $form->addTextarea('additional-information', '', 'Cel powstania nowej strony', 'rows=7'); $form->endFieldset(); // Contact Information $form->startFieldset('Przewidywana struktura strony:', 'id=2', 'class=text-2xl dark:text-white my-6'); $form->addHtml('

Wybierz, jakie strony oprócz prostych tekstowych np. Polityka prywatności, powinny znaleźć się w nowym serwisie

'); $form->addOption('myMultipleSelectName[]', 'Strona główna', 'Strona główna', '', 'selected=selected'); $form->addOption('myMultipleSelectName[]', 'O nas', 'O nas'); $form->addOption('myMultipleSelectName[]', 'history', 'Historia'); $form->addOption('myMultipleSelectName[]', 'team', 'Zespół'); $form->addOption('myMultipleSelectName[]', 'cooperation', 'Współpraca'); $form->addOption('myMultipleSelectName[]', 'Cennik', 'Cennik'); $form->addOption('myMultipleSelectName[]', 'news', 'Aktualności'); $form->addOption('myMultipleSelectName[]', 'blog', 'Blog'); $form->addOption('myMultipleSelectName[]', 'Produkty', 'Produkty'); $form->addOption('myMultipleSelectName[]', 'Kategoria produktów', 'Kategoria produktów'); $form->addOption('myMultipleSelectName[]', 'offer', 'Oferta'); $form->addOption('myMultipleSelectName[]', 'services', 'Usługi'); $form->addOption('myMultipleSelectName[]', 'gallery', 'Galeria'); $form->addOption('myMultipleSelectName[]', 'Realizacje', 'Realizacje'); $form->addOption('myMultipleSelectName[]', 'Do pobrania', 'Do pobrania'); $form->addOption('myMultipleSelectName[]', 'Serwis', 'Serwis'); $form->addOption('myMultipleSelectName[]', 'Konfigurator', 'Konfigurator'); $form->addOption('myMultipleSelectName[]', 'Producenci', 'Producenci'); $form->addOption('myMultipleSelectName[]', 'Technologie', 'Technologie'); $form->addOption('myMultipleSelectName[]', 'Kariera/Oferty pracy', 'Kariera/Oferty pracy'); $form->addOption('myMultipleSelectName[]', 'contact', 'Kontakt'); $form->addSelect('myMultipleSelectName[]', 'Wybierz strony', 'multiple=multiple, style=min-height:450px'); $form->addPlugin('tinymce', '#additional-pages', 'light'); $form->addTextarea('additional-pages', '', 'Wypisz inne istotne strony', 'rows=7'); $form->endFieldset(); $form->startFieldset('Dodatkowe języki', 'id=3', 'class=text-2xl dark:text-white my-6'); $form->addHtml('

Liczba języków na jakie będzie tłumaczony serwis.

'); $form->addOption('languages[]', 'Polski', 'Polski', '', 'selected=selected'); $form->addOption('languages[]', 'Angielski', 'Angielski'); $form->addOption('languages[]', 'Niemiecki', 'Niemiecki'); $form->addOption('languages[]', 'Rosyjski', 'Rosyjski'); $form->addOption('languages[]', 'Włoski', 'Włoski'); $form->addOption('languages[]', 'Hiszpański', 'Hiszpański'); $form->addOption('languages[]', 'Czeski', 'Czeski'); $form->addSelect('languages[]', 'Wybierz języki', 'multiple=multiple, style=min-height:180px'); $form->addPlugin('tinymce', '#additional-languages', 'light'); $form->addTextarea('additional-languages', '', 'Inne języki', 'rows=7'); $form->endFieldset(); $form->startFieldset('Funkcjonalności', 'id=4', 'class=text-2xl dark:text-white my-6'); $form->addOption('function[]', 'Wyszukiwarka tekstowa', 'Wyszukiwarka tekstowa', 'Podstawowe funkcjonalności'); $form->addOption('function[]', 'Newsletter', 'Newsletter (integracja z formularzem)', 'Podstawowe funkcjonalności'); $form->addOption('function[]', 'Galeria zdjęć', 'Galeria zdjęć', 'Podstawowe funkcjonalności'); $form->addOption('function[]', 'Blog', 'Blog', 'Podstawowe funkcjonalności'); $form->addOption('function[]', 'Moduł social mediów', 'Moduł social mediów', 'Podstawowe funkcjonalności'); $form->addOption('function[]', 'Pliki do pobrania po zalogowaniu', 'Pliki do pobrania po zalogowaniu', 'Podstawowe funkcjonalności'); $form->addOption('function[]', 'Katalog produktów', 'Katalog produktów', 'Katalog produktów (bez opcji sklepu)'); $form->addOption('function[]', 'Wyszukiwarka produktów', 'Wyszukiwarka produktów', 'Katalog produktów (bez opcji sklepu)'); $form->addOption('function[]', 'Zaawansowane filtrowanie produktów', 'Zaawansowane filtrowanie produktów', 'Katalog produktów (bez opcji sklepu)'); $form->addOption('function[]', 'Formularz kontaktowy przy produkcie', 'Formularz kontaktowy przy produkcie', 'Katalog produktów (bez opcji sklepu)'); $form->addOption('function[]', 'Lista pracowników', 'Lista pracowników', 'Informacje firmowe'); $form->addOption('function[]', 'Mapa lokalizacji sklepów/oddziałów/punktów', 'Mapa lokalizacji sklepów/oddziałów/punktów', 'Informacje firmowe'); $form->addOption('function[]', 'Opinie klientów', 'Opinie klientów', 'Informacje firmowe'); $form->addOption('function[]', 'Oferty pracy oraz formularz aplikacji', 'Oferty pracy oraz formularz aplikacji', 'Informacje firmowe'); $form->addSelect('function[]', 'Wybierz funkcjonalności', 'multiple=multiple, style=min-height:450px'); $form->addPlugin('tinymce', '#additional-function', 'light'); $form->addTextarea('additional-function', '', 'Inne funkcjonalności (opisz)', 'rows=7'); $form->endFieldset(); $form->startFieldset('Konkurencja firmy na rynku', 'id=5', 'class=text-2xl dark:text-white my-6'); $form->addHtml('

Strony konkurencji, które się Państwu podobają lub posiadają jakieś ciekawe/unikatowe rozwiązania

'); $form->addPlugin('tinymce', '#additional-competition', 'light'); $form->addTextarea('additional-competition', '', 'Wypisz konkurencję', 'rows=7'); $form->endFieldset(); // Portfolio $form->startFieldset('Dodatkowe załączniki', 'id=6', 'class=text-2xl dark:text-white my-6'); $form->addHelper('10 plików maksymalnie. Rozmiar pliku maksymalnie 2mb', 'uploaded-images'); // reload the previously posted file if the form was posted with errors $current_images = array(); if (isset($_POST['uploaded-images']) && !empty($_POST['uploaded-images'])) { $posted_images = FileUploader::getPostedFiles($_POST['uploaded-images']); foreach ($posted_images as $f) { $current_file_path = $root . '/file-uploads/images/'; $current_file_name = $f['file']; if (file_exists($current_file_path . $current_file_name)) { $current_file_size = filesize($current_file_path . $current_file_name); $current_file_type = mime_content_type($current_file_path . $current_file_name); $current_file = array( 'name' => $current_file_name, 'size' => $current_file_size, 'type' => $current_file_type, 'file' => '/file-uploads/images/' . $current_file_name, // url of the file 'data' => array( 'listProps' => array( 'file' => $current_file_name ) ) ); $current_images[] = $current_file; } } } $fileUpload_config = array( 'xml' => 'image-upload', // the uploader's config in phpformbuilder/plugins-config/fileuploader.xml 'uploader' => 'ajax_upload_file.php', // the uploader file in phpformbuilder/plugins/fileuploader/[xml]/php 'upload_dir' => '../../../../../file-uploads/images/', // the directory to upload the files. relative to [plugins dir]/fileuploader/image-upload/php/ajax_upload_file.php 'limit' => 10, // max. number of files 'file_max_size' => 2, // each file's maximal size in MB {null, Number} 'extensions' => ['jpg', 'jpeg', 'png', 'gif', 'doc', 'docx', 'pdf', 'xls', 'xlsx'], // allowed extensions 'thumbnails' => true, // the thumbs directories must exist. thumbs config. is done in phpformbuilder/plugins/fileuploader/image-upload/php/ajax_upload_file.php 'editor' => true, // allows the user to crop/rotate the uploaded image 'width' => 960, // the uploaded image maximum width 'height' => 720, // the uploaded image maximum height 'crop' => false, 'debug' => true // log the result in the browser's console and shows an error text on the page if the uploader fails to parse the json result. ); $form->addFileUpload('uploaded-images', '', 'Dołącz swoje pliki do briefa', 'test', $fileUpload_config, $current_images); $form->endFieldset(); $form->centerContent(); $form->addBtn('submit', 'my-btn-5', 1, 'Wyślij brief ', 'class=text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center mt-10 mb-8 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800, data-ladda-button=true, data-style=slide-left'); // Custom radio & checkbox css $form->addPlugin('pretty-checkbox', '#brief'); // Utility functions to extract the content retrieved with fetch() then run the built-in scripts //$form->addPlugin('ajax-data-loader', '#' . $form_id); // Javascript validation $js_replacements = array('%language%' => 'fr_FR'); $form->addPlugin('formvalidation', '#brief', 'default', $js_replacements); ?> WebLegend - brief www printIncludes('css'); ?>
WEBLEGEND - brief strona internetowa
Poniższy brief jest formą komunikacji, dzięki której jesteśmy w stanie przygotować serwis, najbardziej odpowiadający Państwa potrzebom. render(); ?>
printIncludes('js'); $form->printJsCode(); ?> connect_error) { die("Błąd połączenia: " . $conn->connect_error); } $email = $_POST['email']; $company = $_POST['company']; $phone = $_POST['user-phone']; $www = $_POST['portfolio-web-site']; $additional_information = $_POST['additional-information']; $pages = implode(", ", $_POST['myMultipleSelectName']); $additional_pages = $_POST['additional-pages']; $languages = implode(", ", $_POST['languages']); $additional_languages = $_POST['additional-languages']; $functions = implode(", ", $_POST['function']); $additional_functions = $_POST['additional-function']; $additional_competition = $_POST['additional-competition']; $attachments = $_POST['uploaded-images']; mysqli_query($conn, "SET CHARSET utf8"); mysqli_query($conn, "SET NAMES `utf8` COLLATE `utf8_polish_ci`"); $sql = "INSERT INTO briefy (email, company, phone, www, additional_information, pages, additional_pages, languages, additional_languages, functions, additional_functions, additional_competition, attachments) VALUES ('$email', '$company', '$phone', '$www', '$additional_information', '$pages', '$additional_pages', '$languages', '$additional_languages', '$functions', '$additional_functions', '$additional_competition', '$attachments')"; if ($conn->query($sql) === FASLE) { echo "Błąd podczas dodawania rekordu do bazy danych: " . $conn->error; } $conn->close(); } ?>