/** * Get a field definition foctory for given field domain. * * @param string $domain Valid field domain. * @return WPCF_Field_Definition_Factory Factory instance for given domain. * @throws InvalidArgumentException when the domain is invalid * @since 2.1 */ public static function get_factory_by_domain($domain) { switch ($domain) { case Types_Field_Utils::DOMAIN_POSTS: return WPCF_Field_Definition_Factory_Post::get_instance(); case Types_Field_Utils::DOMAIN_USERS: return WPCF_Field_Definition_Factory_User::get_instance(); case Types_Field_Utils::DOMAIN_TERMS: return WPCF_Field_Definition_Factory_Term::get_instance(); default: throw new InvalidArgumentException('Invalid field domain.'); } }
/** * @return WPCF_Field_Definition_Factory Field definition factory of the correct type. */ protected function get_field_definition_factory() { return WPCF_Field_Definition_Factory_Post::get_instance(); }
/** * Prepare field definition data, depending on current field domain, for passing to JavaScript. * * @return array * @since 2.0 */ private function build_field_definitions() { $query_args = array('filter' => 'all', 'orderby' => 'name', 'order' => 'asc'); $definitions = array(); switch ($this->get_current_domain()) { case Types_Field_Utils::DOMAIN_POSTS: $definitions = WPCF_Field_Definition_Factory_Post::get_instance()->query_definitions($query_args); break; case Types_Field_Utils::DOMAIN_USERS: $definitions = WPCF_Field_Definition_Factory_User::get_instance()->query_definitions($query_args); break; case Types_Field_Utils::DOMAIN_TERMS: $definitions = WPCF_Field_Definition_Factory_Term::get_instance()->query_definitions($query_args); break; } $definition_data = array(); foreach ($definitions as $definition) { $definition_data[] = $definition->to_json(); } return $definition_data; }