par
blinz » 16 juin 2014, 17:26
Bon voilà l'avancement, désormais j'arrive intégrer une annonce de la page
(sortie.php) à la page
(mon_profil.php)
J'aimerais maintenant que la date de l'annonce rajouté dans
(mon_profil.php) mette en couleur la case de la date du calendrier de la page
(date.php)
Le code: ( je sais une partie est faite à l'ancienne )
Page mon_profil.php
<div class="container">
<?php
require('date.php');
$date = new Date();
$year = date('Y');
$events = $date->getEvents($year);
$dates = $date->getAll($year);
?>
<div class="periods">
<div class="year"><?php echo $year; ?></div>
<div class="months">
<ul>
<?php foreach ($date->months as $id=>$m): ?>
<li><a href="#" id="linkMonth<?php echo $id+1; ?>"><?php echo utf8_encode(substr(utf8_decode($m),0,3)); ?></a></li>
<?php endforeach; ?>
</ul>
</div>
<div class="clear"></div>
<?php $dates = current($dates); ?>
<?php foreach ($dates as $m=>$days): ?>
<div class="month relative" id="month<?php echo $m; ?>">
<table>
<thead>
<tr>
<?php foreach ($date->days as $d): ?>
<th><?php echo substr($d,0,3); ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<tr>
<?php $end = end($days); foreach($days as $d=>$w): ?>
<?php $time = strtotime("$year-$m-$d"); ?>
<?php if($d == 1 && $w != 1): ?>
<td colspan="<?php echo $w-1; ?>" class="padding"></td>
<?php endif; ?>
<td<?php if($time == strtotime(date('Y-m-d'))): ?> class="today" <?php endif; ?>>
<div class="relative">
<div class="day"><?php echo $d; ?></div>
</div>
<div class="daytitle">
<?php echo $date->days[$w-1]; ?> <?php echo $d; ?> <?php echo $date->months[$m-1]; ?>
</div>
<ul class="events">
<?php if(isset($events[$time])): foreach($events[$time] as $e): ?>
<li><?php echo $e; ?></li>
<?php endforeach; endif; ?>
</ul>
</td>
<?php if($w == 7): ?>
</tr><tr>
<?php endif; ?>
<?php endforeach; ?>
<?php if($end != 7): ?>
<td colspan="<?php echo 7-$end; ?>" class="padding"></td>
<?php endif; ?>
</tr>
</tbody>
</table>
</div>
<?php endforeach; ?>
</div>
<div class="clear"></div>
<!-- REQUETE POUR INSERTION DES FAVORIS DE L'UTILISATEURS SUR LE CALENDRIER -->
<?php
$resultat = mysql_query("SELECT * FROM favoris f LEFT JOIN simply_user su ON f.`id_simply_user` = su.`id_simply_user` LEFT JOIN loisirs l ON f.`id_loisir` = l.`id_loisirs` WHERE su.`id_simply_user` =".$_SESSION['userid']);
while($loisirs=mysql_fetch_array($resultat)) { ?>
<?php $date_sortie = DateTime::createFromFormat('Y-m-d', $loisirs['date_debut_sortie']);?>
<?php $date = DateTime::createFromFormat('Y-m-d H:i:s', $loisirs['date_debut_sortie']);?>
<?php $datef = DateTime::createFromFormat('Y-m-d H:i:s', $loisirs['date_fin_sortie']);?>
<!--Contenu d'une annonce-->
<div class="col-md-4 col-sm-6 marg15">
<div class="wrap">
<div class="corner">GRATUIT</div>
<?php if(!empty($loisirs['photo'])){?><img class="img-responsive" src="<?php echo $loisirs['photo'];?>" width="100px"><?php }?>
<h3><?php echo $loisirs['titre']; ?></h3>
<p><?php echo $loisirs['sous_titre']; ?></p>
<p class="desc"><?php echo substr($loisirs['description'], 0, 100).'...'; ?></p>
<a href="annonce_zoom.php?id=<?php echo $loisirs['id_loisirs'];?>" > <input class="look pull-right" type="button" value="CONTINUER"></a>
<a href="sup_favoris.php?id=<?php echo $loisirs['id_loisirs']; ?>">Supprimer</a>
</div>
</div>
<!--Fin Contenu d'une annonce-->
<?php }?>
</div>
La partie de code qui me permet de rajouter l'annonce dans la page mon_profil (add_favoris.php)
<?php
session_start();
include("conndb.php");
if(isset($_SESSION['pseudo']) && !empty($_SESSION['pseudo']) && isset($_SESSION['userid']) && !empty($_SESSION['userid'])) {
mysql_query("INSERT INTO favoris (id_simply_user, id_loisir, date_added) VALUE (".$_SESSION['userid'].", ".$_GET['idfav'].", NOW())");
header("Location: mon_profil_utilisateur.php");
}else{
header("Location: mon_compte.php");
}
?>
Je remet la page date.php en cas
<?php
class Date{
var $days = array('Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi','Dimanche');
var $months = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
function getEvents($year){
global $bdd;
$req = $bdd->query('SELECT id,title,date FROM events WHERE YEAR(date)=');
$r = array();
/**
* Ce que je veux $r[TIMESTAMP][id] = title
*/
while($d = $req->fetch(PDO::FETCH_OBJ)){
$r[strtotime($d->date)][$d->id] = $d->title;
}
return $r;
}
function getAll($year){
$r = array();
/**
* Boucle version procédurale
*
$date = strtotime($year.'-01-01');
while(date('Y',$date) <= $year){
// Ce que je veux => $r[ANEEE][MOIS][JOUR] = JOUR DE LA SEMAINE
$y = date('Y',$date);
$m = date('n',$date);
$d = date('j',$date);
$w = str_replace('0','7',date('w',$date));
$r[$y][$m][$d] = $w;
$date = strtotime(date('Y-m-d',$date).' +1 DAY');
}
*
*
*/
$date = new DateTime($year.'-01-01');
while($date->format('Y') <= $year){
// Ce que je veux => $r[ANEEE][MOIS][JOUR] = JOUR DE LA SEMAINE
$y = $date->format('Y');
$m = $date->format('n');
$d = $date->format('j');
$w = str_replace('0','7',$date->format('w'));
$r[$y][$m][$d] = $w;
$date->add(new DateInterval('P1D'));
}
return $r;
}
}
Bon voilà l'avancement, désormais j'arrive intégrer une annonce de la page [b](sortie.php)[/b] à la page [b](mon_profil.php)[/b]
J'aimerais maintenant que la date de l'annonce rajouté dans [b](mon_profil.php)[/b] mette en couleur la case de la date du calendrier de la page [b](date.php)[/b]
Le code: ( je sais une partie est faite à l'ancienne )
[b]Page mon_profil.php[/b]
[php]<div class="container">
<?php
require('date.php');
$date = new Date();
$year = date('Y');
$events = $date->getEvents($year);
$dates = $date->getAll($year);
?>
<div class="periods">
<div class="year"><?php echo $year; ?></div>
<div class="months">
<ul>
<?php foreach ($date->months as $id=>$m): ?>
<li><a href="#" id="linkMonth<?php echo $id+1; ?>"><?php echo utf8_encode(substr(utf8_decode($m),0,3)); ?></a></li>
<?php endforeach; ?>
</ul>
</div>
<div class="clear"></div>
<?php $dates = current($dates); ?>
<?php foreach ($dates as $m=>$days): ?>
<div class="month relative" id="month<?php echo $m; ?>">
<table>
<thead>
<tr>
<?php foreach ($date->days as $d): ?>
<th><?php echo substr($d,0,3); ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<tr>
<?php $end = end($days); foreach($days as $d=>$w): ?>
<?php $time = strtotime("$year-$m-$d"); ?>
<?php if($d == 1 && $w != 1): ?>
<td colspan="<?php echo $w-1; ?>" class="padding"></td>
<?php endif; ?>
<td<?php if($time == strtotime(date('Y-m-d'))): ?> class="today" <?php endif; ?>>
<div class="relative">
<div class="day"><?php echo $d; ?></div>
</div>
<div class="daytitle">
<?php echo $date->days[$w-1]; ?> <?php echo $d; ?> <?php echo $date->months[$m-1]; ?>
</div>
<ul class="events">
<?php if(isset($events[$time])): foreach($events[$time] as $e): ?>
<li><?php echo $e; ?></li>
<?php endforeach; endif; ?>
</ul>
</td>
<?php if($w == 7): ?>
</tr><tr>
<?php endif; ?>
<?php endforeach; ?>
<?php if($end != 7): ?>
<td colspan="<?php echo 7-$end; ?>" class="padding"></td>
<?php endif; ?>
</tr>
</tbody>
</table>
</div>
<?php endforeach; ?>
</div>
<div class="clear"></div>
<!-- REQUETE POUR INSERTION DES FAVORIS DE L'UTILISATEURS SUR LE CALENDRIER -->
<?php
$resultat = mysql_query("SELECT * FROM favoris f LEFT JOIN simply_user su ON f.`id_simply_user` = su.`id_simply_user` LEFT JOIN loisirs l ON f.`id_loisir` = l.`id_loisirs` WHERE su.`id_simply_user` =".$_SESSION['userid']);
while($loisirs=mysql_fetch_array($resultat)) { ?>
<?php $date_sortie = DateTime::createFromFormat('Y-m-d', $loisirs['date_debut_sortie']);?>
<?php $date = DateTime::createFromFormat('Y-m-d H:i:s', $loisirs['date_debut_sortie']);?>
<?php $datef = DateTime::createFromFormat('Y-m-d H:i:s', $loisirs['date_fin_sortie']);?>
<!--Contenu d'une annonce-->
<div class="col-md-4 col-sm-6 marg15">
<div class="wrap">
<div class="corner">GRATUIT</div>
<?php if(!empty($loisirs['photo'])){?><img class="img-responsive" src="<?php echo $loisirs['photo'];?>" width="100px"><?php }?>
<h3><?php echo $loisirs['titre']; ?></h3>
<p><?php echo $loisirs['sous_titre']; ?></p>
<p class="desc"><?php echo substr($loisirs['description'], 0, 100).'...'; ?></p>
<a href="annonce_zoom.php?id=<?php echo $loisirs['id_loisirs'];?>" > <input class="look pull-right" type="button" value="CONTINUER"></a>
<a href="sup_favoris.php?id=<?php echo $loisirs['id_loisirs']; ?>">Supprimer</a>
</div>
</div>
<!--Fin Contenu d'une annonce-->
<?php }?>
</div>
[/php]
[b]La partie de code qui me permet de rajouter l'annonce dans la page mon_profil (add_favoris.php)[/b]
[php]<?php
session_start();
include("conndb.php");
if(isset($_SESSION['pseudo']) && !empty($_SESSION['pseudo']) && isset($_SESSION['userid']) && !empty($_SESSION['userid'])) {
mysql_query("INSERT INTO favoris (id_simply_user, id_loisir, date_added) VALUE (".$_SESSION['userid'].", ".$_GET['idfav'].", NOW())");
header("Location: mon_profil_utilisateur.php");
}else{
header("Location: mon_compte.php");
}
?>[/php]
[b]Je remet la page date.php en cas[/b]
[php]<?php
class Date{
var $days = array('Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi','Dimanche');
var $months = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
function getEvents($year){
global $bdd;
$req = $bdd->query('SELECT id,title,date FROM events WHERE YEAR(date)=');
$r = array();
/**
* Ce que je veux $r[TIMESTAMP][id] = title
*/
while($d = $req->fetch(PDO::FETCH_OBJ)){
$r[strtotime($d->date)][$d->id] = $d->title;
}
return $r;
}
function getAll($year){
$r = array();
/**
* Boucle version procédurale
*
$date = strtotime($year.'-01-01');
while(date('Y',$date) <= $year){
// Ce que je veux => $r[ANEEE][MOIS][JOUR] = JOUR DE LA SEMAINE
$y = date('Y',$date);
$m = date('n',$date);
$d = date('j',$date);
$w = str_replace('0','7',date('w',$date));
$r[$y][$m][$d] = $w;
$date = strtotime(date('Y-m-d',$date).' +1 DAY');
}
*
*
*/
$date = new DateTime($year.'-01-01');
while($date->format('Y') <= $year){
// Ce que je veux => $r[ANEEE][MOIS][JOUR] = JOUR DE LA SEMAINE
$y = $date->format('Y');
$m = $date->format('n');
$d = $date->format('j');
$w = str_replace('0','7',$date->format('w'));
$r[$y][$m][$d] = $w;
$date->add(new DateInterval('P1D'));
}
return $r;
}
}
[/php]