Commit fca14a1f authored by pedrov's avatar pedrov
Browse files

restructuration du code

parent 378fb380
......@@ -57,7 +57,8 @@ if ($_REQUEST['action'] == 'view')
$datetrj = $_REQUEST['date'];
$trajet = new trajet($site->db, $site->dbrw, null);
$trajet = new trajet($site->db, $site->dbrw);
$trajet->load_by_id($_REQUEST['id_trajet']);
......@@ -69,58 +70,42 @@ if ($_REQUEST['action'] == 'delete')
$id = explode(',', $id);
$id_etape = intval($id[0]);
$id_trajet = intval($id[1]);
$date_etape = mysql_real_escape_string($id[2]);
$req = new requete($site->db, "SELECT
`id_utilisateur`
FROM
`cv_trajet_etape`
WHERE
`id_trajet` = $id_trajet
AND
`id_etape` = $id_etape
AND
`trajet_date` = '".$date_etape."'");
if ($req->lines == 1)
$date_etape = $id[2];
/* on recharge le trajet au cas ou */
$trajet->load_by_id($id_trajet);
$ret = $trajet->delete_step($site->user->id,
$id_etape,
$date_etape);
if ($ret == 1)
{
$idusr = $req->get_row();
$idusr = $idusr['id_utilisateur'];
$accueil->add_title(2, "Suppression d'une étape");
$accueil->add_paragraph("<b>Etape supprimée avec succès.</b>");
if ($site->user->id == $idusr)
{
$req = new delete($site->dbrw,
'cv_trajet_etape',
array('id_trajet' => $id_trajet,
'id_etape' =>$id_etape,
'trajet_date' => $date_etape));
if ($req->lines == 1)
{
$accueil->add_title(2, "Suppression d'une étape");
$accueil->add_paragraph("<b>Etape supprimée avec succès.</b>");
/* options */
$accueil->add_title(2, "Autres options");
$opts[] = "<a href=\"./\">Retour à la page d'accueil du covoiturage</a>";
$opts[] = "<a href=\"./propose.php\">Proposer un trajet</a>";
$opts[] = "<a href=\"./search.php\">Rechercher un trajet</a>";
$options = new itemlist(false, false, $opts);
$accueil->add($options);
$site->add_contents($accueil);
$site->end_page();
exit();
}
}
/* options */
$accueil->add_title(2, "Autres options");
$opts[] = "<a href=\"./\">Retour à la page d'accueil du covoiturage</a>";
$opts[] = "<a href=\"./propose.php\">Proposer un trajet</a>";
$opts[] = "<a href=\"./search.php\">Rechercher un trajet</a>";
$options = new itemlist(false, false, $opts);
$accueil->add($options);
$site->add_contents($accueil);
$site->end_page();
exit();
}
else
{
header("Location: ../404.php");
exit();
}
} // fin suppresion d'étapes
if (($trajet->id <= 0) || (! in_array($datetrj, $trajet->dates)))
{
header("Location: ../404.php");
......
......@@ -85,6 +85,7 @@ class trajet extends stdentity
{
$this->_load($req->get_row());
$this->load_dates();
$this->load_steps();
return true;
}
......@@ -227,9 +228,6 @@ class trajet extends stdentity
*/
function has_pending_steps()
{
if (count($this->etapes) <= 0)
$this->load_steps();
if (count($this->etapes) <= 0)
return false;
......@@ -307,19 +305,12 @@ class trajet extends stdentity
if (($this->type == TRJ_EDU) || ($this->type == TRJ_EVT))
{
$this->load_steps();
return false;
}
if (! in_array($date, $this->dates))
return false;
/* tentative de chargement des étapes */
if (! count($this->etapes))
{
$this->load_steps();
}
/* pas d'étapes */
if (! count($this->etapes))
{
......@@ -376,14 +367,9 @@ class trajet extends stdentity
*/
function already_proposed_step($user, $date = NULL)
{
if (! count ($this->etapes))
$this->load_steps();
if (! count($this->etapes))
return false;
foreach($this->etapes as $etape)
{
if ($etape['date_etape'] != $date)
......@@ -397,10 +383,10 @@ class trajet extends stdentity
/*
* Fonction permettant d'ajouter une étape
*
* Note : une étape avec une ville signifie que l'utilisateur
* veut participer au trajet, mais qu'il n'a pas d'obligation
* précise en terme de modification du trajet. (explications
* plus poussée en commentaires, ...)
* Note : une étape avec une ville nulle signifie que l'utilisateur
* veut participer au trajet, mais qu'il n'a pas d'obligation
* précise en terme de modification du trajet. (explications plus
* poussée en commentaires, ...)
*
*/
function add_step($user, $comments, $date = NULL, $ville = NULL)
......@@ -444,7 +430,6 @@ class trajet extends stdentity
*/
if ($this->already_proposed_step($user, $date))
{
echo "deja propose ...";
return false;
}
......@@ -549,7 +534,57 @@ class trajet extends stdentity
return ($sql->lines > 0);
}
/* fonction de suppression d'une étape.
*
* @param id_destroyer l'identifiant de l'utilisateur souhaitant
* supprimer l'étape.
* @param id_etape l'identifiant d'étape.
* @param date_etape la date de l'étape.
*
* @return true si ok, false sinon.
*
*/
function delete_step($id_destroyer, $id_etape, $date_etape)
{
if (! $this->dbrw)
return false;
if (count($this->etapes) <= 0)
return false;
foreach($this->etapes as &$etape)
{
// l'étape est trouvée
if (($etape['id'] == $id_etape) && ($etape['date_etape'] == $date_etape))
{
if ($id_destroyer != $etape['id_utilisateur'])
{
return false;
}
/* else : on supprime l'étape */
$req = new delete($this->dbrw, 'cv_trajet_etape',
array('id_trajet' => $this->id,
'id_etape' =>$id_etape,
'trajet_date' => $date_etape));
/* rechargement des étapes */
$this->load_steps();
return ($req->lines == 1);
}
} // fin foreach
return false;
}
}
/* fonctions globales, relatives au système du covoiturage */
?>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment