Guest User

Untitled

a guest
Jun 20th, 2018
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.31 KB | None | 0 0
  1. <?php
  2.  
  3. function poptavka_menu() {
  4. $items['poptavka'] = array(
  5. 'title' => t('Poptávka'),
  6. 'page callback' => 'poptavka_form',
  7. 'access arguments' => array('access content'),
  8. 'type' => MENU_CALLBACK
  9. );
  10. return $items;
  11. }
  12.  
  13. function poptavka_form() {
  14. return drupal_get_form('poptavka_form_page1');
  15. }
  16.  
  17. function poptavka_form_page1($form_state) {
  18.  
  19. if (isset($form_state['storage']['page_two'])) {
  20. return poptavka_form_page2();
  21. }
  22.  
  23. $form['zadani'] = array(
  24. '#type' => 'fieldset',
  25. '#title' => t('Slovní zadání'),
  26. '#description' => t('Zde prosím vložte slovní zadání poptávky. Můžete použít i políčko pro nahrání souboru a přiložit textový dokument se zadáním.')
  27. );
  28. $form['zadani']['text'] = array(
  29. '#type' => 'textarea',
  30. '#title' => t('Text zadání'),
  31. '#cols' => '40',
  32. '#description' => t('Pokud nemáte soubor se zadáním k nahrání, použijte toto pole k jeho napsání.')
  33. );
  34. $form['zadani']['soubor'] = array(
  35. '#type' => 'file',
  36. '#title' => t('Nahrát soubor se zadáním'),
  37. '#size' => '40'
  38. );
  39. $form['#attributes'] = array('enctype' => "multipart/form-data");
  40.  
  41. $form['parametry'] = array(
  42. '#type' => 'fieldset',
  43. '#title' => t('Parametry poptávky'),
  44. '#description' => t('Základní parametry poptávky.')
  45. );
  46. $form['parametry']['metoda'] = array(
  47. '#type' => 'checkboxes',
  48. '#title' => t('Metody'),
  49. '#options' => array(
  50. 'kvalita' => t('Kvalitativní'),
  51. 'kvantita' => t('Kvantitativní')
  52. )
  53. );
  54. $form['parametry']['vzorek'] = array(
  55. '#type' => 'textfield',
  56. '#title' => t('Velikost vzorku'),
  57. '#description' => t('Zadejte přibližnou velikost vzorku populace.')
  58. );
  59. $form['parametry']['region'] = array(
  60. '#type' => 'textfield',
  61. '#title' => t('Lokalita'),
  62. '#description' => t('Geografický region. (např.: Praha a okolí, Středočeský kraj, Česko a Slovensko, Střední Evropa atd.)')
  63. );
  64. $form['parametry']['cena'] = array(
  65. '#type' => 'textfield',
  66. '#title' => t('Cenové rozpětí'),
  67. '#description' => t('Přibližná představa o rozpočtu na daný výzkum.')
  68. );
  69. $form['parametry']['termin'] = array(
  70. '#type' => 'textfield',
  71. '#title' => t('Termín'),
  72. '#description' => t('Přibližný termín realizace.')
  73. );
  74.  
  75. $agencies = db_query('SELECT n.nid, n.title FROM {node} n WHERE n.type = "profil_vyzkumne_agentury"');
  76. $options = array();
  77. $checked_by_default = array();
  78. while($agency = db_fetch_array($agencies)){
  79. $options[$agency['nid']] = $agency["title"];
  80. $checked_by_default[] = $agency["nid"];
  81. }
  82. $form_state['storage']['agentury'] = $options;
  83.  
  84. $form['parametry']['agentury'] = array(
  85. '#type' => 'checkboxes',
  86. '#title' => t('Výzkumné agentury'),
  87. '#default_value' => $checked_by_default,
  88. '#options' => $options,
  89. '#description' => t('Vyberte si výzkumné agentury, které chcete oslovit.'),
  90. );
  91.  
  92. $form['next'] = array(
  93. '#type' => 'submit',
  94. '#value' => t('Pokračovat >>')
  95. );
  96.  
  97. return $form;
  98. }
  99.  
  100. function poptavka_form_page2() {
  101. $form['osobni_informace'] = array(
  102. '#type' => 'fieldset',
  103. '#title' => t('Informace o zadavateli'),
  104. );
  105. $form['osobni_informace']['jmeno'] = array(
  106. '#type' => 'textfield',
  107. '#title' => t('Jméno a příjmení'),
  108. );
  109. $form['osobni_informace']['email'] = array(
  110. '#type' => 'textfield',
  111. '#title' => t('E-mail'),
  112. '#required' => TRUE
  113. );
  114. $form['osobni_informace']['telefon'] = array(
  115. '#type' => 'textfield',
  116. '#title' => t('Telefon'),
  117. );
  118. $form['osobni_informace']['mobil'] = array(
  119. '#type' => 'textfield',
  120. '#title' => t('Mobil'),
  121. );
  122. $form['osobni_informace']['spolecnost'] = array(
  123. '#type' => 'textfield',
  124. '#title' => t('Název vaší společnosti'),
  125. );
  126.  
  127. $form['agree'] = array(
  128. '#type' => 'checkbox',
  129. '#title' => t('Souhlasím s podmínkami.'),
  130. '#required' => TRUE
  131. );
  132.  
  133. $form['odeslat'] = array(
  134. '#type' => 'submit',
  135. '#value' => t('Odeslat poptávku')
  136. );
  137.  
  138. return $form;
  139. }
  140.  
  141. function poptavka_form_page1_submit($form, &$form_state) {
  142. global $base_url;
  143.  
  144. if ($form_state['clicked_button']['#id'] == 'edit-next') {
  145. $form_state['storage']['page_two'] = TRUE;
  146.  
  147. $dest = 'sites/default/files/poptavka';
  148. if(file_check_directory($dest)) {
  149. $save = file_save_upload('soubor', array(), $dest, FILE_EXISTS_RENAME);
  150. if(!$save) {
  151. $soubor = t('Soubor nepřiložen');
  152. } else {
  153. $soubor = $base_url . '/sites/default/files/poptavka/' . $save->filename;
  154. drupal_set_message(t('Soubor: <strong>"' . $save->filename . '"</strong> přiložen k formuláři.'));
  155. }
  156. } else {
  157. drupal_set_message(t('POZOR! Do adresáře nelze zapisovat. Kontaktujte administrátora.'), 'status');
  158. }
  159.  
  160. $form_state['storage']['page_one_values'] = $form_state['values'];
  161. $form_state['storage']['page_one_values']['soubor'] = $soubor;
  162. $form_state['storage']['page_one_values']['agentury_cached'] = $form_state['storage']['agentury'];
  163. }
  164.  
  165. else {
  166. $data = array_merge_recursive($form_state['storage']['page_one_values'], $form_state['values']);
  167. unset($form_state['storage']);
  168. send_survey_request($data);
  169. }
  170. }
  171.  
  172. function send_survey_request($data) {
  173. $from = 'john.doe@email.com';
  174. $subj = 'Poptávka výzkumu';
  175.  
  176. $recipients = array();
  177. $recipients[] = 'john.doe@email.com';
  178.  
  179. $recipients_cc = array();
  180. $recipients_cc[] = '';
  181.  
  182. $recipients_bcc = array();
  183. $recipients_bcc[] = 'john.doe@email.com';
  184. $recipients_bcc[] = 'john.doe@email.com';
  185.  
  186. $content .= "________[ ZADÁNÍ ]________\n\n";
  187. // Slovni zadani
  188. $content .= "Slovní zadání:\n{$data['text']}\n\n";
  189. // Soubor
  190. $content .= "Přiložený soubor:\n{$data['soubor']}\n\n";
  191. // Metody
  192. $content .= "Metody:\n";
  193. if ($data['metoda']['kvalita']) {
  194. $content .= $data['metoda']['kvalita'];
  195. }
  196. if ($data['metoda']['kvantita']) {
  197. $content .= "\n" . $data['metoda']['kvantita'];
  198. }
  199. $content .= "\n\n";
  200. // Vzorek populace
  201. $content .= "Vzorek populace:\n{$data['vzorek']}\n\n";
  202. // Region
  203. $content .= "Region:\n{$data['region']}\n\n";
  204. // Cena
  205. $content .= "Cena:\n{$data['cena']}\n\n";
  206. // Termin
  207. $content .= "Termin:\n{$data['termin']}\n\n";
  208. // Agentury
  209. $content .= "Oslovit agentury:\n";
  210. foreach($data['agentury'] as $key => $value) {
  211. if ($value) {
  212. $content .= $data['agentury_cached'][$value] . "\n";
  213. }
  214. }
  215.  
  216. $content .= "\n\n\n\n";
  217.  
  218. $content .= "________[ ZADAVATEL ]________\n\n";
  219. // Jmeno
  220. $content .= "Jméno a příjmení:\n{$data['jmeno']}\n\n";
  221. // E-mail
  222. $content .= "E-mail:\n{$data['email']}\n\n";
  223. // Telefon
  224. $content .= "Telefon:\n{$data['telefon']}\n\n";
  225. // Mobil
  226. $content .= "Mobil:\n{$data['mobil']}\n\n";
  227. // Spolecnost
  228. $content .= "Společnost:\n{$data['spolecnost']}";
  229.  
  230. $recs = implode(', ', $recipients);
  231.  
  232. $headers = '';
  233. $headers .= 'From: ' . $from . "\n";
  234. $headers .= 'Content-Type: text/plain; charset=utf-8' ."\n";
  235.  
  236. if (count($recipients_cc) > 0) {
  237. $recs_cc = implode(', ', $recipients_cc);
  238. $headers .= "cc:{$recs_cc}\n";
  239. }
  240.  
  241. if (count($recipients_bcc) > 0) {
  242. $recs_bcc = implode(', ', $recipients_bcc);
  243. $headers .= "bcc:{$recs_bcc}\n";
  244. }
  245.  
  246. $sent = mail($recs, $subj, $content, $headers);
  247.  
  248. if(!$sent) {
  249. drupal_set_message(t('Poptávku se nepodařilo odeslat. Zkuste akci opakovat.'), 'error');
  250. } else {
  251. drupal_set_message(t('Poptávka byla úspěšně odeslána. Děkujeme za využití naší služby.'));
  252. }
  253. }
Add Comment
Please, Sign In to add comment