/**
  * Dropdown constructor.
  *
  * @param array|null $config
  * @param string $label
  * @param bool $ismulti
  * @param int $tid
  */
 public function __construct($config = null, $label = '', $ismulti = false, $tid = 0)
 {
     global $conf;
     parent::__construct($config, $label, $ismulti, $tid);
     $this->config['schema'] = Schema::cleanTableName($this->config['schema']);
     if ($this->usesLookup()) {
         $this->schema = new Schema($this->config['schema']);
         if (!$this->schema->getId()) {
             // schema does not exist
             msg(sprintf('Schema %s does not exist', $this->config['schema']), -1);
             $this->schema = null;
             $this->config['schema'] = '';
             return;
         }
         // apply language replacement
         $field = str_replace('$LANG', $conf['lang'], $this->config['field']);
         $this->column = $this->schema->findColumn($field);
         if (!$this->column) {
             $field = str_replace('$LANG', 'en', $this->config['field']);
             // fallback to en
             $this->column = $this->schema->findColumn($field);
         }
         if (!$this->column) {
             // field does not exist
             msg(sprintf('Field %s.%s does not exist', $this->config['schema'], $this->config['field']), -1);
             $this->column = null;
             $this->config['field'] = '';
             return;
         }
         if ($this->column->isMulti()) {
             // field is multi
             msg(sprintf('Field %s.%s is a multi field - not allowed for lookup', $this->config['schema'], $this->config['field']), -1);
             $this->column = null;
             $this->config['field'] = '';
             return;
         }
     }
 }