function getValueList() { if (!$this->dictionary()) { return parent::getValueList(); } $res = array(); $o = array(); if (!is_null($this->empty_value)) { $o = $o + array('' => array('name' => $this->empty_value)); } /* // REVERT back sorting (from #1345) becasue it breaks vat rates $q=$this->dictionary->resetQuery('get_rows')->dsql('get_rows'); $this->dictionary->setQueryFields('get_rows',$this->dictionary()->getListFields()); if(method_exists($this->dictionary(),'getSortColumn') && $sc=$this->dictionary()->getSortColumn()){ $desc=false; if($sc[0]=='-'){ $desc=true;$sc=substr($sc,1); } if($this->dictionary()->fieldExists($sc)){ $this->dictionary()->setOrder('get_rows',$sc,$desc); } } $o=$o+$q->do_getAllHash(); */ // getRows do not support sorting, so we do ourselves. // This is to avoid changing getRows in the core, which would have much more severe // impact on the system!! // TODO: refactor during next major release $data = $this->dictionary()->getRows($this->dictionary()->getListFields()); // f*****g good to sort in some certainly the-only-really-ever-needed order. yeah, in the core library. //usort($data,'usort_cmp'); $o = $o + $data; foreach ($o as $row) { @($res[$row['id']] = isset($row['name']) ? $row['name'] : $row['id']); } return $res; }