<?php
/***************************************************************************
- * Copyright (C) 2003-2007 Polytechnique.org *
+ * Copyright (C) 2003-2008 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
abstract class Validate
{
// {{{ properties
-
+
public $uid;
public $prenom;
public $nom;
public $unique;
// enable the refuse button
public $refuse = true;
-
+
public $type;
public $comments = Array();
// the validations rules : comments for admins
// }}}
// {{{ constructor
-
+
/** constructeur
* @param $_uid user id
* @param $_unique requête pouvant être multiple ou non
WHERE u.user_id={?}", $_uid);
list($this->prenom, $this->nom, $this->promo, $this->sexe, $this->forlife, $this->bestalias) = $res->fetchOneRow();
}
-
+
// }}}
// {{{ function submit()
if ($this->unique) {
XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?}', $this->uid, $this->type);
}
-
+
$this->stamp = date('YmdHis');
XDB::execute('INSERT INTO requests (user_id, type, data, stamp) VALUES ({?}, {?}, {?}, {?})',
$this->uid, $this->type, $this, $this->stamp);
+ global $globals;
+ update_NbValid();
return true;
}
// }}}
// {{{ function clean()
-
+
/** fonction à utiliser pour nettoyer l'entrée de la requête dans la table requests
* attention, tout est supprimé si c'est un unique
*/
public function clean()
{
if ($this->unique) {
- return XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?}',
- $this->uid, $this->type);
+ $success = XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?}',
+ $this->uid, $this->type);
} else {
- return XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?} AND stamp={?}',
- $this->uid, $this->type, $this->stamp);
+ $success = XDB::execute('DELETE FROM requests WHERE user_id={?} AND type={?} AND stamp={?}',
+ $this->uid, $this->type, $this->stamp);
}
+ update_NbValid();
+ return $success;
}
// }}}
// {{{ function handle_formu()
-
+
/** fonction à réaliser en cas de valistion du formulaire
*/
public function handle_formu()
// envoi d'un mail à hotliners
global $globals;
- $mailer = new PlMailer;
+ $mailer = new PlMailer();
$mailer->setSubject("Commentaires de validation {$this->type}");
$mailer->setFrom("validation+{$this->type}@{$globals->mail->domain}");
- $mailer->addTo($globals->core->admin_emails);
+ $mailer->addTo($globals->core->admin_email);
$body = "Validation {$this->type} pour {$this->prenom} {$this->nom}\n\n"
- . S::v('bestalias')." a ajouté le commentaire :\n\n"
+ . S::v('bestalias')." a ajouté le commentaire :\n\n"
. Env::v('comm')."\n\n"
. "cf la discussion sur : ".$globals->baseurl."/admin/validate";
// }}}
// {{{ function trig()
-
+
protected function trig($msg)
{
global $page;
$page->trig($msg);
}
-
+
// }}}
// {{{ function get_typed_request()
}
// }}}
+ // {{{ function get_typed_requests_count()
+
+ /** same as get_typed_requests() but return the count of available requests.
+ */
+ static public function get_typed_requests_count($uid, $type)
+ {
+ $res = XDB::query('SELECT COUNT(data) FROM requests WHERE user_id={?} and type={?}', $uid, $type);
+ return $res->fetchOneCell();
+ }
+
+ // }}}
// {{{ function _mail_body
abstract protected function _mail_body($isok);
-
+
// }}}
// {{{ function _mail_subj
abstract protected function _mail_subj();
-
+
// }}}
// {{{ function commit()
-
+
/** fonction à utiliser pour insérer les données dans x4dat
*/
abstract public function commit();
// }}}
// {{{ function formu()
-
+
/** nom du template qui contient le formulaire */
abstract public function formu();