. */ /* is_before($deadline) * Function that tells if it is still before or on a certain deadline * @param: deadline: the key in $setup[] to check against * @return: return true if it is before or on deadline, false if after deadline */ function is_before($deadline) { global $setup; if( strlen($setup[$deadline])==10 AND get_sql_date($setup[$deadline])>=date("Y-m-d") ) return true; elseif( strlen($setup[$deadline])==16 AND get_sql_date($setup[$deadline])>=date("Y-m-d H:i") ) return true; else return false; } /* is_before_ex($deadline) * Function that tells if it is still before a certain deadline (exclusive) * @param: deadline: the key in $setup[] to check against * @return: return true if it is before deadline, false if on or after deadline */ function is_before_ex($deadline) { global $setup; if( strlen($setup[$deadline])==10 AND get_sql_date($setup[$deadline])>date("Y-m-d") ) return true; elseif( strlen($setup[$deadline])==16 AND get_sql_date($setup[$deadline])>date("Y-m-d H:i") ) return true; else return false; } function is_after($deadline) { global $setup; if( strlen($setup[$deadline])==10 AND get_sql_date($setup[$deadline])<=date("Y-m-d") ) return true; elseif( strlen($setup[$deadline])==16 AND get_sql_date($setup[$deadline])<=date("Y-m-d H:i") ) return true; else return false; } function is_after_ex($deadline) { global $setup; if( strlen($setup[$deadline])==10 AND get_sql_date($setup[$deadline])fetchRow("candidatepost", $positionId); if( $position != NULL ) { $places = $position['places']; $deadline = $position['deadline']; if( $deadline != "auto" ) { return $deadline; // Nothing else to look for }else { if( is_before_ex("CandidateStart") || is_after("CandidateEndReal") ) return "closed"; if( is_before("CandidateDeadline") ) return "open"; $queryBuilder = new QueryBuilder($GLOBALS['DB'], "candidates"); $queryBuilder->addField(new DBMethodCount("id"), "count"); $queryBuilder->addField("approved"); $queryBuilder->addWhereEquals("position", $positionId); $queryBuilder->addWhereNotEquals("approved", "no"); if( !$setup['CloseWhenEnoughCandidates'] ) { $queryBuilder->addWhereSmallerEquals("created", get_sql_date($setup['CandidateDeadline']).":59"); } $queryBuilder->addGroup("approved"); if( $GLOBALS['DB']->select($queryBuilder->toQuery()) > 0 ) { $approved = 0; $pending = 0; while( $candidatures = $GLOBALS['DB']->fetchAssoc() ) { if( $candidatures['approved']=="yes" ) $approved = $candidatures['count']; if( $candidatures['approved']=="pending" ) $pending = $candidatures['count']; } if( $approved >= ($places + $setup['CandidateAdditionalRequired']) ) return "closed"; elseif( ($approved + $pending) >= ($places + $setup['CandidateAdditionalRequired']) ) return "temporallyclosed"; else return "open"; }else { return "open"; // No candidates yet } } }else { // Couldn't find position return "closed"; } } ?>