public function special()
 {
     require_once _base_ . '/lib/lib.preference.php';
     $preference = new AdminPreference();
     $idst = Get::req('idst', DOTY_INT, 0);
     $output = array();
     if (Get::req('confirm', DOTY_INT, 0) == 1) {
         $rules = $preference->getRules();
         $new_rules = array();
         foreach ($rules as $path => $info) {
             switch ($info['type']) {
                 case 'enum':
                     $new_rules[$path] = Get::req(str_replace('.', '_', $path), DOTY_MIXED, 'off');
                     break;
                 case 'integer':
                     $new_rules[$path] = Get::req(str_replace('.', '_', $path), DOTY_INT, 0);
                     break;
             }
         }
         $output['success'] = $preference->saveSpecialAdminRules($idst, $new_rules);
         echo $this->json->encode($output);
     } else {
         $body = Form::openForm('add_rules_form', 'ajax.adm_server.php?r=adm/adminrules/special&confirm=1') . Form::openElementSpace() . $preference->getSpecialModifyMask($idst, 'adminrules') . Form::closeElementSpace() . Form::closeForm();
         $output['success'] = true;
         $output['header'] = Lang::t('_MOD', 'adminrules') . ' ';
         $output['body'] = $body;
         echo $this->json->encode($output);
     }
 }