/** * Return the form to edit an existing disk. * * @param DiskFormBuilder $disk * @param AdapterFormBuilder $form * @param DiskRepositoryInterface $disks * @param ConfigurationFormBuilder $configuration * @param $id * @return \Symfony\Component\HttpFoundation\Response */ public function edit(DiskFormBuilder $disk, AdapterFormBuilder $form, DiskRepositoryInterface $disks, ConfigurationFormBuilder $configuration, $id) { $entry = $disks->find($id); $adapter = $entry->getAdapter(); $form->addForm('disk', $disk->setEntry($id)->setAdapter($adapter)); $form->addForm('configuration', $configuration->setEntry($adapter->getNamespace())->setScope($entry->getSlug())); return $form->render(); }
/** * Return the form to edit an existing block. * * @param BlockFormBuilder $block * @param BlockTypeFormBuilder $form * @param BlockRepositoryInterface $blocks * @param ConfigurationFormBuilder $configuration * @param $id * @return \Symfony\Component\HttpFoundation\Response */ public function edit(BlockFormBuilder $block, BlockTypeFormBuilder $form, BlockRepositoryInterface $blocks, ConfigurationFormBuilder $configuration, $id) { /* @var BlockInterface $entry */ $entry = $blocks->find($id); $type = $entry->getType(); $form->addForm('block', $block->setEntry($id)->setType($type)); $form->addForm('configuration', $configuration->setEntry($type->getNamespace())->setScope($entry->getSlug())); return $form->render(); }
/** * Edit an existing entry. * * @param ExtensionCollection $extensions * @param WidgetExtensionFormBuilder|WidgetFormBuilder $form * @param WidgetFormBuilder $widget * @param ConfigurationFormBuilder $configuration * @return \Symfony\Component\HttpFoundation\Response */ public function edit(ExtensionCollection $extensions, WidgetExtensionFormBuilder $form, WidgetFormBuilder $widget, ConfigurationFormBuilder $configuration, WidgetRepositoryInterface $widgets, $id) { /* @var WidgetInterface $entry */ $entry = $widgets->find($id); /* @var WidgetExtension $extension */ $extension = $entry->getExtension(); $form->setEntry($id); $form->addForm('widget', $widget->setEntry($id)); $form->addForm('configuration', $configuration->setScope($id)->setEntry($extension->getNamespace())); return $form->render(); }
/** * Return the form fields. * * @param ConfigurationFormBuilder $builder */ public function handle(ConfigurationFormBuilder $builder, ConfigurationRepositoryInterface $configuration) { $scope = $builder->getScope(); $namespace = $builder->getFormEntry() . '::'; /** * Get the fields from the config system. Sections are * optionally defined the same way. */ if (!($fields = $this->config->get($namespace . 'configuration/configuration'))) { $fields = $fields = $this->config->get($namespace . 'configuration', []); } if ($sections = $this->config->get($namespace . 'configuration/sections')) { $builder->setSections($sections); } /** * Finish each field. */ foreach ($fields as $slug => &$field) { /** * Force an array. This is done later * too in normalization but we need it now * because we are normalizing / guessing our * own parameters somewhat. */ if (is_string($field)) { $field = ['type' => $field]; } // Make sure we have a config property. $field['config'] = array_get($field, 'config', []); // Default the label. if (trans()->has($label = array_get($field, 'label', $namespace . 'configuration.' . $slug . '.label'))) { $field['label'] = trans($label); } // Default the label. $field['label'] = trans(array_get($field, 'label', $namespace . 'configuration.' . $slug . '.name')); // Default the warning. if (trans()->has($warning = array_get($field, 'warning', $namespace . 'configuration.' . $slug . '.warning'))) { $field['warning'] = trans($warning); } // Default the placeholder. $field['config']['placeholder'] = trans(array_get($field, 'placeholder', $namespace . 'configuration.' . $slug . '.placeholder')); // Default the instructions. if (trans()->has($instructions = array_get($field, 'instructions', $namespace . 'configuration.' . $slug . '.instructions'))) { $field['instructions'] = trans($instructions); } // Get the value defaulting to the default value. if ($applied = $configuration->get($namespace . $slug, $scope)) { $field['value'] = $applied->getValue(); } else { $field['value'] = array_get($field['config'], 'default_value'); } } $builder->setFields($fields); }