/**
  * @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);
 }
示例#6
0
<?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());