Composant Appointment Book JoomlaXTC

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

  • Composant Appointment Book JoomlaXTC

    Bonjour,

    sur conseil bien avisé sur ce forum j'ai installé le composant Appointment Book de chez JoomlaXTC...
    Pour être tout à fait sincère, je ne comprends pas le fonctionnement pour la mise en place d'un agenda permettant la prise de rendez-vous pour une clientèle de professions libérales en santé et répondant à certains critères :
    - avoir des créneaux horaires différents, avec des pauses le midi (par exemple le mardi de 8h à 12h, le mercredi de 8h à 12h et de 14h à 18h, le jeudi de 13h30 à 16h30 ...)
    - pouvoir définir le temps des créneaux (par 1/4 d'heure par exemple, temps de consultation ...)
    - pouvoir définir l'exclusion de différentes périodes (vacances)
    Je souhaite que le patient puisse saisir directement son rendez-vous en fonction des créneaux disponibles, laisser à ce moment son nom, adresse mail, numéro de téléphone et un message facultatif. Ces informations n'apparaitraient pas pour la partie visible du site et le seraient pour le professionnel à partir de l'administration. Possibilité d'envoi d'un mail pour récapitulatif de la prise de rendez-vous.
    Après une discussion avec le support JoomlaXTC, on m'a expliqué que le composant ne répondrait pas à toutes mes demandes mais qu'il était modifiable à volonté... Donc c''est parti !
    Sauf que pour commencer, la mise en place d'un agenda ne m'apparait pas si simple. J'ai créé un agenda, défini les jours travaillés, le temps de consultation (duration), il n'y a pas possibilité de définir des heures différentes pour les jours travaillés, seules une heure de début et de fin sont paramétrables, pas de temps de pauses non plus ...
    Ensuite je ne vois vraiment pas où régler les différents champs à saisir par l'usager pour laisser les informations souhaitées ...
    J'avoue je ne suis pas très doué sur ce coup là ! pour pas dire plus.
    En plus vu l'échange avec le support je me suis surtout mis en tête de voir si j'étais capable de modifier le code pour obtenir quelques options supplémentaires, ce que j'ai commencé à faire, non sans mal, mais qui permet quand même de définir deux créneaux horaires par jour, de définir donc une pause dans la journée, de ne plus afficher avant la date en cours les plannings pour les visiteurs du site. Je me heurte concrètement à la modification de la base de données pour un champ ajouté (case à cocher pour définir une coupure ou pas, je récupère bien l'information mais je ne peux l'enregistrer à partir de l'administration). Bref je suis content d'avancer mais je me demande si c'est vraiment dans le bon sens.
    J'ouvre donc ce sujet pour converser sur ce composant, qu'on m'explique déjà comment il fonctionne de base, ce qu'on peut espérer en tirer, jusqu'où et les limites et enfin des améliorations simples qu'on pourrait apporter. Je sais qu'il y des utilisateurs qui le connaissent bien, et que c'est un sujet récurrent de trouver un tel outil qui corresponde aux différentes attentes énoncées.
    Dans l'attente de vous lire. Merci
    Loïc

    j'oubliais je suis sur joomla 2.5, faudra me dire également s'il devient réellement plus judicieux de commencer à ce familiariser avec la version 3 ....

  • #2
    Re : Composant Appointment Book JoomlaXTC

    Bonjour,

    Pour être tout à fait sincère, je ne comprends pas le fonctionnement pour la mise en place d'un agenda permettant la prise de rendez-vous pour une clientèle de professions libérales en santé et répondant à certains critère
    Ce n'est pas particulièrement complexe, dès lors qu'on a compris la logique du composant.

    Commencer par l'onglet Configuration.

    Les paramètres système permettent de définir le typage des dates et heures, si on veut recevoir les notifications par email (voire SMS si on est abonné à une passerelle mail vars sms) lors des demandes de rendez-vous, le style d'agenda (en général la valeur par défaut convient), le type de moteur de captchas anti robots de spam.

    Le formulaire de réservation permet de créer un design pour le formulaire, avec paragraphe d'introduction (pour indiquer les modalités ou ce qu'on veut, y compris image sou vidéos... Il faut simplement que sur une ligne vide de ce texte on insère la balise {calendar} pour y insérer le formulaire et ses éléments.

    Les modèles Email permettent de personnaliser tous les emails du composant, chaque type d'email pouvant contenir des variables qui s'incluent dans le texte avec la syntaxe donnée {date} par exemple...

    Ceci étant fait, enregistrer la configuration et passer à l'étape suivante.
    Pas de demande de support par MP.
    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

    Commentaire


    • #3
      Re : Composant Appointment Book JoomlaXTC

      Etape 2

      Gestion des Agendas

      Commencer par créer un agenda (ou un agenda par personne s'il y a plusieurs praticiens).

      Commencer par nommer l'agenda (le plus simple dans un cabinet médical étant d'utiliser par exemple Dr. Knock si le praticien est le célèbre Knock ou Dr. Mabuse si... etc)
      Disponibilité, cocher les cases correspondant aux jours d'ouverture du cabinet.

      Identifiant propriétaire. Permet, parmi les utilisateurs Joomla!, de définir à quel praticien appartient cet agenda (sera utilisé pour envoyer les emails de prise de rendez-vous et autres éléments).

      Planning quotiden: heure de début et de fin de l'ouverture. Si pause le midi, on verra plus loin comment les gérer.
      Durée des rendez-vous: durée par défaut de chaque rendez-vous, par tranche de 5 minutes, donc très souple. Il ne s'agit qu edes durées par défaut, utilisées pour le calcul des occupations et disponibilités, les durées pouvant être modifiées lors des demandes de rendez-vous.

      Visibilité du calendrier: soit publique, soit uniquement les utilisateurs enregistrés (permet de demander aux clients réguliers de se créer un compte et des astuces permettant de les rendre prioritaires)

      Redirection: vers un article Joomla! expliquant pourquoi par exemple il faut s'inscrire pour pouvoir demande run rendez-vous...

      Activer le captcha: il vaut mieux l'activer pour éviter que des robots de spam remplissent les agendas.
      Pas de demande de support par MP.
      S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

      Commentaire


      • #4
        Re : Composant Appointment Book JoomlaXTC

        Les champs de rendez-vous.

        Permettent de définir selon les professions jusque 10 paramètres qui seront requis lors du remplissage du formulaire (ligne de texte, bloc de texte, bouton radio, menu de choix, ou bloc à choix multiple). Dans le champ type, donner le titre du champ personnalisé, et le rendre obligatoire et activé.

        Le profil agenda est assez similaire à l'élément de la configuration système. On peut y mettre un texte d'introduction, des images ou ce qu'on veut. La seule obligation est un élément {booking_form} sur une ligne vide, cette balise provoquant l'affichage à la fois du calendrier de sélection de date, le sélecteur d'heure et le formulaire à remplir.

        Pour les astuces et autres, il suffira de demander
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Composant Appointment Book JoomlaXTC

          Super merci, c'est un bon début. Bon donc j'ai fait les différentes étapes. OK. Puis j'ai créé deux agendas ... Dr Knock et Mabuse ... l'un disponible uniquement pour les utilisateurs enregistrés, l'autre public ... OK
          puis à partir du menu 4 choix pour voir à quoi ça ressemble quand même !
          1- gestion d'agenda : je n'ai toujours pas compris comment ça marche, il y a un formulaire d'identification et la réponse est il n'y a pas d'agenda assigné à cet utilisateur (même quand l'utilisateur enregistré correspond à l'identifiant propriétaire (Owner User ID dans le paramétrage Manage calendar) message systématique Sorry, you do not have any calendar assigned yet
          2- profil d'agenda : permet d'accéder à tous les agendas avec leur pitit texte introductif ...
          3- la prise de rendez-vous pour un agenda déterminé : OK
          4- le gestionnaire de rendez-vous : qui permet pour l'utilisateur enregistré de retrouvé sa demande de rendez-vous, de l'éditer voir la supprimer, pratique !

          Donc effectivement c'est plutôt sympa, je perçois un peu mieux l'utilisation de base.
          Je ne peux pas tout tester puisque je suis en localhost (à moins que j'ai aussi loupé quelque chose de côté là), donc pas d'envoi de mail de confirmation pour l'utilisateur, ni pour le "propriétaire" d'agenda pour le prévenir, pas de captcha non plus...
          Par contre,

          Je n'ai pas constaté la possibilité de pouvoir modifier la durée de la consultation, ni lors de la prise de rendez-vous, ni même dans la partie administration gestion des rendez-vous ... il y a quelque chose qui m'échappe.

          Les champs que l'on ajoute sont sous l'appellation demande de service (bon on peut le changer facilement via le fichier de langue)

          Il me faudrait l'astuce permettant de changer les horaires selon les jours et pour la pause du midi. Et savoir aussi s'il est possible de retirer des jours de congés par exemple, les exclure de l'agenda...

          L'option d'une passerelle mail vers sms parait intéressante aussi.

          Commentaire


          • #6
            Re : Composant Appointment Book JoomlaXTC

            On va procéder par étapes

            Il y a des réponses à tout ça, mais pas à plus de 23 heures un samedi

            Mais au moins déjà:
            Je ne peux pas tout tester puisque je suis en localhost
            En local sous Windows ou Mac, et sauf si on a un serveur SMTP local, les mails ,ne fonctionnent pas (pas un problème Joomla!, mais de la platedorme utilisée).

            Donc effectivement c'est plutôt sympa, je perçois un peu mieux l'utilisation de base.
            Oui, vraiment de base

            1- gestion d'agenda : je n'ai toujours pas compris comment ça marche, il y a un formulaire d'identification et la réponse est il n'y a pas d'agenda assigné à cet utilisateur (même quand l'utilisateur enregistré correspond à l'identifiant propriétaire (Owner User ID dans le paramétrage Manage calendar) message systématique Sorry, you do not have any calendar assigned yet
            Là il va falloir jouer aussi avec les droits Joomla On va prendre le temps d'expliquer le pourquoi et le comment.

            2- profil d'agenda : permet d'accéder à tous les agendas avec leur pitit texte introductif ...
            Très pratique dans le cas de multi agenda, pour que le visiteur du site choisisse en connaissance de cause à qui il veut s'adresser. L'exemple en config ets très simple, mais on peut aller très loin dans ce texte (genre si ça vous chatoiuille ou gratouille, prenez un rendez voius avec Knock, si vous avez des envies de meurtre, avec le Mabuse )
            4- le gestionnaire de rendez-vous : qui permet pour l'utilisateur enregistré de retrouvé sa demande de rendez-vous, de l'éditer voir la supprimer, pratique !
            ça fait partie des points forts de l'interaction entre le demandeur et le praticien.

            Je n'ai pas constaté la possibilité de pouvoir modifier la durée de la consultation, ni lors de la prise de rendez-vous, ni même dans la partie administration gestion des rendez-vous ... il y a quelque chose qui m'échappe.
            Au moins en mode production (sur un serveur), le praticien peut pour chaque rendez-vous, en modifier, lorsqu'il le consulte, en changer la durée (une bobologie genre rhume ne prenant pas autant de temps qu'un cancer du pancréas avec effets secondaires du traitement). Lors d'un changement dans l'état du rendez-vous, le composant recalcule le tout et peut envoyer des mails de redéfinition de l'heure du rendez-vous aux utiulisateurs dont le rendez-vous doit être décalé.

            Il me faudrait l'astuce permettant de changer les horaires selon les jours et pour la pause du midi. Et savoir aussi s'il est possible de retirer des jours de congés par exemple, les exclure de l'agenda...
            Le propriétaire de chaque agenda peut se mettre ses propres plages privées (pause repas, vacances a&ux Bahames aux frais d'un labo pharmaco ..) dans ses plages de dates.
            L'option d'une passerelle mail vers sms parait intéressante aussi.
            Là, ce n'est plus le composant ou Joomla!, mais ce que l'hébergeur ou un autre service peut proposer. Mais c'est vrai que cette option peut se révéler très pratique.
            Pas de demande de support par MP.
            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

            Commentaire


            • #7
              Re : Composant Appointment Book JoomlaXTC

              Merci jisse03.

              Le changement de l'amplitude du créneau horaire ne se ferait donc que sur serveur pas en localhost ?
              si j'installe joomla pas à la racine (genre www.monsite.org/test/monsite_joomla tout s'installe à partir de ce répertoire où d'autres fichiers seront copiés ailleurs ? parce que sinon effectivement je dois pouvoir récupérer un bout d'espace pour tester ça sur serveur

              Je suis preneur pour les droits joomla permettant à l'utilisateur assigné à son agenda de pouvoir le visualiser avec toutes ses infos, de pouvoir l'éditer (rendez-vous, ajouter, supprimer ....)

              Tiens, un aparté, si on a un utilisateur enregistré pour éditer les principaux articles, comment on fait pour qu'il puisse publier/déplublier/éditer un module (module d'annonce de fermeture du cabinet en première page). Est-ce possible sans passer par la partie administration du site (genre le module est tout prêt, reste plus qu'à pouvoir publier ou dépublier et modifier pour les dates). Si ce n'est pas possible je ferai une programmation, si j'arrive à avoir les dates en avance comme ça ça s'affiche tout seul...

              Pour qu'on soit bien d'accord, la proposition d'aménagement des heures pour les pauses, c'est de remplir soit même manuellement les créneaux actifs ? Pour les vacances il faut faire pareil ?

              bon ça avance effectivement ...

              Commentaire


              • #8
                Re : Composant Appointment Book JoomlaXTC

                Si tu installe sun jommla dans un sous répertoire en hénergement, tout ce qui le concerne se trouvera concentré dans cet espace.

                Pour le changement d'un créneau rendez-vous, chaque praticien peut directement, en se rendant sur ce rendez-vous, en changer la durée, ce qui provoque d'office le recalcul de son planning.

                Pour l'aparté, seul un utilisateur avec des droits admin et (sauf peut-être dans la prochaine 3.3 de Joomla!) uniquement en administrator peut publier/dépublier un module.

                Oui, dans la version actuelle du composant, se fait directement dans les agendas.

                Il doit être possible (je regarderai ça) d'étendre ce fonctionnement pour pouvoir gérer 3 ou 4 plages horaires par défaut.
                Pas de demande de support par MP.
                S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                Commentaire


                • #9
                  Re : Composant Appointment Book JoomlaXTC

                  Bonjour,

                  je ne trouve pas très ergonomique de remplir des plages soi même pour les rendre indisponibles, ça ne me convient pas.

                  J'ai donc continué sur ma lancée et continué de modifier ce composant très intéressant. Puisqu'il n'y a que deux entrées par jour (heure de début, variable start, et fin de journée, variable end) j'ai ajouté des entrées intermédiaires et ajouté une case "coupure" (si il y a une coupure alors on prend deux créneaux horaires en compte). Bon j'avoue je ne suis pas un habitué de la programmation en php/sql, donc je regarde le code, j'essaie de comprendre comment ça marche, en parallèle je visite internet .... bref il y a sûrement des améliorations à apporter ! (pour ne pas dire des corrections). J'ai une grande frustration par exemple, je ne sais pas si au final c'est vraiment très utile, si c'est vraiment réalisable, mais le top serait d'afficher telle ou telle information en fonction d'une case cochée ou pas. Dans le composant, dans l'administration par exemple, si l'utilisateur coche "pas travaillé le dimanche" ça ne sert à rien d'afficher le reste de la question (quels créneaux horaires pour dimanche ...), si l'option "coupure" n'est pas active, rien ne sert non plus d'afficher un deuxième créneau horaire ... mais il faudrait quand même faire passer certaines informations dans le formulaire en hidden ...
                  Je vous soumets donc mes modifs si ça intéresse quelqu'un aussi ou pour faire un truc plus propre ...
                  Dernière édition par _Lolo à 03/12/2013, 11h38

                  Commentaire


                  • #10
                    Re : Composant Appointment Book JoomlaXTC

                    Pour commencer notons les différentes pages qui vont nous servir :
                    Je ne veux modifier (pour l'instant) que la partie horaires de l'agenda (jxtc_appbook_calendars dans la base de données). Les fichiers qui y référent pour le côté administration sont : pour la partie formulaire form.php (administrator/components/com_jxtcappbook/viws/parent/tmpl/form.php). Il est associé au fichier view.html.php (administrator/com_jxtcappbook/views/parent/view.html.php) qui permet de traiter à part les informations entrantes de la base de données pour les inclure dans le formulaire (form.php)

                    Appointment Book fonctionne avec le dimanche comme premier jour (day0).
                    D'origine il y a donc deux horaires, start et end. J'ai en premier créé dans la table agenda d'autres entrées :
                    start_day0_AM (associé à) end_day0_AM et start_day0_PM (associé à) end_day0_PM
                    start_day1_AM (associé à) end_day1_AM et start_day1_PM (associé à) end_day1_PM
                    etc ...

                    J'ai créé aussi des variables de coupure (pour différencier 1 seul créneaux dans la journée ou 2 créneaux)
                    coupure_day0, coupure_day1, coupure_day2 ...

                    puis dans le fichier formulaire j'ai modifié comme suis :
                    d'origine l'appel de l'input pour sélectionner les jours se fait lignes 164-174
                    Code PHP:
                            <tr>
                                <td width="110" class="key">
                                <span class="hasTip"
                                      title="Availability::Days available for appointments.">
                                    <?php echo JText::_('APPBOOK_AVAILABILITY'); ?>:
                                </span>
                                </td>
                                <td>
                                <?php echo $this->availabilitySelector?>
                                </td>
                            </tr>
                    et fait appel à (là je pêche, je ne sais pas comment vous appelez ça, fonction ?) availabilitySelector qui se trouve dans le fichier view.html.php cité plus haut lignes 100-119
                    Code PHP:
                        // Make Availability selector
                        
                    $days = array('su' => JText::_('APPBOOK_SUNDAY'), 'mo' => JText::_('APPBOOK_MONDAY'), 'tu' => JText::_('APPBOOK_TUESDAY'), 'we' => JText::_('APPBOOK_WEDNESDAY'), 'th' => JText::_('APPBOOK_THURSDAY'), 'fr' => JText::_('APPBOOK_FRIDAY'), 'sa' => JText::_('APPBOOK_SATURDAY'));

                        
                    $availabilitySelector '<table border="0" cellpadding="1" cellspacing="0"><tr>';
                        
                    $availabilitySelector .= '<td align="center">' JText::_('APPBOOK_SU') . '</td>';
                        
                    $availabilitySelector .= '<td align="center">' JText::_('APPBOOK_MO') . '</td>';
                        
                    $availabilitySelector .= '<td align="center">' JText::_('APPBOOK_TU') . '</td>';
                        
                    $availabilitySelector .= '<td align="center">' JText::_('APPBOOK_WE') . '</td>';
                        
                    $availabilitySelector .= '<td align="center">' JText::_('APPBOOK_TH') . '</td>';
                        
                    $availabilitySelector .= '<td align="center">' JText::_('APPBOOK_FR') . '</td>';
                        
                    $availabilitySelector .= '<td align="center">' JText::_('APPBOOK_SA') . '</td>';
                        
                    $availabilitySelector .= '</tr><tr>';
                        for (
                    $i 0$i <= 6$i++) {
                            
                    $day 'day' $i;
                            
                    $value $row->$day;
                            
                    $checked $value 'checked="yes"' '';
                            
                    $availabilitySelector .= '<td align="center"><input type="checkbox" name="' $day '" id="' $day '" value="Y" ' $checked '/></td>';
                        }
                        
                    $availabilitySelector .= '</tr></table>';
                        
                    $this->assignRef('availabilitySelector'$availabilitySelector); 
                    J'ai mis du temps à comprendre comment ça marchait, mais au final il y a un autre fichier calendars.php (administrator/components/com_jxtcappbook/tables/calendars.php) qui remet à zéro toutes les variables. En fait pour la checkbox, on prend la valeur, si elle est pour nous positive (choix validé) on affiche le input avec la valeur positive (mettons 1 pour oui, 0 pour non) et nous intégrons un checked positif si nous avons 1 (donc choix coché) et rien si nous avons 0 (donc choix pas coché, ça parait c.. à dire mais moi ça m'aide !). Donc nous avons un input avec toujours la même valeur renvoyée soit 1, et une case cochée ou pas cochée, si elle n'est pas cochée, la valeur attribuée sera celle du fichier calendars.php soit donc 0. Le tour est joué (et ça m'a pris du temps !)

                    Commentaire


                    • #11
                      Re : Composant Appointment Book JoomlaXTC

                      Bref, perso j'ai compilé toutes les informations dans une seule boucle, balayant tous les jours de la semaine : à savoir, le jour travaillé, la coupure (deux créneaux) et les créneaux eux-mêmes.
                      Pour les créneaux, d'origine le composant n'en traite que deux : start et end comme suit :
                      fichier form.php
                      Code PHP:
                                  <table border="0" cellpadding="1" cellspacing="0">
                                      <tr>
                                      <td align="center"><?php echo JText::_('APPBOOK_FROM'); ?></td>
                                      <td></td>
                                      <td align="center"><?php echo JText::_('APPBOOK_TO'); ?></td>
                                      </tr>
                                      <tr>
                                      <td align="center"><?php echo $this->startSelector?></td>
                                      <td align="center">&nbsp;-&nbsp;</td>
                                      <td align="center"><?php echo $this->endSelector?></td>
                                      </tr>
                                  </table>
                                  </td>
                              </tr>
                      pas très compliqué, comme pour les jours travaillés, on fait appel à .. une fonction (?) dans view.html.php
                      Code PHP:
                          $endSelector JHTML::_('select.genericlist'$times'end''class="inputbox"''value''text'$row->end);
                          
                      $this->assignRef('endSelector'$endSelector); 
                      J'ai tout mis ensemble pour obtenir dans form.php
                      Code PHP:
                      <?php        
                                  $semaine 
                      = ['Dimanche','Lundi','Mardi','Merecredi','Jeudi','Vendredi','Samedi'];
                                  for ( 
                      $jour=$jour<$jour++) {
                                  echo 
                      '<table border="0" cellpadding="1" cellspacing="0">';
                                  echo 
                      '<tr><td colspan="7" align="center">';
                                  
                      $day_available 'day'.$jour;
                                  
                      $value $this->row->$day_available;
                                  
                      $checked $value 'checked="yes"' '';
                                  echo 
                      '<input type="checkbox" name="' $day_available '" id="' $day_available '" value="Y" ' $checked '/>&nbsp;&nbsp;<b>'.$semaine[$jour].'</b> <em>(Cochez si ce est jour travaillé)</em>';
                                  echo 
                      '</td></tr>';
                                  echo 
                      '<tr><td> &nbsp;</td></tr>';
                                      echo 
                      '<tr><td colspan="7">';
                                      
                      $coupure 'coupure_day'.$jour;
                                      
                      $valeur_coupure $this->row->$coupure;
                                      
                      $checked $valeur_coupure 'checked="yes"' '';
                                      echo 
                      '<em>Si la journée est composée de deux créneaux horaires, cochez cette case : <input type="checkbox" name="'.$coupure.'" id="'.$coupure.'" value ="1" '.$checked.' /><br />';
                                      echo 
                      'S\'il n\'y a pas qu\'un créneau, le créneau de la journée pris en compte est le 1er créneau.</em>';
                                  echo 
                      '</td></tr>';
                                  echo 
                      '<tr><td> &nbsp;</td></tr>';
                                  echo 
                      '<tr><td colspan="3" align="center"><b>Horaires 1<sup>er</sup> créneau</b></td>';
                                  echo 
                      '<td>&nbsp;</td>';
                                  echo 
                      '<td colspan="3" align="center"><b>Horaires 2<sup>ème</sup> créneau</b></td></tr>';
                                  echo 
                      '    <tr>';
                                  echo 
                      '        <td align="center">';
                                          if (
                      $jour == 0) { echo $this->startSelector_day0_AM; }
                                           elseif (
                      $jour == 1) { echo $this->startSelector_day1_AM; }
                                            elseif (
                      $jour == 2) { echo $this->startSelector_day2_AM; }
                                             elseif (
                      $jour == 3) { echo $this->startSelector_day3_AM; }
                                              elseif (
                      $jour == 4) { echo $this->startSelector_day4_AM; }
                                               elseif (
                      $jour == 5) { echo $this->startSelector_day5_AM; }
                                                else { echo 
                      $this->startSelector_day6_AM; }
                                  echo
                      '</td>';
                                  echo 
                      '        <td align="center">&nbsp;-&nbsp;</td>';
                                  echo 
                      '        <td align="center">';
                                          if (
                      $jour == 0) { echo $this->endSelector_day0_AM; }
                                           elseif (
                      $jour == 1) { echo $this->endSelector_day1_AM; }
                                            elseif (
                      $jour == 2) { echo $this->endSelector_day2_AM; }
                                             elseif (
                      $jour == 3) { echo $this->endSelector_day3_AM; }
                                              elseif (
                      $jour == 4) { echo $this->endSelector_day4_AM; }
                                               elseif (
                      $jour == 5) { echo $this->endSelector_day5_AM; }
                                                else { echo 
                      $this->endSelector_day6_AM; }
                                  echo
                      '</td>';
                                  echo 
                      '<td>&nbsp;</td>';
                                  echo 
                      '        <td align="center">';
                                          if (
                      $jour == 0) { echo $this->startSelector_day0_PM; }
                                           elseif (
                      $jour == 1) { echo $this->startSelector_day1_PM; }
                                            elseif (
                      $jour == 2) { echo $this->startSelector_day2_PM; }
                                             elseif (
                      $jour == 3) { echo $this->startSelector_day3_PM; }
                                              elseif (
                      $jour == 4) { echo $this->startSelector_day4_PM; }
                                               elseif (
                      $jour == 5) { echo $this->startSelector_day5_PM; }
                                                else { echo 
                      $this->startSelector_day6_PM; }
                                  echo
                      '</td>';
                                  echo 
                      '        <td align="center">&nbsp;-&nbsp;</td>';
                                      echo 
                      '        <td align="center">';
                                          if (
                      $jour == 0) { echo $this->endSelector_day0_PM; }
                                           elseif (
                      $jour == 1) { echo $this->endSelector_day1_PM; }
                                            elseif (
                      $jour == 2) { echo $this->endSelector_day2_PM; }
                                             elseif (
                      $jour == 3) { echo $this->endSelector_day3_PM; }
                                              elseif (
                      $jour == 4) { echo $this->endSelector_day4_PM; }
                                               elseif (
                      $jour == 5) { echo $this->endSelector_day5_PM; }
                                                else { echo 
                      $this->endSelector_day6_PM; }
                                  echo
                      '</td>';
                                  echo 
                      '    </tr>';
                                  echo 
                      '</table><br />';}    
                      ?>
                      et modifié (bon là je vous l'accord c'est loin d'être optimisé mais je ne me rappelle plus trop pourquoi, j'ai eu quelques soucis donc j'ai laissé en l'état ... fichier view.html.php
                      Code PHP:
                          $startSelector_day0_AM JHTML::_('select.genericlist'$times'start_day0_AM''class="inputbox"''value''text'$row->start_day0_AM);
                          
                      $this->assignRef('startSelector_day0_AM'$startSelector_day0_AM);
                          
                          
                      $startSelector_day0_PM JHTML::_('select.genericlist'$times'start_day0_PM''class="inputbox"''value''text'$row->start_day0_PM);
                          
                      $this->assignRef('startSelector_day0_PM'$startSelector_day0_PM); 
                      etc ... et donc pareil pour chaque fin de créneau ...
                      Code PHP:
                          $endSelector_day0_AM JHTML::_('select.genericlist'$times'end_day0_AM''class="inputbox"''value''text'$row->end_day0_AM);
                          
                      $this->assignRef('endSelector_day0_AM'$endSelector_day0_AM);

                          
                      $endSelector_day1_AM JHTML::_('select.genericlist'$times'end_day1_AM''class="inputbox"''value''text'$row->end_day1_AM);
                          
                      $this->assignRef('endSelector_day1_AM'$endSelector_day1_AM); 
                      pour ceux qui ont le composant et qui peuvent suivre, d'origine il y a une sécurité pour les définitions des bornes horaires (start>end !)
                      Code PHP:
                      duration = form.min_duration.value;
                              durationSecs = ((duration.substr(0,2)-0) * 3600) + ((duration.substr(3,2)-0) * 60) + (duration.substr(6,2)-0);
                              start = form.start.value;
                              startSecs = ((start.substr(0,2)-0) * 3600) + ((start.substr(3,2)-0) * 60) + (start.substr(6,2)-0);
                              end = form.end.value;
                              endSecs = ((end.substr(0,2)-0) * 3600) + ((end.substr(3,2)-0) * 60) + (end.substr(6,2)-0);
                              if ( (endSecs-startSecs) < durationSecs ) { error = error + "<?php echo JText::_('APPBOOK_ERRORSTARTANDENDTIMESDONTMATCHDURATION'true); ?>\n"; }
                      Bon là pareil, je n'ai pas fait dans le détail, je l'ai supprimé, faudrait remettre pour vérifier tous les start_dayxx_AM endAM PM ... bref

                      Donc pour la partie administration, pour l'instant c'est fini ! Je souhaite quand même dans les prochains jours ajouter des variables complémentaires pour des plages de vacances (ou non travaillées) et aussi de limiter dans le temps la consultation et l'édition de l'agenda (je ne vois pas trop l'intérêt de pouvoir mettre un rendez-vous dans deux ans ... même si ça dépend de la spécialité !)

                      Je refais un autre post un peu plus tard pour la partie site et affichage de toutes ces modifications côté administration.

                      Commentaire


                      • #12
                        Re : Composant Appointment Book JoomlaXTC

                        Bonjour,
                        Envoyé par _Lolo Voir le message
                        je ne trouve pas très ergonomique de remplir des plages soi même pour les rendre indisponibles, ça ne me convient pas.
                        Bien que parmi les plus évolués des composants de ce type, il est vrai qu'il n'est pas parfait.

                        J'ai un peu regardé les modifications apportées, qui sont effectivement fonctionnelles.

                        Mais, à mon avis, il faudrait repenser certains aspects du composant, et là, la tâche est plus lourde.

                        Il faudrait pouvoir, en configuration générale, définir des schémas de scénarios supplémentaires, qui pourraient ensuite être appliqués aux divers agendas, par exemple les jours ouvrés, y compris une gestion automatique des jours fériés (en autorisant les exceptions, par exemple pour les cabinets médicaux en astreinte)..
                        Et en administration de chaque agenda, autoriser la définition de périodes de vacances, y ajouter les RDV de groupe (liaison avec les agendas d'autres utilisateurs pour définir des plages communes pour un RDV commun ou une réunion). Plus d'autres idées du même type, mais pouvant concerner d'autres corps de métier.

                        Mais ceci implique de revoir complètement l'architecture du composant, pour éviter ensuite les bricolages.
                        Pas de demande de support par MP.
                        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                        Commentaire


                        • #13
                          Re : Composant Appointment Book JoomlaXTC

                          Bonjour,
                          Pouvez-vous me dire si Appointment Book JoomlaXTC existe en version française ou s'il est francisable via un outil de trad ?
                          Par avance, merci.

                          Commentaire


                          • #14
                            Re : Composant Appointment Book JoomlaXTC

                            Appointment Book utilise les fichiers langue .ini standard. Il est donc simple de le traduire soit manuellement, soit à l'aide d'un composant genre localise.
                            Pas de demande de support par MP.
                            S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                            Commentaire


                            • #15
                              Re : Composant Appointment Book JoomlaXTC

                              Ok parfait. Merci pour ta réponse rapide. Si besoin de + d'infos, je posterai à nouveau !

                              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