Vous n'êtes pas connecté - 0 membre connecté
Catégories
Graphisme
Flash (64)
Print (81)
Programmation
PHP (112)
ASP (2)
CSS (29)
Hardware
PC (41)
Mac (19)
Linux (8)
Divers
Blabla (346)
1247 Sujets
16531 Réponses
Programmation > PHP > calendrier d'évènements wor...
calendrier d'évènements wordpress
Salut les gueux,

Admettons que j'ai un wordpress installé et que je souhaite faire un calendrier d'événement dans la "sidebar".

Z'allez m'dire, y'a déjà un calendrier dans wordpress, oui mais non. Le calendrier inclus il fait :

- affichage dans une sidebard
- affichage des post en fonction de la date ou ils on été postés, toutes catégories confondues.

ce que j'aimerais faire :

créer une catégorie spéciale pour mes événement, en distinguant la date du post, de la date de l'évènement.

en gros, je veux pouvoir faire un post aujourd'hui pour leur dire qu'il y aura un truc dans une semaine, il faut donc que le post soit existant dès sa publication et que je spécifie une date d'événement qui n'est pas la date de publication (sinon le post sera publié le jour et l'heure de l'évènement, pas interessant donc)

le tout, affiché dans ma sidebar sur la home.

une idée ? un plugin magique avec le widget qui va bien ?

Merci les gens.

edit, option deux, je viens d'y penser, si on peut y mettre des événements facebook, c'est cool aussi !
Posté le 16 01 2012 à 17h48
Neoblue - Modérateur - www

Réponses - calendrier d'évènements wor...
Un petit dessin?
Posté le 16 01 2012 à 19h00
o0o - Administrateur - www
 

<?
    
// Calcule date précédente, suivante

    
$lesmois = array("Janvier""Février""Mars""Avril""Mai""Juin""Juillet""Août""Septembre""Octobre""Novembre""Décembre");

      if(isset(
$_GET['date'])) { $ladate $_GET['date']; }else{ $ladate date("Y-m-01"); }
    
    
$annee date("Y"strtotime($ladate));
    
$mois date("m"strtotime($ladate));
    
    if(
$mois-1) { $dateavant = ($annee-1)."-12-01"; } else { $dateavant $annee."-".($mois-1)."-01"; }
    if(
$mois+12) { $dateapres = ($annee+1)."-01-01"; } else { $dateapres $annee."-".($mois+1)."-01"; }

    if(
date("w"strtotime($ladate))== 0) { $debutvide 6; } else { $debutvide date("w"strtotime($ladate))-1; }
    
    if(
$debutvide+date("t"strtotime($ladate)) > 35) {
    
          
$finvide 41-($debutvide+date("t"strtotime($ladate)));
    
    }
    else{
    
        
$finvide 34-($debutvide+date("t"strtotime($ladate)));
    
    }

    
// Récupération des événements

    
$req date("Y-m",strtotime($ladate));
    
$query "SELECT date,evenement FROM liv_calendrier WHERE DATE_FORMAT(date,'%Y-%m')='$req'";
    
$result mysql_query($query) or die("Requête échouée");
    
$num_rows mysql_num_rows($result);

    if(
mysql_num_rows($result) <> 0) {
    
        
$i=0;
        
        while(
$row mysql_fetch_array($result)) {
            
            
$even_date[$i] = date("j"strtotime($row['date']));
            
$evenements[$i] = $row['evenement'];
            
$i++;
        
        }
    }
    else{
        
        
$even_date[0] = "";
        
$evenements[0] = "";
 
    }
?>
<div class="calendrier">
  <p class="calendrier_texte"><a href="<? echo $_SERVER['PHP_SELF']."?date=".$dateavant?>" class="nogeneral">«</a>  <? echo $lesmois[date("m",strtotime($ladate))-1]." ".date("Y",strtotime($ladate)); ?>  <a href="<? echo $_SERVER['PHP_SELF']."?date=".$dateapres?>" class="nogeneral">»</a> </p>
  <table class="calendrier" summary="Calendrier <? echo $lesmois[date("m",strtotime($ladate))-1]." ".date("Y",strtotime($ladate)); ?>">
    <tr>
      <th class="calendrier_jours">Lu</th>
      <th class="calendrier_jours">Ma</th>
      <th class="calendrier_jours">Me</th>
      <th class="calendrier_jours">Je</th>
      <th class="calendrier_jours">Ve</th>
      <th class="calendrier_jours">Sa</th>
      <th class="calendrier_jours">Di</th>
    </tr>
    <?
    $jours 
1;
    
    for(
$i=0$i <= $debutvide+date("t"strtotime($ladate))+$finvide$i++) {

        if(
$i%== 0) echo "<tr>";
        
        if(
$i >= $debutvide && $i $debutvide+date("t"strtotime($ladate))) {
            
            
$affiche $jours;
            
$genre "calendrier_dates";
            
            if(
array_keys($even_date$jours)) {

                
$nbrcomment array_keys($even_date$jours);
                
$affiche "<span title="";
                
                for(
$nc=0; $nc < count($nbrcomment); $nc++) {
                
                    //
$affiche .= ($nc+1)."".$evenements[$nbrcomment[$nc]]." ";
                    
$affiche .= "".$evenements[$nbrcomment[$nc]]." ";
                    
                }
                
                
$genre = "calendrier_evenements";
                
$affiche .= "">".$jours."</span>";
            }
            
            
$jours++;
        }
        else {
            
            
$affiche "";
            
$genre "";
        }
?>
    <td class="<? echo $genre?>"><? echo $affiche?></td>
<?
        
if($i%== 6) echo "</tr>";
    }
?>
  </table>
