public function make($requestedFilename, $viewName)
{
// Initialise
$this->xml = null;
$this->strings = array();
// The requested filename should be in the format "form.SOMETHING.xml"
if (substr($requestedFilename, 0, 5) !== 'form.') {
return null;
}
// Get the requested form type
$formType = substr($requestedFilename, 5);
// Make sure the requested form type is supported by this builder
if (!in_array($formType, array('default', 'form', 'item'))) {
return null;
}
switch ($formType) {
default:
case 'default':
$builderType = 'Browse';
break;
case 'form':
$builderType = 'Form';
break;
case 'item':
$builderType = 'Item';
break;
}
// Get the model
$model = $this->container->factory->model($viewName);
// Create the scaffolding object and build the XML file
$className = 'FOF30\\Factory\\Scaffolding\\Layout\\' . $builderType . 'Erector';
/** @var ErectorInterface $erector */
$erector = new $className($this, $model, $viewName);
$erector->build();
if ($this->saveScaffolding) {
$this->saveXml($requestedFilename, $viewName);
$this->saveStrings();
}
$this->applyStrings();
return $this->xml->asXML();
}