2015-10-28 4 views
0

Je crée un module qui saisit l'utilisateur, le valide et affiche une image basée sur l'entrée de l'utilisateur. Voici mon code:Comment ajouter du HTML au module drupal 7?

<?php 

function fisheye_menu() 
{ 
    $items       = array(); 
    $items['examples/form-example'] = array(//this creates a URL that will call this form at "examples/form-example" 
     'title' => 'Fisheye fotografie', //page title 
     'description' => 'A form to mess around with.', 
     'page callback' => 'drupal_get_form', //this is the function that will be called when the page is accessed. for a form, use drupal_get_form 
     'page arguments' => array(
      'fisheye_form' 
     ), //put the name of the form here 
     'access callback' => TRUE 
    ); 
    return $items; 
} 
; 

function fisheye_form($form, &$form_state) 
{ 

    $form['datetime'] = array(
     '#type' => 'textfield', 
     '#title' => t('Vyberte dátum a čas'), 
     '#required' => TRUE 
    ); 

    $form['#attached']['js'] = array(
     drupal_get_path('module', 'fisheye') . '/3rdparty/jquery-ui-1.11.4/jquery-ui.js', 
     drupal_get_path('module', 'fisheye') . '/3rdparty/jQuery-Timepicker-Addon-master/dist/jquery-ui-timepicker-addon.js' 
    ); 

    $form['#attached']['css'] = array(
     drupal_get_path('module', 'fisheye') . '/3rdparty/jquery-ui-1.11.4/jquery-ui.css', 
     drupal_get_path('module', 'fisheye') . '/3rdparty/jQuery-Timepicker-Addon-master/dist/jquery-ui-timepicker-addon.css' 
    ); 

    drupal_add_js(' 
     jQuery(document).ready(function($) { 
     $("#edit-datetime").datetimepicker({ 
       dateFormat: "dd-mm-yy" 
      }); 
     });', 'inline'); 

    $form['submit'] = array(
     '#type' => 'submit', 
     '#value' => 'Submit' 
    ); 
    return $form; 
} 
; 

function fisheye_form_submit($form, &$form_state) 
{ 
    $dateTimeString = preg_replace("/[^0-9]/", "", $form_state['values']['datetime']); 
    $day   = substr($dateTimeString, 0, 2); 
    $month   = substr($dateTimeString, 2, 2); 
    $year   = substr($dateTimeString, 4, 4); 
    $hour   = substr($dateTimeString, 8, 2); 
    $minute   = substr($dateTimeString, 10, 12); 
    $dir   = "/meteo_data/IMStestMF/ImagesCameraFisheye/$year/$month/$day"; 
    $files   = file_scan_directory($dir, '/.*?/'); 
    drupal_set_message($dateTimeString); 
} 
; 

?> 

J'ai donc besoin d'un moyen d'afficher l'image après que le formulaire a été soumis. Je pourrais utiliser HTML qui créerait des tags avec un src correct (ou s'il y a un meilleur moyen, mal l'utiliser), mais comme je ne suis qu'un débutant en matière de drupal, je me sens vraiment perdu ici et je ne sais vraiment pas comment atteindre le résultat.

Répondre

0

Vous pouvez rediriger vers un rappel où vous pouvez prendre tous les paramètres souhaités et afficher l'image en fonction des paramètres.

Dans votre gestionnaire de soumission, utilisez drupal_goto ('votre_callback/$ année/$ mois/$ jour');

puis dans le rappel, vous pouvez imprimer l'image en utilisant le crochet de thème de votre module.

Merci

+0

Merci pour votre réponse, mais je l'ai déjà compris. J'utilise un formulaire avec ajax submit handler pour appeler ma fonction qui injecte html dans mon espace réservé (qui est le suffixe dans mon formulaire). –