Creation d'un module pour un composant deja existant:recuperation de donnees

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [Problème] Creation d'un module pour un composant deja existant:recuperation de donnees

    Bonjour,

    Je suis entrain d'essayer de modifier un composant pour créer/y integrer une page de recherche minimale (nouveau fichier a integrer dans le composant que j'appelerais quicksearch.php) contenant par exemple uniquement une partie du code du fichier views/resume/tmpl/jobsearch.php.

    J'ai donc conclus en définitif qu'il fallait creer un module pour se composant dont le fichier quickjobsearch.php est ci-dessous.
    Seulement, mes variables ne sont pas initialisées lorsque ce module est affichée de façon unique sur une page alors qu'elles le sont lorsque le composant JS Jobs lui même l'est.


    D'avance merci pour votre aide,

    Sphere369

    quickjobsearch.php

    Code:
    <?php
    
    $option = JRequest :: getVar('option', 'com_jsjobs');
    
    defined('_JEXEC') or die('Restricted access');
    
    jimport('joomla.html.pane');
    
    $editor = & JFactory :: getEditor();
    JHTML :: _('behavior.calendar');
    
    global $mainframe;
    
    $document = &JFactory::getDocument();
    $width_big = 40;
    $width_med = 25;
    $width_sml = 15;
    
    ?>
    
    <link rel="stylesheet" type="text/css" media="all" href="<?php echo $mainframe->getBasePath(); ?>components/com_jsjobs/css/<?php echo $this->config['theme']; ?>" />
    <table cellpadding="0" cellspacing="0" border="0" width="100%" class="contentpane">
       
       <tr><td>
          <?php
             if (sizeof($this->joblinks) != 0){   
                foreach($this->joblinks as $lnk)   { ?>
                <?php echo $lnk; ?>
             <?php }
             } ?>
          </td>
       </tr>
       
       <tr><td height="1">
          </td>
       </tr>
       
       <tr><td> <!--Liens pour les recherches par categorie, recherche d'offre d'emploi, ma selection d'offre, curriculum vitae/profil personnel -->
          <?php
             if (sizeof($this->emplinks) != 0){   
                foreach($this->emplinks as $lnk)   { ?>
                <?php echo $lnk; ?>
             <?php }
          }?>
          </td>
       </tr>
       
    </table>
    
    
    <!--<form action="index.php" method="POST" name="adminForm" enctype="multipart/form-data">-->
    <form action="index.php?option=com_jsjobs&c=jsjobs&view=resume&layout=jobsearchresults&Itemid=<?php echo $this->Itemid; ?>" method="post" name="adminForm" id="adminForm">
        <input type="hidden" name="isjobsearch" value="1" />
       <table cellpadding="5" cellspacing="0" border="0" width="100%" class="adminform">
          <tr>
            <td width="20%" align="right"><?php echo JText::_('Mot cles'); ?></td> <!-- "Titre de l'Offre d'Emploi:" -->
              <td width="60%"><input class="inputbox" type="text" name="title" size="40" maxlength="50"  /> <!-- champs mot cles pour l'offre d'emploi -->
            </td>
    
            <td align="right"><?php echo JText::_('JP_CITY'); ?></td> <!-- "Pays" -->
            <td id="city">
                <input class="inputbox" type="text" name="city" size="20" maxlength="30"  />
            </td>
          </tr>
       <tr>
          <td colspan="2" align="center">
          <input type="submit" class="button" name="submit_app" onclick="document.adminForm.submit();" value="<?php echo JText::_('Rechercher'); ?>" />
          </td>
       </tr>
        </table>
    
             <input type="hidden" name="view" value="resume" />
             <input type="hidden" name="layout" value="jobsearchresults" />
             <input type="hidden" name="uid" value="<?php echo $this->uid; ?>" />
             <input type="hidden" name="option" value="<?php echo $option; ?>" />
             <input type="hidden" name="task11" value="view" />
             
           
           
     
    </form> 
    <script language=Javascript>
    function dochange(src, val){
       var xhr;
       try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
       catch (e)
       {
          try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
          catch (e2)
          {
            try {  xhr = new XMLHttpRequest();     }
            catch (e3) {  xhr = false;   }
          }
        }
    
       xhr.onreadystatechange = function(){
       
          if(xhr.readyState == 4 && xhr.status == 200){
    
               document.getElementById(src).innerHTML=xhr.responseText; //retuen value
    
             if(src=='state'){
             countyhtml = "<input class='inputbox' type='text' name='county' size='40' maxlength='100'  />";
             cityhtml = "<input class='inputbox' type='text' name='city' size='40' maxlength='100'  />";
             document.getElementById('county').innerHTML=countyhtml; //retuen value
             document.getElementById('city').innerHTML=cityhtml; //return value
             }else if(src=='county'){
                cityhtml = "<input class='inputbox' type='text' name='city' size='40' maxlength='100'  />";
                document.getElementById('city').innerHTML=cityhtml; //return value
             }
    
          }
        }
    
       xhr.open("GET","index2.php?option=com_jsjobs&task=listsearchaddressdata&data="+src+"&val="+val,true);
       xhr.send(null);
    
    }
    
    window.onLoad=dochange('country', -1);         // value in first dropdown
    </script>
              
    </form>
    Dernière édition par Sphere369 à 27/08/2009, 17h57

  • #2
    Bonsoir, Apparement, il faut utliser un autre operateur de joomla que $this->, mais seulement je ne sais pas lequel.

    Juste pour dire que si quelqu'un pouvait me donner un coup de sur le sujet ce serait genial.
    Dernière édition par Sphere369 à 27/08/2009, 19h43

    Commentaire


    • #3
      Bonsoir anonyme,

      Merci pour ton aide.

      Comment est ce que j'appelle le fichier en question qui est dans un composant et depend lui meme d'autres fichiers du même composant (mvc)?

      J'ai mis dans le fichier .php de mon module l'instruction suivante :
      Code:
      require_once("http://localhost/sitejoomla/components/com_jsjobs/views/resume/tmpl/jobsearch.php" );
      et je recois le mesage suivant:

      Warning: require_once() [function.require-once]: URL file-access is disabled in the server configuration in C:\xampplite\htdocs\sitejoomla\modules\mod_quickjo bs\mod_quickjobs.php on line 2

      Warning: require_once(http://localhost/sitejoomla/componen.../jobsearch.php) [function.require-once]: failed to open stream: no suitable wrapper could be found in C:\xampplite\htdocs\sitejoomla\modules\mod_quickjo bs\mod_quickjobs.php on line 2

      Fatal error: require_once() [function.require]: Failed opening required 'http://localhost/sitejoomla/components/com_jsjobs/views/resume/tmpl/jobsearch.php' (include_path='.;C:\xampplite\php\pear\') in C:\xampplite\htdocs\sitejoomla\modules\mod_quickjo bs\mod_quickjobs.php on line 2
      Dernière édition par Sphere369 à 27/08/2009, 22h45

      Commentaire


      • #4
        et ce que ton module a un parser?

        pou faire la liaison dans virtuemart il faut mettre ceci dans le code
        // Load the virtuemart main parse code
        if( file_exists(dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' )) {
        require_once( dirname(__FILE__).'/../../components/com_virtuemart/virtuemart_parser.php' );
        } else {
        require_once( dirname(__FILE__).'/../components/com_virtuemart/virtuemart_parser.php' );
        }
        ce qui simplifie extrêmement la tache
        http://www.st42.fr : Astuce et téléchargement d’extension Joomla! et virtuemart
        http://shop.st42.fr Catalogue extentions gratuit et Pro pour Virtuemart et Joomla

        Commentaire


        • #5
          Bonjour Electrocity,

          Non, mon module ne contient pas de parser (de memoire ce dernier est une sorte de variable), mais je m'en vais sur le champ voir si je ne peux pas en integrer un dans mon fichier .php en question.

          Commentaire


          • #6
            Je viens d'essayer ta méthode mais soit les variables ne sont pas initialisees soit j'obtiens une erreur '500'.

            Il faut noter que les variables qui doivent être initialisées sont définis dans le fichier fr-FR.com_jsjobs.ini que j'ai installée dans le composant (dossier admin).

            Pour plus d'éclaircissement, si tu as/vous avez un peu de temps voici ci-joints les fichiers en question.


            mod_quickjobs.zip : module que j'essaye de créer.

            jsjobs.zip : fichier du composant.

            jsjobs_french.zip : pack de langage que j'ai installé apres avoir installe le composant.
            Fichiers joints

            Commentaire


            • #7
              J'ai trouvée la reponse dans un autre forum. Il fallait rajouter :
              Code:
              $lang = &JFactory::getLanguage();
              $lang->load('com_jsjobs');
              Seulement, une fois que je lance la recherche je me retrouve sur une page disant ceci :

              500 - Affichage introuvable [NOM, TYPE, PREFIX] resume,html,contentView

              Vous ne pouvez pas visiter cette page car :

              1. bookmark/favoris périmé
              2. Un moteur de recherche possède un listing périmé pour ce site
              3. une adresse erronée
              4. vous n'avez pas accès à cette page
              5. La ressource demandée n'a pas été trouvée
              6. Une erreur est survenue pendant l'exécution de la requête.

              Veuillez essayer l'une des pages suivantes :

              * Page d'accueil

              Si les difficultés persistent, merci de contacter l'administrateur de ce site.

              Commentaire


              • #8
                Hello,
                Je n'ai pas eu le temps de jeter un coup d'oeil à ton module mais je peux juste te faire une petite remarque : si tu utilises un "require", tu dois spécifier un "path" et pas une "url"
                Code PHP:
                require_once( JPATH_SITE DS 'components' DS 'ton_composant' DS 'ton_fichier' 
                Pense à utiliser DS au lieu du slash pour que tes chemins soient compatibles avec les systèmes windaube.

                Manu.
                Développeur de FLEXIcontent : Nouveau système de gestion de contenu et CCK gratuit pour Joomla! 1.5 www.flexicontent.org
                www.vistamedia.fr : Création de sites internet professionnels sous Joomla
                *** Pas de demandes de support en MP ***

                Commentaire


                • #9
                  Bonjour Vistamedia,

                  Merci pour l'info. Je m'en vais egalement tester cela de ce pas.

                  A bientôt,

                  Commentaire


                  • #10
                    Lorsque j'inclus

                    Code:
                    require_once( JPATH_SITE . DS . 'components' . DS . 'com_jsjobs' . DS . '/jsjobs.php' );
                    ou

                    son équivalent :

                    Code:
                    require_once( dirname(__FILE__).'/../../components/com_jsjobs/jsjobs.php' );
                    J'obtiens un autre type d'erreur 500 :

                    500 - Unknown controller:
                    jsjobs:C:\xampplite\htdocs\sitejoomla\components\com_content\controllers\jsjobs.php

                    Vous ne pouvez pas visiter cette page car :

                    1. bookmark/favoris périmé
                    2. Un moteur de recherche possède un listing périmé pour ce site
                    3. une adresse erronée
                    4. vous n'avez pas accès à cette page
                    5. La ressource demandée n'a pas été trouvée
                    6. Une erreur est survenue pendant l'exécution de la requête.

                    Veuillez essayer l'une des pages suivantes :

                    * Page d'accueil

                    Si les difficultés persistent, merci de contacter l'administrateur de ce site.

                    Unknown controller:
                    jsjobs:C:\xampplite\htdocs\sitejoomla\components\com_content\controllers\jsjobs.php

                    Commentaire


                    • #11
                      Envoyé par anonyme
                      Oui c'est juste, tu va galérer.
                      C'est le moins que l'on puisse dire

                      Le problème c'est que tu veux mettre la charrue avant les boeufs. Il te manque des fondamentaux pour te lancer dans ce développement. Il faudrait sans doute que tu reprennes certain concepts de PHP pur et qu'ensuite tu te plonges dans l'API de Joomla.
                      Je sais que c'est chiant, mais malheureusement il faut passer par là.
                      Même si tu ne connait pas tout, ça te permettra au moins d'isoler les problèmes pour poser les bonnes questions. Ensuite, quand tu sauras poser les bonnes questions, il y a plein de gens de bonne volonté sur ce forum qui seront succeptibles de t'aider.

                      Concernant les références Joomla, tu as le lien que t'as donné anonyme dans le précédant post, mais aussi ce livre : http://www.packtpub.com/joomla-one-p...ook/fin-joomla qui est la bible du développeur Joomla.

                      Bonne route petit scarabé

                      Amicalement,
                      Manu.
                      Développeur de FLEXIcontent : Nouveau système de gestion de contenu et CCK gratuit pour Joomla! 1.5 www.flexicontent.org
                      www.vistamedia.fr : Création de sites internet professionnels sous Joomla
                      *** Pas de demandes de support en MP ***

                      Commentaire


                      • #12
                        Bonjour Flyo6, Vistamedia,

                        Merci pour vos conseils et pour le lien (ce bouquin m'a l'air tres utile).

                        A bientot,

                        Sphere369

                        Commentaire


                        • #13
                          Hello,

                          Juste pour vous dire que j'ai eu réponse a mon problème ici

                          Sinon je viens d'acheter le bouquin de Vistamedia.

                          A bientôt,

                          Sphere369
                          Dernière édition par Sphere369 à 29/09/2009, 19h38

                          Commentaire

                          Annonce

                          Réduire
                          1 sur 2 < >

                          C'est [Réglé] et on n'en parle plus ?

                          A quoi ça sert ?
                          La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                          Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                          Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                          Comment ajouter la mention [Réglé] à votre discussion ?
                          1 - Aller sur votre discussion et éditer votre premier message :


                          2 - Cliquer sur la liste déroulante Préfixe.

                          3 - Choisir le préfixe [Réglé].


                          4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                          2 sur 2 < >

                          Assistance au forum - Outil de publication d'infos de votre site

                          Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                          Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                          Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                          UTILISER À VOS PROPRES RISQUES :
                          L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                          Problèmes connus :
                          FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                          Installation :

                          1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                          Archive zip : https://github.com/AFUJ/FPA/zipball/master

                          2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                          3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                          4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                          5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                          6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                          et remplacer www. votresite .com par votre nom de domaine


                          Exemples:
                          Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                          Télécharger le script fpa-fr.php dans: /public_html/
                          Pour executer le script: http://www..com/fpa-fr.php

                          Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                          Télécharger le script fpa-fr.php dans: /public_html/cms/
                          Pour executer le script: http://www..com/cms/fpa-fr.php

                          En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                          Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                          Voir plus
                          Voir moins
                          Travaille ...
                          X