/** * Determine which templates will result in templatefields. * * @param ContentType $contentType * @param Content $content * * @return array */ private function getTemplateFieldTemplates(ContentType $contentType, Content $content) { $templateFieldTemplates = []; $templateFieldsConfig = $this->config->get('theme/templatefields'); if ($templateFieldsConfig) { $templateFieldTemplates = array_keys($templateFieldsConfig); // Special case for default template $toRepair = []; foreach ($contentType['fields'] as $name => $field) { if ($field['type'] === 'templateselect' && !empty($content->values[$name])) { $toRepair[$name] = $content->values[$name]; $content->set($name, ''); } } if ($content->hasTemplateFields()) { $templateFieldTemplates[] = ''; } foreach ($toRepair as $name => $value) { $content->set($name, $value); } } return $templateFieldTemplates; }