2013-06-17 3 views
0

Je suis en train de coder un petit script en PHP pour que les utilisateurs puissent se renseigner sur les images qu'ils ont dans leur lightbox en utilisant un plugin Joomla. Cependant, parce que je n'ai aucune idée de la façon de créer un plugin Joomla et que j'ai besoin de déployer cette fonctionnalité rapidement, j'ai créé le script en dehors de Joomla et je l'ai juste inclus là où j'en ai besoin.Joomla Form to External Script

Voici le script que j'ai codé (pas encore terminé).

<?php 

    /* 
     SETUP SCRIPT WITH JOOMLA SETTINGS 
    */ 

    include('../configuration.php'); 
    $getConf = new JConfig(); 

    $config = array(
     'script_url' => '/custom/gallery.php', 
     'url' => 'index.php/home/k2-tags/gallery/my-favorites', 
     'current_state' => $_GET['state'], 

     'host' => $getConf->host, 
     'table' => $getConf->db, 
     'user' => $getConf->user, 
     'pass' => $getConf->password, 
     'db_prefix' => $getConf->dbprefix, 

     'user_id' => $user->id, // OBTAINED FROM INCLUDER PAGE IN JOOMLA 

     'tb_joomla_users' => $getConf->dbprefix . 'users', 
     'tb_datso_favorites' => $getConf->dbprefix . 'datsogallery_favorites', 
     'tb_datso_master' => $getConf->dbprefix . 'datsogallery' 
    ); 

    echo '<div id="datsocustom">'; 

    // ADD THE EMPTY GALLERY BUTTON 
    //echo '<a href="' . $config['url'] . '"><button style="float:left;">EMPTY GALLERY</button></a>'; 

    // CHECK WHAT STATE THE SCRIPT IS IN AND ACT ACCORDINGLY 
    if($config['current_state'] == '') 
    { 
     // Show button if state is default 
     echo '<a href="' . $config['url'] . '?state=processing"><button style="float:right;">SEND ENQUIRY</button></a>'; 
     echo '<div style="clear:both;"></div>'; 
    } 
    elseif($config['current_state'] == 'processing') 
    { 
     // Show ordering form if button is clicked 
     if(isset($_POST['order_form'])){ 
      require('mysqli.php'); 
      $db = new DB($config); 
     } 

     echo "<p>Listed below are copies of all the images that you currently have in your gallery. if you'd like us to check the availability of these images please enter the product type and territory.</p>"; 
     echo "<p>These details will then be emailed to us directly and we will reply as soon as we can with the availability information.</p>"; 

     echo '<form method="post" action="' . $config['url'] . '?state=processing" style="padding:10px;">'; 

     echo '<label>Please enter any notes about the nature of your enquiry</label><br />'; 
     echo '<textarea name="enquiry_info" id="enquiry_info" style="width:100%; height:150px; padding:5px; border:1px solid #CCC; font-size:12px;"></textarea><br />'; 

     echo '<label>To help us check availability please specify the kind of usage you need for the images in this enquiry</label><br />'; 
     echo '<label>Product List</label>'; 
     echo '<select>'; 
     echo '<option>Default</option>'; 
     echo '</select><br />'; 
     echo '<label>Territory</label>'; 
     echo '<select>'; 
     echo '<option>Default</option>'; 
     echo '</select><br />'; 

     echo '<button type="submit" style="float:right;" name="send_enquiry">SUBMIT ENQUIRY</button>'; 
     //echo '<input type="submit" style="float:right;" value="SUBMIT ENQUIRY" name="send_enquiry" />'; 

     echo '</form>'; 

     echo '<div style="clear:both;"></div>'; 
    } 
    elseif($config['current_state'] == 'success') 
    { 
     // Show success message if order has processed 
    } 
    elseif($config['current_state'] == 'failed') 
    { 
     // Show error message if order has not been processed 


     echo '<a href="' . $config['url'] . '"><button style="float:right;">TRY AGAIN</button></a>'; 
     echo '<div style="clear:both;"></div>'; 
    } 
    elseif($config['current_state'] == 'empty_gallery') 
    { 

    } 

    echo '</div>'; 

Le principal problème est que quand je poste le formulaire dans Joomla, il envoie à l'utilisateur à l'URL -> index.php/home/étiquettes-K2/galerie au lieu de index.php/home/K2- tags/gallery/my-favorites? état = traitement.

Joomla remplace-t-il les formulaires par hasard? Parce que je pense que c'est le problème. Si quelqu'un peut me donner un conseil quoi que ce soit, ce serait grandement apprécié.

Répondre

0

Ne mettez pas ?state=processing dans l'attribut action du formulaire.

Quelque part dans la forme (de préférence au début ou à la fin) mis:

echo '<input type="hidden" name="state" value="processing"/>'; // XHTML assummed 
+0

Merci pour le commentaire, mais cela ne fonctionne toujours pas laisser le poste de formulaire correctement. J'ai essayé ceci et il m'envoie toujours à la fin d'URL/galerie. –

+0

L'attribut 'action' du formulaire est-il correctement défini lorsque vous affichez la source de la page dans le navigateur? – ElmoVanKielmo

+0

action = "index.php/home/k2-tags/galerie/mes-favoris" - Affiche également? State = traitement lorsque j'ajoute cela aussi. –