Intégrer un code javascript dans une page Xml

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

  • [Problème] Intégrer un code javascript dans une page Xml

    Bonjour,

    Je rencontre une nouvelle difficulté. J'aimerai intégrer du JavaScript dans ma page xml. Ce code me permettrait de limiter le nombre de caractères dans mon "textarea". Ci dessous le code de ma page xml et plus bas, le code JavaScript permettant de limiter le nombre de caractère.

    Merci par avance pour votre aide!

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <extension
    	type="module"
    	version="1.0"
    	client="site"
    	method="upgrade">
    	<name>mod_monprojetphoto</name>
    	<author>Maurice Poupard</author>
    	<creationDate>2014</creationDate>
    	<copyright>Copyright (C) 2014 Maurice Poupard.</copyright>
    	<license>GNU General Public License version 2 or later</license>
    	<authorEmail>maurice.poupard@gmail.com</authorEmail>
    	<version>1.0</version>
    	<description>MOD_MONPROJETPHOTO_DESC</description>
    	<files>
    		<filename module="mod_monprojetphoto">mod_monprojetphoto.php</filename>
    		<folder>tmpl</folder>
    		<filename>helper.php</filename>
    		<filename>index.html</filename>		
    	</files>
    	<languages>
    		<language tag="fr-FR">language/fr-FR/fr-FR.mod_monprojetphoto.ini</language>
    		<language tag="fr-FR">language/fr-FR/fr-FR.mod_monprojetphoto.sys.ini</language>
    	</languages>
    	<config>
    		<fields name="params">
    			<fieldset name="basic">
    				<field name="photo" type="media" default="" label="MOD_MONPROJETPHOTO_PHOTO_LABEL" description="MOD_MONPROJETPHOTO_PHOTO_DESC"/>
    				<field name="description" type="textarea" default="" label="MOD_MONPROJETPHOTON_DESCRIPTION_LABEL" description="MOD_MONPROJETPHOTO_DESCRIPTION_DESC" filter="raw"/>
    			</fieldset>
    		</fields>
    	</config>
    </extension>
    Code:
    <script type="text/javascript">
    /* <![CDATA[ */
    function limite(zone)
    {
        var max = 200;
        if(zone.value.length >= max)
        {
            zone.value = zone.value.substring(0,max);
        }
        var reste = max - zone.value.length;
        document.getElementById('max_desc').innerHTML = reste;
    }
    /* ]]> */
    </script>

  • #2
    Re : Intégrer un code javascript dans une page Xml

    Bonjour,
    Il me semble que tu dois intégrer ton code dans le traitement de ton formulaire, pas dans sa déclaration...
    Au moment de la validation de ton formulaire (vraisemblablement un fichier php ou javascript), tu auras alors la possibilité d'intégrer ton code de vérification avant de lancer ta requête ou ton traitement.
    Cordialement,
    Chabi01 - http://www.xlformation.com

    Commentaire


    • #3
      Re : Intégrer un code javascript dans une page Xml

      Salut,
      je peux me tromper mais je n'ai jamais vu de code JS implémenté via une insertion dudit code dans un fichier xml.
      Dans joomla, il existe toutes sortes de solutions pour réaliser cela.

      Regarde ici :
      J3.x:Adding JavaScript and CSS to the page - Joomla! Documentation


      A priori, dans ton cas tu vas utiliser :
      $document->addScriptDeclaration
      PS : tu n'indiques pas dans quel environnement tu développes ton module : J3.X ou J2.5.X ?
      1er cas, mootools a quasiment disparu pour être remplacé par jQuery
      2e cas : mootools est encore bien présent
      Donc contexte assez différent.

      Autre solution

      Partant du principe que tu as créé un fichier monscript.js avec ton script :
      function limite(zone)
      {
      var max = 200;
      if(zone.value.length >= max)
      {
      zone.value = zone.value.substring(0,max);
      }
      var reste = max - zone.value.length;
      document.getElementById('max_desc').innerHTML = reste;
      }

      Il manque cette indication dans le tuto des docs :
      <files>
      <filename module="mod_monprojetphoto">mod_monprojetphoto.php </filename>
      <folder>tmpl</folder>
      <folder>assets</folder>
      <filename>helper.php</filename>
      <filename>index.html</filename>
      </files>
      CAD, la création d'un dossier nommé arbitrairement "assets" dans lequel tu peux ajouter un dossier "js" et un dossier "css".

      Une autre indication, spécifique aux modules et je pense, propre à joomla 3 (mais pas sur, faut tester),
      est omise dans le tuto des docs :

      dans le fichier tmpl/default.php
      tu peux appeler les fichiers js et css de cette manière
      JHtml::stylesheet('modules/'.$module->module.'/assets/css/styles.css');
      JHtml::script('modules/'.$module->module.'/assets/js/monscript.js');
      Si tu as besoin d'autres précisions, n'hésite pas.
      Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

      Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

      Commentaire


      • #4
        Re : Intégrer un code javascript dans une page Xml

        Envoyé par ghazal Voir le message
        Salut,
        je peux me tromper mais je n'ai jamais vu de code JS implémenté via une insertion dudit code dans un fichier xml.
        Dans joomla, il existe toutes sortes de solutions pour réaliser cela.

        Regarde ici :
        J3.x:Adding JavaScript and CSS to the page - Joomla! Documentation


        A priori, dans ton cas tu vas utiliser :


        PS : tu n'indiques pas dans quel environnement tu développes ton module : J3.X ou J2.5.X ?
        1er cas, mootools a quasiment disparu pour être remplacé par jQuery
        2e cas : mootools est encore bien présent
        Donc contexte assez différent.

        Autre solution

        Partant du principe que tu as créé un fichier monscript.js avec ton script :



        Il manque cette indication dans le tuto des docs :

        CAD, la création d'un dossier nommé arbitrairement "assets" dans lequel tu peux ajouter un dossier "js" et un dossier "css".

        Une autre indication, spécifique aux modules et je pense, propre à joomla 3 (mais pas sur, faut tester),
        est omise dans le tuto des docs :

        dans le fichier tmpl/default.php
        tu peux appeler les fichiers js et css de cette manière



        Si tu as besoin d'autres précisions, n'hésite pas.
        Merci pour tes précieux renseignement. Je boss actuellement avec la version 2.5 mais envisage dans un futur proche de migrer dans la version 3. J'ai utilisé la seconde proposition à savoir intégrer la ligne de code suivante
        Code:
        JHtml::script('modules/'.$module->module.'/assets/js/script.js');
        dans le fichier tmpl/default.php et créer un fichier script.js. Malheureusement, le code ne fonctionne pas.
        N'existe-il pas une méthode différente permettant de limiter le nombre de caractère directement lors de la rédaction dans la partie administration de mon module ?

        Merci encore à vous deux pour vos réponses

        Commentaire


        • #5
          Re : Intégrer un code javascript dans une page Xml

          Scuse, je n'avais pas compris, tu veux que ton script s'active dans la partie Admin/backend de ton module ?
          Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

          Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

          Commentaire


          • #6
            Re : Intégrer un code javascript dans une page Xml

            Envoyé par ghazal Voir le message
            Scuse, je n'avais pas compris, tu veux que ton script s'active dans la partie Admin/backend de ton module ?
            Je ne pensais pas à ça. Mais je pense ne pas avoir respecté la méthode d'activation du script, à savoir intégrer la ligne de code ci-dessous dans mon fichier /tmpl/default.php.

            Code:
            onkeyup="limite(this);" onkeydown="limite(this);"
            Après, je ne sais pas précisément où je dois l'intégrer dans ma ligne de code.
            En voici un extrait tiré de mon fichier /tmpl/default.php.
            Code:
            <?php if ($description): ?>
            		<div id="description"><p><?php echo htmlspecialchars($description); ?></p></div>
            	<?php endif; ?>
            Merci encore pour ton aide

            Commentaire


            • #7
              Re : Intégrer un code javascript dans une page Xml

              Aujourd'hui, avec les frameworks JS, il n'est plus indispensable d'introduire un appel JS dans le DOM (ou plus simplement mais moins précis, dans l'HTML).
              Genre :
              onkeyup="limite(this);
              Un bon script gère ceci en interne - cad dans le code du script JS.
              Il reste encore des traces de cette méthode dans joomla, à mon grand regret.

              MAIS ...
              JQuery a ceci de pratique, c'est qu'on peut toujours trouver un script qui fait ce qu'on veut faire.
              Regarde celui-ci :
              jQuery Max Length Reference


              qui me parait correspondre à ce que tu veux.

              Dans le cas de ce script (qui s'appuie sur jQuery),
              si ton module est pour ton propre usage et que jQuery est déjà présent dans ton template par ex,
              tu peux appeler les fichiers CSS et JS de cette manière ( toujours dans default.php) :

              // no direct access
              defined('_JEXEC') or die;
              $document = JFactory::getDocument();
              $doc->addStyleSheet(JURI::root() . 'modules/mod_tonmodule/css/tacss.js');
              $document->addScript(JURI::root() . 'modules/mod_tonmodule/js/tonscript.js');
              Méthode classique qui fonctionne encore en J3.

              Si ce n'est pas le cas, c'est un peu une autre histoire.
              Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

              Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

              Commentaire


              • #8
                Re : Intégrer un code javascript dans une page Xml

                Dsl pour la lenteur de ma réponse. J'ai résolu mon problème grâce à tes conseils. Je t'en remercie. Une dernière question qui n'a aucun rapport avec la précédente. Je voulais savoir s'il existait un module/pluging permettant de personnaliser l'arrière plan de mon template?

                Commentaire


                • #9
                  Re : Intégrer un code javascript dans une page Xml

                  module/pluging permettant de personnaliser l'arrière plan de mon template
                  Le module de Lomart, un membre du forum :

                  webbricks.org - bgMax - Image de fond ajustée


                  Discussion sur le forum qui lui est consacré :
                  bgMax, un module pour gérer l'image de fond


                  ou

                  PRI Background - Joomla! Extensions Directory-- pour J!3
                  Un message d’erreur sur votre site Joomla ... ayez le reflexe de consulter lla base de connaissance : https://kb.joomla.fr

                  Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer

                  Commentaire


                  • #10
                    Re : Intégrer un code javascript dans une page Xml

                    Dsl, je voulais savoir s'il était possible d'avoir un pluging/module capable de personnaliser l'arrière plan en fonction de l'utilisateur inscrit sur le site, voire un petit onglet qui apparait sur le côté et qui permet de personnalisé la couleur du site, un peu comme celui-ci (mais uniquement pour l'arrière plan )
                    http://demo.joomlashine.com/joomla-t.../pro/index.php

                    Merci par avance pour tes réponses

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X