/** * @expectedException StoutLogic\AcfBuilder\FieldNameCollisionException */ public function testExceptionThrownDuringFieldNameCollisionUsingAddFields() { $builder = new FieldsBuilder('Banner'); $builder->addText('title')->addWysiwyg('content'); $builder2 = new FieldsBuilder('Section'); $builder2->addText('headline')->addWysiwyg('content'); $builder->addFields($builder2); }
public function testAddFields() { $banner = new FieldsBuilder('banner'); $banner->addText('title')->addWysiwyg('content'); $repeaterBuilder = new RepeaterBuilder('slides'); $repeaterBuilder->addFields($banner)->addImage('thumbnail'); $expectedConfig = ['name' => 'slides', 'type' => 'repeater', 'sub_fields' => [['name' => 'title'], ['name' => 'content'], ['name' => 'thumbnail']]]; $this->assertArraySubset($expectedConfig, $repeaterBuilder->build()); $repeaterBuilder = new RepeaterBuilder('slides'); $repeaterBuilder->addFields([$banner->getField('title'), $banner->getField('content')])->addImage('thumbnail'); $this->assertArraySubset($expectedConfig, $repeaterBuilder->build()); }
/** * Configures the layout FieldsBuilder * @param FieldsBuilder $layout * @param array $args FieldGroup Configuration * @return FieldsBuilder Configured Layout */ protected function initializeLayout(FieldsBuilder $layout, $args = []) { $layout->setGroupConfig('name', $layout->getName()); $layout->setGroupConfig('display', 'block'); foreach ($args as $key => $value) { $layout->setGroupConfig($key, $value); } $layout->setParentContext($this); return $layout; }
/** * Add multiple fields either via an array or from another builder * @param mixed $fields array of fields or a FieldBuilder * @return $this */ public function addFields($fields) { $this->fieldsBuilder->addFields($fields); return $this; }
public function testRemoveField() { $builder = new FieldsBuilder('Banner'); $builder->addText('title')->addWysiwyg('content'); $builder->removeField('title'); $config = $builder->build(); $fields = $config['fields']; $this->assertCount(1, $fields); }
<?php require dirname(__FILE__) . '/../autoload.php'; use StoutLogic\AcfBuilder\FieldsBuilder; $builder = new FieldsBuilder('banner'); $builder->addRepeater('slides')->addText('title')->addTextarea('content')->setLocation('post_type', '==', 'page'); print_r($builder->build());