/**
  * 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.');
     }
 }
Exemplo n.º 2
0
 /**
  * @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();
 }
Exemplo n.º 3
0
 /**
  * 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;
 }