</div>
Avec ce script t'as juste a créé ta table d'evenement. tu peux y rajouter des catégories si tu veux. C'est celui que j'utilisais sur life in vector. ça date un peu mais ça marche au poil.
Posté le 16 01 2012 à 19h41
Geoffroy - Membre - www
 un exemple de mise en forme de ce calendrier :



/*

            < CALENDRIER >
                                    */
                                    
.calendrier {
    background-color: #FFFFFF;
    padding-left: 2px;
    text-align: center;
    }

.calendrier_texte {
    color: #E53790;
    margin: 0px;
    padding: 0 5px 20px 5px;
    text-align: center;
    cursor: default;
    }

table.calendrier {
    width: 205px;
    }

.calendrier_jours {
    background-color: #82AFDD;
    color: #FFFFFF;
    height: 20px;
    margin: 0px;
    padding: 0px;
    width: 27px;
    text-align: center;
    }
    
td.calendrier_dates {
    background-color: #B5D9FB;
    cursor: default;
    height: 20px;
    width: 27px;
    text-align: center;
    }

td.calendrier_evenements {
    background-color: #5EA2E1;
    color: #FFFFFF;
    cursor: help;
    text-align: center;
    }

Posté le 16 01 2012 à 19h46
Geoffroy - Membre - www
je reprends avec un exemple concret,

j'organise un vernissage pour une galerie d'art.

je crée donc une note de blog aujourd'hui présentant l'événement dans la catégorie ad-hoc. Contenu d'un post classique (texte, image, vidéos etc...) + informations de type : date, heure, lieu.

je veux afficher en sidebar de la home page, un calendrier affichant UNIQUEMENT la catégorie des post "événements" (ça j'ai trouvé un plugin : Calendar Category)
seulement, ce plugin m'affiche la date de création de mon post, et non pas la date de l'événement (normal puisque je ne l'ai rentrée nulle part)

Je pourrais entrer la date future a la main, comme date du post, mais ça n'afficherais le post que le jour J et l'heure H, hors je veux que mon post soit lisible tout le temps, et pas seulement à partir du début de l'événement.

Cherry on the cake la création du post crée l'événement sur la page facebook de la galerie d'art (j'ai vu qu'il existe un plugin facebook connect et un plugin de création d'évenement, mais j'ai pas réussi a les faire fonctionner, j'ai des erreurs php dans tout les sens, donc concentrons nous d'abord sur les fonctions de base)
Posté le 16 01 2012 à 19h50
Neoblue - Modérateur - www
en fait la solution la plus simple serait de bullshiter la date du post pour y coller la date de l'événement, et forcer l'affichage du post meme s'il n'est pas encore en ligne

edit, bon j'ai trouvé ça wordpress.org qui permet de faire ce que je viens de dire au dessus, mais le souci c'est que ça marche pas avec le "calendar category" je creuse encore...
Posté le 16 01 2012 à 20h51
Neoblue - Modérateur - www
wordpress.org a l'aire bien, avec shortcode et tout. Mais bon tu as dû déjà bien consulter wordpress.org

eDit: le code de Geo a l'aire cool :D
- pour face book, ça doit exister :o
Posté le 17 01 2012 à 09h22
o0o - Administrateur - www
ouai je l'avais testé mais j'ai pas réussi a le faire marcher comme je voulais, y'aura donc pas de calendrier mais une liste de post événements a venir dans la sidebard, les X prochains et basta.

le top serait que "calendar category" affiche correctement les post "futurs" mais il veut pas le bougre, et comme je suis bien incapable de le modifier moi même, ça ira très bien comme ça.
Posté le 17 01 2012 à 09h47
Neoblue - Modérateur - www
You are a master calendar!
Posté le 19 01 2012 à 08h13
o0o - Administrateur - www
rohh ouai une master calendar, j'aimerais bien tiens...
Posté le 19 01 2012 à 11h27
Neoblue - Modérateur - www
Partenaires

Sujets PHP
<< 1 2 3 ... 11 12 >>
notepad++ et les (...)
Auteur : Pierrot
Posté le 24 02 2012 à 22h41
57 Réponses (Nouveau sujet)
Sujet visité 54552 fois
Joomla et plugin (...)
Auteur : o0o
Posté le 01 03 2012 à 21h18
1 Réponse (Nouveau sujet)
Sujet visité 8583 fois
CMS Multi Site et (...)
Auteur : Narno
Posté le 26 01 2007 à 12h28
16 Réponses (Nouveau sujet)
Sujet visité 13345 fois
calendrier (...)
Auteur : Neoblue
Posté le 16 01 2012 à 17h48
9 Réponses (Nouveau sujet)
Sujet visité 9709 fois
trois tables dans (...)
Auteur : escoffierp
Posté le 04 12 2011 à 22h03
4 Réponses (Nouveau sujet)
Sujet visité 8887 fois
Symfony 2
Auteur : o0o
Posté le 29 11 2011 à 16h14
4 Réponses (Nouveau sujet)
Sujet visité 8200 fois
PHP / MVC / POO / ORM / (...)
Auteur : RGSONE
Posté le 05 07 2011 à 12h10
25 Réponses (Nouveau sujet)
Sujet visité 14755 fois
mon pot
Auteur : senkante
Posté le 09 04 2011 à 09h31
14 Réponses (Nouveau sujet)
Sujet visité 12876 fois
cake
Auteur : Geoffroy
Posté le 22 03 2011 à 08h07
4 Réponses (Nouveau sujet)
Sujet visité 10821 fois
Cakephp
Auteur : o0o
Posté le 02 03 2011 à 09h25
4 Réponses (Nouveau sujet)
Sujet visité 11511 fois
<< 1 2 3 ... 11 12 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006