/** * @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; }
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'); }