• [Snippet] CALx -> Calendrier/agenda évènementiel#

  • Jabberwock Reply #1, 4 years, 11 months ago

    Reply
      Nouvelle version v0.8
      Bonjour,

      Voici un petit snippet de ma conception, sans prétention.

      Ce calendrier/agenda permet de plannifier plusieurs évènements sur une même période.

      Demo en ligne : CALx
      Quelques images
      L'interface général
      Lors du clic (ou survol suivant l'appel du snippet) sur une date, affichage avec un seul évènement planifié
      Lors du clic (ou survol suivant l'appel du snippet) sur une date, affichage avec plusieurs évènements planifiés
      Affichage de la liste des évènements planifiés (en français pour la version française)
      Change log : v0.8 [list]
      [list]
    • Ajout de la balise <thead></thead>
    • Ajout <td><acronym>lu</acronym></td>
    • Ajout d'un paramètre avec un nom d'id CSS, à l'utilisateur de changer si il y a plusieurs
      calendrier.
      Et par défaut : "#CALxContent".
    • Ajout des liens pour les évènements apparaissant sur des jours des mois suivants/précédents
    • Ajout du paramètre pour choisir l'affichage des liens précèdent/suivant
    • Rajout de la gestion des événements répétés uniquement si on utilise les TV.

    Note : Avec la répétition des événements, il faut bien séparer le rôle des deux dates.
    Il y a les paramètres : &dateStartTVName / &dateEndTVName qui correspondent
    dans le cas d'événements répétés aux jours ou l'événements a lieux,
    et les paramètres &TVstartDatePeriod/&TVendDatePeriod qui correspondent à la
    période de répétition.

    v0.7
      [list][li]modification de la gestion de la page des événements multiples.
      L'id du document qui reçoit l'appel du snippet pour l'affichage multiple
      est désormais obligatoire et doit être crée avant l'utilisation du snippet.
      Sans ce paramètre (&idMultiEvent), CALx ne s'affiche pas.
    Cette page est mis à jour en fonction des paramètre de l'appel principal de CALx.
    • correction d'un bug au passage à la nouvelle anée via un changement de mois
      ex : 12/2007 -> 01/2008
    • CALx supporte les sous répertoires.
      Le répertoire doit être publié pour que les évènements contenus apparaissent
    • ajout d'un paramètre pour choisir le mois de départ à afficher : &startMonth
    • ajout d'un paramètre pour choisir l'année de départ à afficher : &starYear
    • Les liens vers l'affichage de l'année entière et de tous les événements du mois
      ne sont plus crées.
      A la place deux placeholder sont générés :
      [+CALx_ShowFullYear_&idDocYear+]
      [+CALx_AllEventMonth_idDocMonthEvents+]
      Exemple :
      si &idDocYear=`21` le placeholder à la valeur : [+CALx_ShowFullYear_21+]
      si &dDocMonthEvents=`22` le placeholder à la valeur : [+CALx_AllEventMonth_22+]

    v0.6
      [list]
    • affichage d'un lien pour voir tous les événements du mois en cours
    • CALx permet d'afficher des événements s'étalant sur plusieurs mois
    • s'il le contenu ([*content*]) de l'événement ne contient pas d'information le lien "Cliquer ici pour plus de détail" dans l'info bulle n'apparait pas.
    • ajout d'un paramètre &showOtherMonth=`string` qui permet l'affichage des jours du mois précédent, du mois suivant, les deux, ou aucun.
      Les événements qui pourrait avoir lieu sur ces journées ne sont pas repris pour ne pas alourdir le calendrier.
    • ajout du paramètre &idDocMonthEvents=`ìnt`qui indique le numéro du document qui contient l'appel de CALx avec le paramètre &getTypeProcess=`showAllMonthEvent`
    • ajout d'un paramètre &chunkCSSName qui contient le nom du chunk contenant les classes CSS (voir les indications d'installationpour plus de détail)
    [/list]

    v0.5
    • affiche un message d'erreur si les noms de TV indiqués ne sont pas trouvés
    • ajout d'un paramètre 'idDocFullYear' qui indique la page qui contient
      l'appel du snippet de CALx avec le paramètre 'getTypeProcess=`showFullYear`
    • correction de bugs majeurs empêchant le focntionnement correct de CALx
    [/list]

    V0.4
    • correction du bug de choix de template pour le multi event
    • correction de bugs pour l'affichage utf8
    • amélioration de la lisibilité du code source lors de l'affichage par le navigateur
    • possibilité de choisir entre une gestion des dates de publications ou
      par TV.
    • ajout d'un paramètre pour indiquer le nom de la TV correspondant
      à la date de départ de l'évènement
    • ajout d'un paramètre pour indiquer le nom de la TV correspondant
      à la date de fin de l'évènement
    • XHTML 1.0 Transitional
    [/list]

    V0.3
    • ajout d'un paramètre pour le type d'info bulle :
      0 : l'infobulle apparait sur le survol, pas de lien cliquable
      1 : l'inobulle apparait sur un survol, mais permet de cliquer
      sur un lien
      2 : l'infobulle apparait sur un clic et permet de cliquer sur un lien
    • ajout d'un paramètre pour la taille de l'infobulle
    • ajout d'un paramètre pour la position de l'infobulle:
      LEFT, RIGHT, CENTER, ABOVE, BELOW
    • ajout d'un paramètre pour changer le premier jour de la semaine
      ex : 0 pour commencer au lundi, 6 pour commencer au dimanche
    • ajout d'un paramètre pour changer le jour d'inactivité (en France
      le dimanche par ex)
    [/list]

    V0.2
      [list]
    • fonctionne avec et sans javascript
    • modification de chemin pour fonctionner sur la 0.9.5
    • ajout de la gestion des fichiers de langue
    • ajout de flèches pour la navigation
    • ajout d'infobulle de type 'title'
    • ajout de class CSS pour styler la barre de navigation
    [/list]

    Pour utiliser la répétition des événements, il faut utiliser les TV pas le choix.
    Lors de l'utilisation de la répétition, les TV &dateStartTVName / &dateEndTVName n'ont plus tout à fait le même rôle.
    Ces deux TV indiquent à CALx les jours de répétitions à prendre en compte en fonction du type de répétition défini dans le TV
    &TVCalxRepeat.
    Par exemple, si je définis un événements comme ça :
    &dateStartTVName : 01/04/2008 (mardi)
    &dateEndTVName : 06/04/2008 (dimanche)
    &TVCalxRepeat = week
    Alors l'événement sera répété du mardi au dimanche toutes les semaines quelque soit la date.

    Si je mets :
    &dateStartTVName : 01/04/2008 (mardi)
    &dateEndTVName : 06/04/2008 (dimanche)
    &TVCalxRepeat = month
    Alors l'événement sera répété du 01/MM/2008 au 06/MM/2008, quelque soit le mois.

    Idem pour si l'événement est répété sur une année.

    Mais avec ce système l'événement est répété "ad vitam eternam", j'ai donc rajouté deux TV :
    &TVendDatePeriod / &TVstartDatePeriod Qui permettent, elles, de limiter la répétition dans le temps.
    Par exemple :
    &dateStartTVName : 01/04/2008 (mardi)
    &dateEndTVName : 06/04/2008 (dimanche)
    &TVCalxRepeat = week
    &TVendDatePeriod = 01/04/2008
    &TVstartDatePeriod = 01/06/2008
    Dans ce cas l'événement sera répété toutes les semaines pendant le mois d'avril, mai et juin.

    Voilà vous pouvez tester.

    J'ai quelques idées de modifications qui vont venir bientôt, mais je prends toutes remarques
    [/list]


  • davidm Reply #2, 4 years, 11 months ago

    Reply
    OK téléchargé et je vais certainement tester cette semaine ce snippet dont le concept sur le papier me plaît bien !

    Merci Jabberwock pour cette contrib'


  • heliotrope Reply #3, 4 years, 11 months ago

    Reply
    Salut,

    J'ai pas testé.
    Mais dans le code de la classe CAgenda tu as inscrit des chemins en dur qui risquent d'empecher le bon fonctionnement.


    //Lit le fichier et retroune l'id
    function readFileMultiEventsTXT(){
    if($this->fileMultiEventsTXT_exists()==true){
    $filename = 'c:\applications web\easyphp\www\modx\assets\snippets\agenda\multiEvents.txt'; $inF = fopen($filename,"r");
    $tt = fgets($inF, 4096);
    return $tt;
    }else{
    return -1;
    }
    return 0;
    }

    Tu devrais utiliser les variables de config de MODx pour ces opérations.
    $modx->config['base_path'] par exemple.

    :-)


  • Jabberwock Reply #4, 4 years, 11 months ago

    Reply
    erf bien vu l'aveugle
    Quel noob je fais :/

    C'est modifié, j'ai modifié l'archive dans le premier post.

    Merci Helio pour ton oeil de lynx.


  • Jabberwock Reply #5, 4 years, 11 months ago

    Reply
    Bonsoir,

    Un petit up avec un changement de nom

    Oui j'ai mis du temps à trouver un truc intéressant.

    CALx pour CALENDRIER et x pour Modx, facile.

    Ca fait aussi penser à Calice :
    La racine indo-européenne du mot Calice est *K°lik- = coupe, vase. On la retrouve dans le sanskrit Kalásas (coupe, pot) et Kalika (bouton de fleur), en grec ancien Kúliks (coupe), en latin calix (coupe, vase à boire).

    A l'origine, le mot calix / calice désigne donc une coupe à boire, sans anse et de n'importe quel matériau, bois, terre ou métal. Sa forme creuse, servant de réceptacle et de retenue de liquide, a servi par comparaison à désigner le calice de la fleur. (wikipédia)

    La version que j'ai uploadé, corrige deux trois bricoles.

    Quelques uns l'ont testé ?


  • davidm Reply #6, 4 years, 11 months ago

    Reply
    Pas encore (ça ne saurait tarder) mais au passage, CALx est un excellent nom


  • Zombie Reply #7, 4 years, 11 months ago

    Reply
    edit: HS

    @Jabberwock : le listing des événements apparaît dans la zone Content ?


  • aour Reply #8, 4 years, 11 months ago

    Reply
    Merci de lire la documentation sur l'usage des snippets, c'est un minimum sur Modx.


  • Jabberwock Reply #9, 4 years, 11 months ago

    Reply
    Quote from: aour at May 29, 2007, 01:33 PM
    Merci de lire la documentation sur l'usage des snippets, c'est un minimum sur Modx.
    C'est pour moi ?

    Si j'ai fait quelque chose d'incorrect dans le développement du snippet, tu peux me le dire et m'indiquer des pages d'aide plus précises plz ?

    Je viens de reparcourir la section Snippet (section développer de l'aide) et je ne vois aucunes indications typographiques/syntaxiques/contraintes/à faire/à ne pas faire.

    Je me suis inspiré de Kalender qui est qd même dans la section "officiel" des snippets Modx.


  • aour Reply #10, 4 years, 11 months ago

    Reply
    Re

    Non rassure toi Jabberwock, c'est uniquement pour la question d'akadama.