private $promos;
private $valid;
private $questions;
+ private $creator;
public function __construct($args, $id = -1, $valid = false, $questions = null)
{
$this->title = $args['title'];
$this->description = $args['description'];
$this->end = $args['end'];
- $this->mode = (isset($args['mode']))? $args['mode'] : self::MODE_ALL;
+ $this->mode = (isset($args['mode']))? $args['mode'] : self::MODE_ALL;
+ $this->creator = $args['uid'];
if ($this->mode == self::MODE_ALL) {
$args['promos'] = '';
}
$args['promos'] = str_replace(' ', '', $args['promos']);
$this->promos = ($args['promos'] == '' || preg_match('#^(\d{4}-?|(\d{4})?-\d{4})(,(\d{4}-?|(\d{4})?-\d{4}))*$#', $args['promos']))? $args['promos'] : '#';
}
+
+ public function canSeeEarlyResults(User $user)
+ {
+ return $user->id() == $this->creator || $user->checkPerms('admin');
+ }
// }}}
// {{{ functions to access general information
if ((preg_match('#^\d{4}$#', $p) && $p == $promo) ||
(preg_match('#^\d{4}-$#', $p) && intval(substr($p, 0, 4)) <= $promo) ||
(preg_match('#^-\d{4}$#', $p) && intval(substr($p, 1)) >= $promo) ||
- (preg_match('#^\d{4}-\d{4}$#', $p) && intval(substr($p, 0, 4)) <= $promo && intval(substr($p, 5)) >= $promo)) {
+ (preg_match('#^\d{4}-\d{4}$#', $p) &&
+ (intval(substr($p, 0, 4)) <= $promo && intval(substr($p, 5)) >= $promo ||
+ intval(substr($p, 0, 4)) >= $promo && intval(substr($p, 5)) <= $promo ))) {
return true;
}
}
}
$sql = 'SELECT v.id AS vid, a.question_id AS qid, a.answer AS answer
FROM survey_votes AS v
- LEFT JOIN survey_answers AS a
- ON a.vote_id=v.id
+ INNER JOIN survey_answers AS a ON a.vote_id=v.id
WHERE v.survey_id={?}
- ORDER BY vid ASC, qid ASC, answer ASC;';
+ ORDER BY vid ASC, qid ASC, answer ASC';
$res = XDB::iterator($sql, $this->id); // retrieves all answers from database
$vid = -1;
$vid_ = 0;
// {{{ static function retrieveSurvey() : gets a survey in database (and unserialize the survey object structure)
public static function retrieveSurvey($sid)
{
- $sql = 'SELECT questions, title, description, end, mode, promos
+ $sql = 'SELECT questions, title, description, end, mode, promos, uid
FROM surveys
WHERE id={?}';
$res = XDB::query($sql, $sid);
// {{{ static function retrieveSurveyReq() : gets a survey request to validate
public static function retrieveSurveyReq($id)
{
- require_once 'validations.inc.php';
$surveyreq = Validate::get_request_by_id($id);
if ($surveyreq == null) {
return null;
// {{{ function proposeSurvey() : stores a proposition of survey in database (before validation)
public function proposeSurvey()
{
- require_once 'validations.inc.php';
$surveyreq = new SurveyReq($this->title, $this->description, $this->end, $this->mode, $this->promos, $this->questions, S::user());
return $surveyreq->submit();
}
WHERE id={?};';
return XDB::execute($sql, serialize($this->questions), $this->title, $this->description, $this->end, $this->mode, $this->promos, $this->id);
} else {
- require_once 'validations.inc.php';
$surveyreq = Validate::get_request_by_id($this->id);
if ($surveyreq == null) {
return false;