public function setConfig($config = array(), $id = null)
 {
     $id = $this->getId($id);
     if ($id <= 0) {
         $name = wa()->getConfig()->getGeneralSettings('name');
         if (!$name) {
             $name = date('c');
         }
         $description = '';
         if (($raw = waRequest::request('profile')) && is_array($raw)) {
             if (!empty($raw['name'])) {
                 $name = $raw['name'];
             }
             if (!empty($raw['description'])) {
                 $description = $raw['description'];
             }
         }
         $id = $this->addConfig($name, $description);
     }
     $fields = array('id' => $id, 'plugin' => $this->plugin);
     $data = array('config' => json_encode($config));
     if (!empty($this->name)) {
         $data['name'] = $this->name;
     }
     $this->model->updateByField($fields, $data);
     return $id;
 }