public function get_variants($name, $source)
 {
     $count = new DataRequestConfig($source);
     $count->set_fieldset("DISTINCT " . $this->escape_name($name) . " as value");
     $sort = new SortInterface($source);
     $count->set_sort(null);
     for ($i = 0; $i < count($sort->rules); $i++) {
         if ($sort->rules[$i]['name'] == $name) {
             $count->set_sort($sort->rules[$i]['name'], $sort->rules[$i]['direction']);
         }
     }
     $count->set_limit(0, 0);
     return $this->select($count);
 }
 public function update($data)
 {
     $action = new DataAction('updated', $data[$this->config->id["name"]], $data);
     $request = new DataRequestConfig();
     $request->set_source($this->request->get_source());
     $this->config->limit_fields($data);
     $this->sql->update($action, $request);
     $this->config->restore_fields($data);
     return $action->get_status();
 }