18    public static function create($role, $stamp, $local_roles, $limit, $limit_date, $reg_type, $ext_type)
 
   28            $chk = 
$ilDB->queryF(
"SELECT code_id FROM " . self::DB_TABLE . 
" WHERE code = %s", array(
"text"), array(
$code));
 
   29            $found = (bool) 
$ilDB->numRows($chk);
 
   32        if (is_array($local_roles)) {
 
   33            $local_roles = implode(
";", $local_roles);
 
   35        if ($limit == 
"relative" && is_array($limit_date)) {
 
   36            $limit_date = serialize($limit_date);
 
   40            'code_id' => array(
'integer', 
$id),
 
   41            'code' => array(
'text', 
$code),
 
   42            'generated_on' => array(
'integer', $stamp),
 
   43            'role' => array(
'integer', $role),
 
   44            'role_local' => array(
'text', $local_roles),
 
   45            'alimit' => array(
'text', $limit),
 
   46            'alimitdt' => array(
'text', $limit_date),
 
   47            'reg_enabled' => array(
'integer',$reg_type),
 
   48            'ext_enabled' => array(
'integer',$ext_type)
 
   58        $map = 
"23456789abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
 
   61        $max = strlen($map)-1;
 
   63            $code .= $map[mt_rand(0, $max)];
 
   68    public static function getCodesData($order_field, $order_direction, $offset, $limit, $filter_code, $filter_role, $filter_generated, $filter_access_limitation)
 
   73        $where = 
self::filterToSQL($filter_code, $filter_role, $filter_generated, $filter_access_limitation);
 
   76        $set = 
$ilDB->query(
"SELECT COUNT(*) AS cnt FROM " . self::DB_TABLE . $where);
 
   78        if ($rec = 
$ilDB->fetchAssoc($set)) {
 
   82        $sql = 
"SELECT * FROM " . self::DB_TABLE . $where;
 
   84            if ($order_field == 
'generated') {
 
   85                $order_field = 
'generated_on';
 
   87            $sql .= 
" ORDER BY " . $order_field . 
" " . $order_direction;
 
   91        $ilDB->setLimit((
int) $limit, (
int) $offset);
 
   92        $set = 
$ilDB->query($sql);
 
   94        while ($rec = 
$ilDB->fetchAssoc($set)) {
 
   95            $rec[
'generated'] = $rec[
'generated_on'];
 
   98        return array(
"cnt" => $cnt, 
"set" => 
$result);
 
  105        $set = 
$ilDB->query(
"SELECT * FROM " . self::DB_TABLE . 
" WHERE " . 
$ilDB->in(
"code_id", $ids, 
false, 
"integer"));
 
  107        while ($rec = 
$ilDB->fetchAssoc($set)) {
 
  118            return $ilDB->manipulate(
"DELETE FROM " . self::DB_TABLE . 
" WHERE " . 
$ilDB->in(
"code_id", $ids, 
false, 
"integer"));
 
  127        $set = 
$ilDB->query(
"SELECT DISTINCT(generated_on) genr FROM " . self::DB_TABLE . 
" ORDER BY genr");
 
  129        while ($rec = 
$ilDB->fetchAssoc($set)) {
 
  135    protected static function filterToSQL($filter_code, $filter_role, $filter_generated, $filter_access_limitation)
 
  141            $where[] = 
$ilDB->like(
"code", 
"text", 
"%" . $filter_code . 
"%");
 
  144            $where[] =
"role = " . 
$ilDB->quote($filter_role, 
"integer");
 
  146        if ($filter_generated) {
 
  147            $where[] =
"generated_on = " . 
$ilDB->quote($filter_generated, 
"text");
 
  149        if ($filter_access_limitation) {
 
  150            $where[] =
"alimit = " . 
$ilDB->quote($filter_access_limitation, 
"text");
 
  152        if (
sizeof($where)) {
 
  153            return " WHERE " . implode(
" AND ", $where);
 
  159    public static function getCodesForExport($filter_code, $filter_role, $filter_generated, $filter_access_limitation)
 
  164        $where = 
self::filterToSQL($filter_code, $filter_role, $filter_generated, $filter_access_limitation);
 
  167        $set = 
$ilDB->query(
"SELECT code FROM " . self::DB_TABLE . $where . 
" ORDER BY code_id");
 
  169        while ($rec = 
$ilDB->fetchAssoc($set)) {
 
  185        $set = 
$ilDB->query(
"SELECT used FROM " . self::DB_TABLE . 
" WHERE code = " . 
$ilDB->quote(
$code, 
"text"));
 
  186        $set = 
$ilDB->fetchAssoc($set);
 
  187        if ($set && !$set[
"used"]) {
 
  202        $query = 
'SELECT code_id FROM reg_registration_codes ' .
 
  203            'WHERE used = ' . 
$ilDB->quote(0, 
'integer') . 
' ' .
 
  204            'AND reg_enabled = ' . 
$ilDB->quote(1, 
'integer') . 
' ' .
 
  205            'AND code = ' . 
$ilDB->quote($a_code, 
'text');
 
  208        return $res->numRows() ? true : 
false;
 
  215        return (
bool) 
$ilDB->update(self::DB_TABLE, array(
"used"=>array(
"timestamp", time())), array(
"code"=>array(
"text", 
$code)));
 
  222        $set = 
$ilDB->query(
"SELECT role FROM " . self::DB_TABLE . 
" WHERE code = " . 
$ilDB->quote(
$code, 
"text"));
 
  224        if (isset(
$row[
"role"])) {
 
  233        $set = 
$ilDB->query(
"SELECT role, role_local, alimit, alimitdt, reg_enabled, ext_enabled" .
 
  234            " FROM " . self::DB_TABLE .
 
  235            " WHERE code = " . 
$ilDB->quote(
$code, 
"text"));
 
An exception for terminatinating execution or to throw for unit testing.
Class ilRegistrationCode.
static filterToSQL($filter_code, $filter_role, $filter_generated, $filter_access_limitation)
static deleteCodes(array $ids)
static getCodeRole($code)
static isValidRegistrationCode($a_code)
Check if given code is a valid registration code.
static generateRandomCode()
static getCodesForExport($filter_code, $filter_role, $filter_generated, $filter_access_limitation)
static getCodeData($code)
static create($role, $stamp, $local_roles, $limit, $limit_date, $reg_type, $ext_type)
static isUnusedCode($code)
Check if code has been used already @global type $ilDB.
static getGenerationDates()
static getCodesData($order_field, $order_direction, $offset, $limit, $filter_code, $filter_role, $filter_generated, $filter_access_limitation)
static loadCodesByIds(array $ids)
if(!array_key_exists('StateId', $_REQUEST)) $id
foreach($_POST as $key=> $value) $res