예제 #1
0
 /**
  * @param string $name Field name
  * @param string $type Field name
  * @param array $config Field configuration
  */
 public function __construct($name, $type = 'repeater', $config = [])
 {
     parent::__construct($name, $type, $config);
     $this->fieldsBuilder = new FieldsBuilder($name);
     $this->fieldsBuilder->setParentContext($this);
     if (!array_key_exists('button_label', $config)) {
         $this->setConfig('button_label', $this->getDefaultButtonLabel());
     }
 }
 /**
  * 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;
 }
예제 #3
0
 public function testReturnExistingParentContextForSetLocation()
 {
     $builder = $this->getMockBuilder('StoutLogic\\AcfBuilder\\FieldsBuilder')->setConstructorArgs(['parent'])->getMock();
     $middleBuilder = new FieldsBuilder('middle');
     $middleBuilder->setParentContext($builder);
     $subBuilder = new FieldsBuilder('child');
     $subBuilder->setParentContext($middleBuilder);
     $builder->expects($this->exactly(2))->method('setLocation');
     $subBuilder->setLocation('post_type', '==', 'page');
     $middleBuilder->setLocation('post_type', '==', 'page');
 }