/** * {@inheritDoc} */ public function bootstrap(Application $app) { $app->bind('field_factory', function ($app) { $factory = new Factory($app); // Register defaults return $factory->register('true_false', 'Tev\\Field\\Model\\BasicField')->register('page_link', 'Tev\\Field\\Model\\BasicField')->register('color_picker', 'Tev\\Field\\Model\\BasicField')->register('oembed', 'Tev\\Field\\Model\\BasicField')->register('text', 'Tev\\Field\\Model\\BasicField')->register('wysiwyg', 'Tev\\Field\\Model\\BasicField')->register('textarea', 'Tev\\Field\\Model\\BasicField')->register('url', 'Tev\\Field\\Model\\BasicField')->register('email', 'Tev\\Field\\Model\\BasicField')->register('date_picker', 'Tev\\Field\\Model\\DateField')->register('file', 'Tev\\Field\\Model\\FileField')->register('select', 'Tev\\Field\\Model\\SelectField')->register('checkbox', 'Tev\\Field\\Model\\SelectField')->register('radio', 'Tev\\Field\\Model\\SelectField')->register('google_map', 'Tev\\Field\\Model\\GoogleMapField')->register('image', 'Tev\\Field\\Model\\ImageField')->register('number', 'Tev\\Field\\Model\\NumberField')->register('post_object', function ($data, $app) { return new PostField($data, $app->fetch('post_factory')); })->register('relationship', function ($data, $app) { return new PostField($data, $app->fetch('post_factory')); })->register('taxonomy', function ($data, $app) { return new TaxonomyField($data, $app->fetch('taxonomy_factory'), $app->fetch('term_factory')); })->register('user', function ($data, $app) { return new AuthorField($data, $app->fetch('author_factory')); })->register('repeater', function ($data, $app) { return new RepeaterField($data, $app->fetch('field_factory')); })->register('flexible_content', function ($data, $app) { return new FlexibleContentField($data, $app->fetch('field_factory')); }); }); }
/** * Get a custom field on this post. * * @param string $name Field name (or key) * @return \Tev\Field\Model\AbstractField Field object */ public function field($name) { return $this->fieldFactory->create($name, $this); }
/** * Get a field from the group. * * @param string $field Field name or key * @return \Tev\Field\Model\AbstractField Field object * * @throws \Exception If field does not exist */ public function field($field) { return $this->fieldFactory->createFromField($this->getFieldData($field), $this->getFieldValue($field)); }