mid = $_idmedal; $this->gid = $_subidmedal; if (is_null($this->gid)) { $this->gid = 0; } } // }}} // {{{ function formu() public function formu() { return 'include/form.valid.medals.tpl'; } // }}} // {{{ function _mail_subj protected function _mail_subj() { return "[Polytechnique.org/Décoration] Demande de décoration : ".$this->medal_name(); } // }}} // {{{ function _mail_body protected function _mail_body($isok) { if ($isok) { return " La décoration ".$this->medal_name()." vient d'être ajoutée à ta fiche."; } else { return " La demande que tu avais faite pour la décoration ".$this->medal_name()." a été refusée."; } } // }}} // {{{ function medal_name public function medal_name() { //var_dump($this); $r = XDB::query(" SELECT IF (g.text IS NOT NULL, CONCAT(m.text,' - ', g.text), m.text) FROM profile_medals AS m LEFT JOIN profile_medals_grades AS g ON(g.mid = m.id AND g.gid = {?}) WHERE m.id = {?}", $this->gid, $this->mid); return $r->fetchOneCell(); } // }}} // {{{ function submit() public function submit() { $res = XDB::query("SELECT FIND_IN_SET('validation', flags) FROM profile_medals WHERE id = {?}", $this->mid); if ($res->fetchOneCell()) { parent::submit(); } else { $this->commit(); } } // }}} // {{{ function commit() public function commit () { require_once 'notifs.inc.php'; register_watch_op($this->user->id(), WATCH_FICHE, '', 'medals'); return XDB::execute('REPLACE INTO profile_medals_sub VALUES ({?}, {?}, {?})', $this->user->id(), $this->mid, is_null($this->gid) ? 0 : $this->gid); } // }}} // {{{ function get_request($medal) static public function get_request($uid, $type) { $reqs = Validate::get_typed_requests($uid, 'medal'); foreach ($reqs as &$req) { if ($req->mid == $type) { return $req; } } return null; } // }}} } // }}} // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>