/**
  * Validate and sanitize any submitted data. Used when editing the definition for
  * this type of element. Default behavior here is to require only a unique name and
  * label. Override this if customized validation is required.
  *
  *     into the field values.
  *
  * @param array   $posted_data = $_POST data
  * @return array filtered field_data that can be saved OR can be safely repopulated
  */
 public function save_definition_filter($posted_data)
 {
     $posted_data = parent::save_definition_filter($posted_data);
     if (empty($posted_data['alternate_input']) && empty($posted_data['options'])) {
         $this->errors['options'][] = __('At least one option or alternate input is required.', CCTM_TXTDOMAIN);
     }
     return $posted_data;
     // filtered data
 }
 /**
  * This should replace the awkward save_definition_filter() function...
  *
  * @param string $name for field
  * @return boolean
  */
 public static function valid_name($name)
 {
     self::$e = array();
     if (empty($name)) {
         self::$e[] = __('Name is required.', CCTM_TXTDOMAIN);
         return false;
     }
     // Are there any invalid characters? 1st char. must be a letter (req'd for valid prop/func names)
     if (!preg_match('/^[a-z]{1}[a-z_0-9]*$/i', $name)) {
         self::$e[] = sprintf(__('%s contains invalid characters. The name may only contain letters, numbers, and underscores, and it must begin with a letter.', CCTM_TXTDOMAIN), '<strong>' . $name . '</strong>');
     }
     // Is the name too long?
     if (strlen($name) > 255) {
         self::$e[] = __('The name is too long. Names must not exceed 255 characters.', CCTM_TXTDOMAIN);
     }
     // Run into any reserved words?
     if (in_array($name, CCTM::$reserved_field_names)) {
         self::$e[] = sprintf(__('%s is a reserved name.', CCTM_TXTDOMAIN), '<strong>' . $name . '</strong>');
     }
     if (empty(self::$e)) {
         return true;
     }
     return false;
 }
 /**
  * Custom filter on the name due to WP's limitations:
  * http://code.google.com/p/wordpress-custom-content-type-manager/issues/detail?id=271
  */
 public function save_definition_filter($posted_data)
 {
     $posted_data = parent::save_definition_filter($posted_data);
     // Are there any invalid characters? 1st char. must be a letter (req'd for valid prop/func names)
     if (!empty($posted_data['name']) && !preg_match('/^[a-z]*$/', $posted_data['name'])) {
         $this->errors['name'][] = __('Due to WordPress limitations, WYSIWYG fields can contain ONLY lowercase letters.', CCTM_TXTDOMAIN);
         $posted_data['name'] = preg_replace('/[^a-z]/', '', $posted_data['name']);
     }
     return $posted_data;
 }
 /**
  * Handle the "checked by default" option
  *
  * @param array $posted_data -- a copy of $_POST
  * @return array	filtered $_POST data
  */
 public function save_definition_filter($posted_data)
 {
     $posted_data = parent::save_definition_filter($posted_data);
     if (!isset($posted_data['checked_by_default'])) {
         $posted_data['checked_by_default'] = 0;
         // set it
     }
     return $posted_data;
 }