├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── build.yml │ ├── generate-viewhelper-docs.yml │ ├── generate-xsd.yml │ └── release.yml ├── .gitignore ├── CHANGELOG.md ├── CONTRIBUTING.md ├── Classes ├── Attribute │ └── DataTransformer.php ├── Backend │ ├── BackendLayoutDataProvider.php │ └── PageLayoutDataProvider.php ├── Builder │ ├── ContentTypeBuilder.php │ ├── FlexFormBuilder.php │ ├── RenderingContextBuilder.php │ ├── RequestBuilder.php │ └── ViewBuilder.php ├── Content │ ├── ContentGridForm.php │ ├── ContentTypeFluxTemplateDumper.php │ ├── ContentTypeForm.php │ ├── ContentTypeManager.php │ ├── ContentTypeProvider.php │ ├── ContentTypeValidator.php │ ├── RuntimeDefinedContentProvider.php │ └── TypeDefinition │ │ ├── ContentTypeDefinitionInterface.php │ │ ├── FluidFileBased │ │ ├── DropInContentTypeDefinition.php │ │ └── FluidFileBasedContentTypeDefinition.php │ │ ├── FluidRenderingContentTypeDefinitionInterface.php │ │ ├── RecordBased │ │ ├── RecordBasedContentGridProvider.php │ │ ├── RecordBasedContentTypeDefinition.php │ │ └── RecordBasedContentTypeDefinitionRepository.php │ │ ├── SerializeSafeInterface.php │ │ └── SerializeSafeTrait.php ├── Controller │ ├── AbstractFluxController.php │ ├── ContentController.php │ └── PageController.php ├── Core.php ├── Enum │ ├── ExtensionOption.php │ ├── FormOption.php │ ├── InlineFieldControls.php │ ├── InlineFieldNewRecordButtonPosition.php │ └── PreviewOption.php ├── Form.php ├── Form │ ├── AbstractFormComponent.php │ ├── AbstractFormContainer.php │ ├── AbstractFormField.php │ ├── AbstractInlineFormField.php │ ├── AbstractMultiValueFormField.php │ ├── AbstractRelationFormField.php │ ├── Container │ │ ├── Column.php │ │ ├── Container.php │ │ ├── Grid.php │ │ ├── Row.php │ │ ├── Section.php │ │ ├── SectionObject.php │ │ └── Sheet.php │ ├── ContainerInterface.php │ ├── Conversion │ │ ├── FormConverterInterface.php │ │ └── FormToFluidTemplateConverter.php │ ├── Field.php │ ├── Field │ │ ├── Checkbox.php │ │ ├── ColumnPosition.php │ │ ├── ControllerActions.php │ │ ├── Custom.php │ │ ├── DateTime.php │ │ ├── File.php │ │ ├── Flex.php │ │ ├── Inline.php │ │ ├── Inline │ │ │ └── Fal.php │ │ ├── Input.php │ │ ├── MultiRelation.php │ │ ├── None.php │ │ ├── Passthrough.php │ │ ├── Radio.php │ │ ├── Relation.php │ │ ├── Select.php │ │ ├── Text.php │ │ ├── Tree.php │ │ └── UserFunction.php │ ├── FieldContainerInterface.php │ ├── FieldInterface.php │ ├── FormInterface.php │ ├── InlineRelationFieldInterface.php │ ├── MultiValueFieldInterface.php │ ├── OptionCarryingInterface.php │ ├── RelationFieldInterface.php │ └── Transformation │ │ ├── DataTransformerInterface.php │ │ ├── DataTransformerRegistry.php │ │ ├── FormDataTransformer.php │ │ └── Transformer │ │ ├── ArrayTransformer.php │ │ ├── BooleanTransformer.php │ │ ├── FileTransformer.php │ │ ├── FloatTransformer.php │ │ ├── FunctionCallTransformer.php │ │ ├── IntegerTransformer.php │ │ └── ObjectTransformer.php ├── Hooks │ ├── HookHandler.php │ └── HookSubscriberInterface.php ├── Integration │ ├── BackendLayoutRenderer.php │ ├── Configuration │ │ └── SpooledConfigurationApplicator.php │ ├── Event │ │ ├── AfterLocalizationControllerColumnsEventListener.php │ │ ├── BeforeFlexFormDataStructureIdentifierInitializedEventListener.php │ │ ├── BeforeFlexFormDataStructureParsedEventListener.php │ │ ├── BootCompletedEventListener.php │ │ ├── IsContentUsedOnPageLayoutEventListener.php │ │ ├── ModifyNewContentElementWizardItemsEventListener.php │ │ ├── ModifyPageLayoutContentEventListener.php │ │ └── PageContentPreviewRenderingEventListener.php │ ├── FormEngine │ │ ├── ClearValueWizard.php │ │ ├── ColumnPositionNode.php │ │ ├── ContentTypeValidatorNode.php │ │ ├── HtmlOutputNode.php │ │ ├── NormalizedDataConfigurationProvider.php │ │ ├── NormalizedDataStructureProvider.php │ │ ├── PageLayoutSelector.php │ │ ├── ProtectValueWizard.php │ │ ├── ProviderProcessor.php │ │ ├── SelectOption.php │ │ ├── SiteConfigurationProviderItems.php │ │ ├── TemplateSourceDumperNode.php │ │ └── UserFunctions.php │ ├── HookSubscribers │ │ ├── ColumnPositionItems.php │ │ ├── ContentIcon.php │ │ ├── ContentUsedDecision.php │ │ ├── DataHandlerSubscriber.php │ │ ├── DynamicFlexForm.php │ │ ├── EditDocumentController.php │ │ ├── PagePreviewRenderer.php │ │ ├── Preview.php │ │ ├── StaticTypoScriptInclusion.php │ │ ├── TableConfigurationPostProcessor.php │ │ └── WizardItems.php │ ├── MiddleWare │ │ └── RequestAvailability.php │ ├── MultipleItemsProcFunc.php │ ├── NormalizedData │ │ ├── AbstractImplementation.php │ │ ├── Converter │ │ │ ├── ConverterInterface.php │ │ │ └── InlineRecordDataConverter.php │ │ ├── DataAccessTrait.php │ │ ├── FlexFormImplementation.php │ │ ├── ImplementationInterface.php │ │ └── ImplementationRegistry.php │ ├── Overrides │ │ ├── AbstractChimeraConfigurationManager.php │ │ ├── BackendLayoutView.php │ │ ├── ChimeraConfigurationManager.php │ │ ├── LegacyChimeraConfigurationManager.php │ │ ├── LocalizationController.php │ │ └── PageLayoutView.php │ ├── PreviewRenderer.php │ ├── PreviewView.php │ ├── Resolver.php │ └── WizardItemsManipulator.php ├── Provider │ ├── AbstractProvider.php │ ├── Interfaces │ │ ├── BasicProviderInterface.php │ │ ├── ContentTypeProviderInterface.php │ │ ├── ControllerProviderInterface.php │ │ ├── DataStructureProviderInterface.php │ │ ├── FluidProviderInterface.php │ │ ├── FormProviderInterface.php │ │ ├── GridProviderInterface.php │ │ ├── PluginProviderInterface.php │ │ ├── PreviewProviderInterface.php │ │ ├── RecordProcessingProvider.php │ │ └── RecordProviderInterface.php │ ├── PageProvider.php │ ├── Provider.php │ ├── ProviderInterface.php │ └── ProviderResolver.php ├── Proxy │ ├── DataProviderContextProxy.php │ ├── FlexFormToolsProxy.php │ ├── IconFactoryProxy.php │ ├── ResourceFactoryProxy.php │ ├── SiteFinderProxy.php │ └── TemplatePathsProxy.php ├── Service │ ├── CacheService.php │ ├── PageService.php │ ├── RecordService.php │ ├── TemplateValidationService.php │ ├── TypoScriptService.php │ └── WorkspacesAwareRecordService.php ├── Updates │ └── MigrateColPosWizard.php ├── Utility │ ├── ColumnNumberUtility.php │ ├── CompatibilityRegistry.php │ ├── ContentObjectFetcher.php │ ├── DoctrineQueryProxy.php │ ├── ExtensionConfigurationUtility.php │ ├── ExtensionNamingUtility.php │ ├── MiscellaneousUtility.php │ └── RecursiveArrayUtility.php └── ViewHelpers │ ├── AbstractFormViewHelper.php │ ├── Content │ ├── GetViewHelper.php │ └── RenderViewHelper.php │ ├── Field │ ├── AbstractFieldViewHelper.php │ ├── AbstractInlineFieldViewHelper.php │ ├── AbstractMultiValueFieldViewHelper.php │ ├── AbstractRelationFieldViewHelper.php │ ├── CheckboxViewHelper.php │ ├── ControllerActionsViewHelper.php │ ├── CustomViewHelper.php │ ├── DateTimeViewHelper.php │ ├── FileViewHelper.php │ ├── Inline │ │ └── FalViewHelper.php │ ├── InlineViewHelper.php │ ├── InputViewHelper.php │ ├── MultiRelationViewHelper.php │ ├── NoneViewHelper.php │ ├── RadioViewHelper.php │ ├── RelationViewHelper.php │ ├── SelectViewHelper.php │ ├── TextViewHelper.php │ ├── Tree │ │ └── CategoryViewHelper.php │ ├── TreeViewHelper.php │ └── UserFuncViewHelper.php │ ├── FieldViewHelper.php │ ├── Form │ ├── ContainerViewHelper.php │ ├── ContentViewHelper.php │ ├── DataViewHelper.php │ ├── Object │ │ └── ColumnPositionViewHelper.php │ ├── ObjectViewHelper.php │ ├── Option │ │ ├── GroupViewHelper.php │ │ ├── IconViewHelper.php │ │ ├── InheritanceModeViewHelper.php │ │ ├── SortingViewHelper.php │ │ └── StaticViewHelper.php │ ├── OptionViewHelper.php │ ├── RenderViewHelper.php │ ├── SectionViewHelper.php │ ├── SheetViewHelper.php │ └── VariableViewHelper.php │ ├── FormViewHelper.php │ ├── Grid │ ├── ColumnViewHelper.php │ └── RowViewHelper.php │ ├── GridViewHelper.php │ └── InlineViewHelper.php ├── Configuration ├── JavaScriptModules.php ├── RequestMiddlewares.php ├── Services.php ├── Services.yaml ├── SiteConfiguration │ └── Overrides │ │ └── site.php ├── TCA │ ├── Overrides │ │ ├── flux_field.php │ │ ├── flux_sheet.php │ │ ├── pages.php │ │ ├── sys_template.php │ │ └── tt_content.php │ └── content_types.php └── TypoScript │ ├── constants.txt │ └── setup.txt ├── Documentation ├── Changelog.rst ├── Changelog │ ├── 10.0.0.md │ ├── 10.0.1.md │ ├── 10.0.10.md │ ├── 10.0.2.md │ ├── 10.0.3.md │ ├── 10.0.4.md │ ├── 10.0.5.md │ ├── 10.0.6.md │ ├── 10.0.7.md │ ├── 10.0.8.md │ ├── 10.0.9.md │ ├── 10.1.0.md │ ├── 10.1.1.md │ ├── 11.0.0.md │ ├── 11.0.1.md │ ├── 11.0.2.md │ ├── 11.0.3.md │ ├── 4.7.10.md │ ├── 4.7.11.md │ ├── 4.7.12.md │ ├── 4.7.13.md │ ├── 4.7.14.md │ ├── 4.7.4.md │ ├── 4.7.5.md │ ├── 4.7.6.md │ ├── 4.7.7.md │ ├── 4.7.8.md │ ├── 4.7.9.md │ ├── 5.0.0.md │ ├── 5.0.1.md │ ├── 5.0.2.md │ ├── 5.0.3.md │ ├── 5.1.0.md │ ├── 5.1.1.md │ ├── 5.2.0.md │ ├── 5.2.1.md │ ├── 5.3.0.md │ ├── 6.0.0.md │ ├── 6.0.1.md │ ├── 6.0.2.md │ ├── 6.0.3.md │ ├── 6.0.4.md │ ├── 7.0.0.md │ ├── 7.1.0.md │ ├── 7.1.1.md │ ├── 7.1.2.md │ ├── 7.2.0.md │ ├── 7.2.1.md │ ├── 7.2.2.md │ ├── 7.2.3.md │ ├── 7.3.0.md │ ├── 7.4.0.md │ ├── 8.0.0.md │ ├── 8.0.1.md │ ├── 8.0.2.md │ ├── 8.1.0.md │ ├── 8.2.0.md │ ├── 8.2.1.md │ ├── 9.0.0.md │ ├── 9.0.1.md │ ├── 9.1.0.md │ ├── 9.2.0.md │ ├── 9.3.0.md │ ├── 9.3.1.md │ ├── 9.3.2.md │ ├── 9.4.0.md │ ├── 9.4.1.md │ ├── 9.4.2.md │ ├── 9.5.0.md │ ├── 9.6.0.md │ ├── 9.6.1.md │ ├── 9.7.0.md │ └── 9.7.2.md ├── Includes.rst.txt ├── Index.rst ├── Settings.cfg ├── Sitemap.rst ├── ViewHelpers │ ├── .gitkeep │ ├── Content │ │ ├── Get.rst │ │ ├── Index.rst │ │ └── Render.rst │ ├── Field.rst │ ├── Field │ │ ├── Checkbox.rst │ │ ├── ControllerActions.rst │ │ ├── Custom.rst │ │ ├── DateTime.rst │ │ ├── File.rst │ │ ├── Index.rst │ │ ├── Inline.rst │ │ ├── Inline │ │ │ ├── Fal.rst │ │ │ └── Index.rst │ │ ├── Input.rst │ │ ├── MultiRelation.rst │ │ ├── None.rst │ │ ├── Radio.rst │ │ ├── Relation.rst │ │ ├── Select.rst │ │ ├── Text.rst │ │ ├── Tree.rst │ │ ├── Tree │ │ │ ├── Category.rst │ │ │ └── Index.rst │ │ └── UserFunc.rst │ ├── Form.rst │ ├── Form │ │ ├── Container.rst │ │ ├── Content.rst │ │ ├── Data.rst │ │ ├── Index.rst │ │ ├── Object.rst │ │ ├── Object │ │ │ ├── ColumnPosition.rst │ │ │ └── Index.rst │ │ ├── Option.rst │ │ ├── Option │ │ │ ├── Group.rst │ │ │ ├── Icon.rst │ │ │ ├── Index.rst │ │ │ ├── InheritanceMode.rst │ │ │ ├── Sorting.rst │ │ │ └── Static.rst │ │ ├── Render.rst │ │ ├── Section.rst │ │ ├── Sheet.rst │ │ └── Variable.rst │ ├── Grid.rst │ ├── Grid │ │ ├── Column.rst │ │ ├── Index.rst │ │ └── Row.rst │ ├── Index.rst │ ├── Inline.rst │ ├── Outlet.rst │ ├── Outlet │ │ ├── Argument.rst │ │ ├── Form.rst │ │ ├── Index.rst │ │ └── Validate.rst │ ├── Pipe │ │ ├── Controller.rst │ │ ├── Email.rst │ │ ├── FlashMessage.rst │ │ ├── Index.rst │ │ └── TypeConverter.rst │ └── Wizard │ │ ├── Add.rst │ │ ├── ColorPicker.rst │ │ ├── Edit.rst │ │ ├── Index.rst │ │ ├── Link.rst │ │ ├── List.rst │ │ ├── Select.rst │ │ ├── Slider.rst │ │ └── Suggest.rst └── genindex.rst ├── LICENSE.md ├── README.md ├── Resources ├── Private │ ├── Language │ │ ├── README.md │ │ ├── de.locallang.xlf │ │ └── locallang.xlf │ ├── Layouts │ │ └── Default.html │ ├── Partials │ │ ├── Error │ │ │ ├── Backtrace.html │ │ │ ├── Extended.html │ │ │ ├── Header.html │ │ │ ├── Standard.html │ │ │ └── Style.html │ │ └── Exception │ │ │ └── 1364685651.html │ ├── Schemas │ │ └── Flux.xsd │ ├── Skeletons │ │ ├── Content │ │ │ └── Standard.html │ │ └── Page │ │ │ └── Standard.html │ └── Templates │ │ ├── Content │ │ ├── Proxy.html │ │ └── Validation.html │ │ └── Page │ │ ├── Default.html │ │ ├── Error.html │ │ └── Render.html └── Public │ ├── Icons │ ├── ColorWheel.png │ ├── Extension.svg │ ├── Layout.svg │ ├── Plugin.png │ └── relation.gif │ ├── JavaScript │ ├── FluxColPosAssignment.js │ ├── FluxColPosAssignmentLegacy.js │ └── FluxCollapse.js │ └── css │ └── flux.css ├── Tests ├── Fixtures │ ├── Classes │ │ ├── AccessibleCore.php │ │ ├── AccessibleDataViewHelper.php │ │ ├── AccessibleExtensionManagementUtility.php │ │ ├── AccessibleFormRenderViewHelper.php │ │ ├── AccessibleRecordBasedContentTypeDefinition.php │ │ ├── AccessibleSpooledConfigurationApplicator.php │ │ ├── ContentController.php │ │ ├── CustomForm.php │ │ ├── DummyBasicProvider.php │ │ ├── DummyConfigurationProvider.php │ │ ├── DummyGraphicalFunctions.php │ │ ├── DummyPageController.php │ │ ├── DummyPageProvider.php │ │ ├── DummyPageService.php │ │ ├── DummyRepository.php │ │ ├── DummyViewHelperNode.php │ │ ├── InvalidConfigurationProvider.php │ │ └── MisconfiguredControllerProvider.php │ ├── Data │ │ ├── Records.php │ │ ├── TypoScript │ │ │ ├── constants.txt │ │ │ └── setup.txt │ │ └── Xml.php │ ├── Layouts │ │ └── Default.html │ ├── Outputs │ │ └── GeneratedFluidTemplate.html │ ├── Partials │ │ └── FormComponents.html │ └── Templates │ │ ├── Content │ │ ├── AbsolutelyMinimal.html │ │ ├── BasicGrid.html │ │ ├── CollidingGrid.html │ │ ├── CustomSection.html │ │ ├── Default.html │ │ ├── DualGrid.html │ │ ├── Dummy.html │ │ ├── EmptyPreview.html │ │ ├── Preview.html │ │ ├── Sheets.html │ │ ├── UsesPartial.html │ │ └── WithoutForm.html │ │ └── Page │ │ ├── Dummy.html │ │ └── Nested │ │ └── Dummy.html ├── Mock │ ├── ExpressionBuilder.php │ ├── QueryBuilder.php │ ├── Result.php │ ├── ResultTrait.php │ └── ResultTraitUnion.php ├── Unit │ ├── AbstractExceptionTestCase.php │ ├── AbstractTestCase.php │ ├── Attribute │ │ └── DataTransformerTest.php │ ├── Backend │ │ ├── BackendLayoutDataProviderTest.php │ │ └── PageLayoutDataProviderTest.php │ ├── Builder │ │ ├── ContentTypeBuilderTest.php │ │ ├── FlexFormBuilderTest.php │ │ ├── RenderingContextBuilderTest.php │ │ └── ViewBuilderTest.php │ ├── Content │ │ ├── ContentGridFormTest.php │ │ ├── ContentTypeFluxTemplateDumperTest.php │ │ ├── ContentTypeFormTest.php │ │ ├── ContentTypeManagerTest.php │ │ ├── ContentTypeProviderTest.php │ │ ├── ContentTypeValidatorTest.php │ │ ├── RuntimeDefinedContentProviderTest.php │ │ └── TypeDefinition │ │ │ ├── FluidFileBased │ │ │ ├── DropInContentTypeDefinitionTest.php │ │ │ └── FluidFileBasedContentTypeDefinitionTest.php │ │ │ ├── RecordBased │ │ │ ├── RecordBasedContentGridProviderTest.php │ │ │ ├── RecordBasedContentTypeDefinitionRepositoryTest.php │ │ │ └── RecordBasedContentTypeDefinitionTest.php │ │ │ └── SerializeSafeTraitTest.php │ ├── Controller │ │ ├── AbstractFluxControllerTestCase.php │ │ ├── ContentControllerTest.php │ │ └── PageControllerTest.php │ ├── CoreTest.php │ ├── Form │ │ ├── AbstractFormTest.php │ │ ├── Container │ │ │ ├── AbstractContainerTest.php │ │ │ ├── ColumnTest.php │ │ │ ├── ContainerTest.php │ │ │ ├── GridTest.php │ │ │ ├── RowTest.php │ │ │ ├── SectionObjectTest.php │ │ │ ├── SectionTest.php │ │ │ └── SheetTest.php │ │ ├── Conversion │ │ │ └── FormToFluidTemplateConverterTest.php │ │ ├── Field │ │ │ ├── AbstractFieldTest.php │ │ │ ├── CheckboxTest.php │ │ │ ├── ColumnPositionTest.php │ │ │ ├── ControllerActionsTest.php │ │ │ ├── CustomTest.php │ │ │ ├── DateTimeTest.php │ │ │ ├── FileTest.php │ │ │ ├── FlexTest.php │ │ │ ├── Inline │ │ │ │ └── FalTest.php │ │ │ ├── InlineTest.php │ │ │ ├── InputTest.php │ │ │ ├── MultiRelationTest.php │ │ │ ├── NoneTest.php │ │ │ ├── PassthroughTest.php │ │ │ ├── RadioTest.php │ │ │ ├── RelationTest.php │ │ │ ├── SelectTest.php │ │ │ ├── TextTest.php │ │ │ ├── TreeTest.php │ │ │ └── UserFunctionTest.php │ │ ├── FieldTest.php │ │ └── Transformation │ │ │ ├── DataTransformerRegistryTest.php │ │ │ ├── FormDataTransformerTest.php │ │ │ └── Transformer │ │ │ ├── ArrayTransformerTest.php │ │ │ ├── BooleanTransformerTest.php │ │ │ ├── FileTransformerTest.php │ │ │ ├── FloatTransformerTest.php │ │ │ ├── FunctionCallTransformerTest.php │ │ │ ├── IntegerTransformerTest.php │ │ │ └── ObjectTransformerTest.php │ ├── FormTest.php │ ├── Hooks │ │ ├── HookHandlerTest.php │ │ └── HookSubscriberFixture.php │ ├── Integration │ │ ├── BackendLayoutRendererTest.php │ │ ├── Configuration │ │ │ └── SpooledConfigurationApplicatorTest.php │ │ ├── Event │ │ │ ├── AfterLocalizationControllerColumnsEventListenerTest.php │ │ │ ├── BeforeFlexFormDataStructureIdentifierInitializedEventListenerTest.php │ │ │ ├── BeforeFlexFormDataStructureParsedEventListenerTest.php │ │ │ ├── BootCompletedEventListenerTest.php │ │ │ ├── IsContentUsedOnPageLayoutEventListenerTest.php │ │ │ ├── ModifyNewContentElementWizardItemsEventListenerTest.php │ │ │ ├── ModifyPageLayoutContentEventListenerTest.php │ │ │ └── PageContentPreviewRenderingEventListenerTest.php │ │ ├── FormEngine │ │ │ ├── ClearValueWizardTest.php │ │ │ ├── ColumnPositionNodeTest.php │ │ │ ├── ContentTypeValidatorNodeTest.php │ │ │ ├── HtmlOutputNodeTest.php │ │ │ ├── NormalizedDataConfigurationProviderTest.php │ │ │ ├── NormalizedDataStructureProviderTest.php │ │ │ ├── PageLayoutSelectorTest.php │ │ │ ├── ProtectValueWizardTest.php │ │ │ ├── ProviderProcessorTest.php │ │ │ ├── SiteConfigurationProviderItemsTest.php │ │ │ ├── TemplateSourceDumperNodeTest.php │ │ │ └── UserFunctionsTest.php │ │ ├── HookSubscribers │ │ │ ├── ColumnPositionItemsTest.php │ │ │ ├── ContentIconTest.php │ │ │ ├── ContentUsedDecisionTest.php │ │ │ ├── DataHandlerSubscriberTest.php │ │ │ ├── DynamicFlexFormTest.php │ │ │ ├── PagePreviewRendererTest.php │ │ │ ├── PreviewTest.php │ │ │ ├── StaticTypoScriptIncluisionTest.php │ │ │ ├── TableConfigurationPostProcessorTest.php │ │ │ └── WizardItemsTest.php │ │ ├── Middleware │ │ │ └── RequestAvailabilityTest.php │ │ ├── MultipleItemsProcFuncTest.php │ │ ├── NormalizedData │ │ │ ├── AbstractImplementationTest.php │ │ │ ├── Converter │ │ │ │ └── InlineRecordDataConverterTest.php │ │ │ ├── DataAccessTraitTest.php │ │ │ ├── FlexFormImplementationTest.php │ │ │ └── ImplementationRegistryTest.php │ │ ├── Overrides │ │ │ ├── BackendLayoutViewTest.php │ │ │ ├── ChimeraConfigurationManagerTest.php │ │ │ ├── LegacyChimeraConfigurationManagerTest.php │ │ │ └── PageLayoutViewTest.php │ │ ├── PreviewRendererTest.php │ │ ├── PreviewViewTest.php │ │ ├── ResolverTest.php │ │ └── WizardItemsManipulatorTest.php │ ├── Provider │ │ ├── AbstractProviderTestCase.php │ │ ├── PageProviderTest.php │ │ ├── ProviderResolverTest.php │ │ └── ProviderTest.php │ ├── Service │ │ ├── CacheServiceTest.php │ │ ├── PageServiceTest.php │ │ ├── RecordServiceTest.php │ │ ├── TemplateValidationServiceTest.php │ │ ├── TypoScriptServiceTest.php │ │ └── WorkspacesAwareRecordServiceTest.php │ ├── Utility │ │ ├── ColumnNumberUtilityTest.php │ │ ├── CompatibilityRegistryTest.php │ │ ├── ExtensionConfigurationUtilityTest.php │ │ ├── ExtensionNamingUtilityTest.php │ │ ├── MiscellaneousUtilityTest.php │ │ └── RecursiveArrayUtilityTest.php │ └── ViewHelpers │ │ ├── AbstractFormViewHelperTest.php │ │ ├── AbstractFormViewHelperTestCase.php │ │ ├── AbstractViewHelperTestCase.php │ │ ├── Content │ │ ├── GetViewHelperTest.php │ │ └── RenderViewHelperTest.php │ │ ├── Field │ │ ├── AbstractFieldViewHelperTestCase.php │ │ ├── CheckboxViewHelperTest.php │ │ ├── ControllerActionsViewHelperTest.php │ │ ├── CustomViewHelperTest.php │ │ ├── DateTimeViewHelperTest.php │ │ ├── FileViewHelperTest.php │ │ ├── Inline │ │ │ └── FalViewHelperTest.php │ │ ├── InlineViewHelperTest.php │ │ ├── MultiRelationViewHelperTest.php │ │ ├── NoneViewHelperTest.php │ │ ├── RadioViewHelperTest.php │ │ ├── RelationViewHelperTest.php │ │ ├── SelectViewHelperTest.php │ │ ├── TextViewHelperTest.php │ │ ├── Tree │ │ │ └── CategoryViewHelperTest.php │ │ ├── TreeViewHelperTest.php │ │ └── UserFuncViewHelperTest.php │ │ ├── FieldViewHelperTest.php │ │ ├── Form │ │ ├── AbstractFormFieldTest.php │ │ ├── ContainerViewHelperTest.php │ │ ├── ContentViewHelperTest.php │ │ ├── DataViewHelperTest.php │ │ ├── Object │ │ │ └── ColumnPositionViewHelperTest.php │ │ ├── ObjectViewHelperTest.php │ │ ├── Option │ │ │ ├── GroupViewHelperTest.php │ │ │ ├── IconViewHelperTest.php │ │ │ ├── InheritanceModeViewHelperTest.php │ │ │ ├── SortingViewHelperTest.php │ │ │ └── StaticViewHelperTest.php │ │ ├── OptionViewHelperTest.php │ │ ├── RenderViewHelperTest.php │ │ ├── SectionViewHelperTest.php │ │ ├── SheetViewHelperTest.php │ │ └── VariableViewHelperTest.php │ │ ├── FormViewHelperTest.php │ │ ├── GridViewHelperTest.php │ │ └── InlineViewHelperTest.php ├── preflight.php └── switch_version.php ├── bower.json ├── class.ext_update.php ├── composer.json ├── ext_conf_template.txt ├── ext_emconf.php ├── ext_localconf.php ├── ext_tables.sql ├── phpstan-baseline.neon ├── phpstan-bootstrap.php ├── phpstan.neon └── phpunit.xml.dist /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | charset = utf-8 6 | 7 | # Get rid of whitespace to avoid diffs with a bunch of EOL changes 8 | trim_trailing_whitespace = true 9 | 10 | [*] 11 | end_of_line = lf 12 | insert_final_newline = true 13 | 14 | [*.{php}] 15 | indent_size = 4 16 | indent_style = space 17 | 18 | [*.{html,js,css}] 19 | indent_size = 4 20 | indent_style = tab 21 | 22 | [*.{json,yml,txt,md,sql}] 23 | indent_size = 2 24 | indent_style = space 25 | 26 | [*.{xml,xlf,xsd}] 27 | indent_size = 2 28 | indent_style = tab 29 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: 'BUG: foobar fails when baz' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **I have checked that the bug exists in the `dev-development` branch** 11 | _Yes or no._ 12 | If you're about to answer "no" here, it is your responsibility to check `dev-development` **before** opening a bug report! 13 | 14 | **I have checked that there are no already open issues or recently closed issues about this bug** 15 | _Yes or no._ 16 | If you're about to answer "no" here, it is your responsibility to first check the open and recently closed issues for potential duplicaates. 17 | 18 | **Describe the bug** 19 | A clear and concise description of what the bug is. 20 | 21 | **To Reproduce** 22 | Steps to reproduce the behavior: 23 | 1. Go to '...' 24 | 2. Click on '....' 25 | 3. Scroll down to '....' 26 | 4. See error 27 | 28 | **Expected behavior** 29 | A clear and concise description of what you expected to happen. 30 | 31 | **Screenshots** 32 | If applicable, add screenshots to help explain your problem. 33 | 34 | **Additional context** 35 | Add any other context about the problem here. 36 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: 'Feature request: having foobar would be nice' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered or workarounds you currently have to use** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | tags: 4 | - "**" 5 | 6 | jobs: 7 | release: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Setup PHP 11 | uses: shivammathur/setup-php@v2 12 | with: 13 | php-version: 8.2 14 | extensions: mbstring, json 15 | ini-values: date.timezone="Europe/Copenhagen", opcache.fast_shutdown=0 16 | tools: composer:v2.2 17 | - name: "create working directory" 18 | run: "mkdir tailor" 19 | - name: "Install Tailor" 20 | working-directory: tailor 21 | run: "composer require typo3/tailor" 22 | - name: "Upload to TER" 23 | working-directory: tailor 24 | run: "./vendor/bin/tailor ter:publish $TAG $EXTENSION_KEY --artefact $ARTEFECT_URL --comment \"$MESSAGE\"" 25 | env: 26 | TYPO3_API_USERNAME: ${{ secrets.TER_USERNAME }} 27 | TYPO3_API_TOKEN: ${{ secrets.TER_TOKEN }} 28 | TAG: ${{ github.ref_name }} 29 | EXTENSION_KEY: flux 30 | ARTEFECT_URL: "https://github.com/${{ github.repository }}/archive/${{ github.ref }}.zip" 31 | MESSAGE: "Automatic release built from GitHub. See the CHANGELOG.md file that is shipped with this release for details." 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .phpunit.result.cache 3 | vendor 4 | build 5 | src 6 | composer.lock 7 | /index.php 8 | /typo3 9 | /typo3_src 10 | /public 11 | /preflight 12 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Welcome, Contributor! 2 | ===================== 3 | 4 | It's great to see you here - and we welcome your contributions. But first, take a look at 5 | our official contribution guide which explains what we expect from you - in order to make 6 | sure you can expect the best possible result from our extensions. Without further ado: 7 | 8 | > https://fluidtypo3.org/documentation/contributing/contribution-guide.html 9 | -------------------------------------------------------------------------------- /Classes/Attribute/DataTransformer.php: -------------------------------------------------------------------------------- 1 | identifier = $identifier; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Classes/Content/TypeDefinition/ContentTypeDefinitionInterface.php: -------------------------------------------------------------------------------- 1 | getForm(); 28 | $this->getGrid(); 29 | return array_diff(array_keys(get_class_vars(static::class)), ['types']); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Classes/Controller/ContentController.php: -------------------------------------------------------------------------------- 1 | page ?? []; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Classes/Enum/ExtensionOption.php: -------------------------------------------------------------------------------- 1 | 'array', 23 | 'section' => '1', 24 | 'title' => $this->getLabel(), 25 | 'el' => $this->buildChildren($this->children) 26 | ]; 27 | return $structureArray; 28 | } 29 | 30 | /** 31 | * @return FormInterface[] 32 | */ 33 | public function getFields(): iterable 34 | { 35 | return iterator_to_array($this->children); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Classes/Form/Container/Row.php: -------------------------------------------------------------------------------- 1 | $this->getName(), 26 | 'label' => $this->getLabel(), 27 | 'columns' => $this->buildChildren($this->children) 28 | ]; 29 | return $structure; 30 | } 31 | 32 | /** 33 | * @return Column[] 34 | */ 35 | public function getColumns(): iterable 36 | { 37 | return iterator_to_array($this->children); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Classes/Form/ContainerInterface.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('check'); 19 | return $fieldConfiguration; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Classes/Form/Field/ColumnPosition.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('user'); 21 | $fieldConfiguration['renderType'] = 'fluxColumnPosition'; 22 | return $fieldConfiguration; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Classes/Form/Field/Custom.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('user'); 21 | $fieldConfiguration['userFunc'] = UserFunctions::class . '->renderHtmlOutputField'; 22 | $fieldConfiguration['renderType'] = 'fluxHtmlOutput'; 23 | $fieldConfiguration['parameters'] = [ 24 | 'closure' => $this->getClosure(), 25 | 'arguments' => $this->getArguments(), 26 | ]; 27 | return $fieldConfiguration; 28 | } 29 | 30 | public function setClosure(\Closure $closure): self 31 | { 32 | $this->closure = $closure; 33 | return $this; 34 | } 35 | 36 | public function getClosure(): ?\Closure 37 | { 38 | return $this->closure; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Classes/Form/Field/DateTime.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('flex'); 20 | return $configuration; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Classes/Form/Field/Inline.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('inline'); 21 | return $configuration; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Classes/Form/Field/MultiRelation.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('group'); 21 | $configuration['internal_type'] = 'db'; 22 | $configuration['allowed'] = $this->getTable(); 23 | return $configuration; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Classes/Form/Field/None.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('none'); 22 | $configuration['size'] = $this->getSize(); 23 | return $configuration; 24 | } 25 | 26 | public function setSize(int $size): self 27 | { 28 | $this->size = $size; 29 | return $this; 30 | } 31 | 32 | public function getSize(): int 33 | { 34 | return $this->size; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Classes/Form/Field/Passthrough.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('passthrough'); 20 | return $configuration; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Classes/Form/Field/Radio.php: -------------------------------------------------------------------------------- 1 | getItems(); 18 | return $configuration; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Classes/Form/Field/Relation.php: -------------------------------------------------------------------------------- 1 | prepareConfiguration('select'); 21 | return $configuration; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Classes/Form/FieldContainerInterface.php: -------------------------------------------------------------------------------- 1 | context; 25 | } 26 | return $context ?? $this->transferredContext; 27 | } 28 | 29 | public function setContext(PageLayoutContext $context): void 30 | { 31 | $this->transferredContext = $context; 32 | if (property_exists($this, 'context')) { 33 | $this->context = $context; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Classes/Integration/Event/AfterLocalizationControllerColumnsEventListener.php: -------------------------------------------------------------------------------- 1 | getColumns(); 19 | $columnList = $event->getColumnList(); 20 | foreach ($event->getRecords() as $record) { 21 | $colPos = (int) $record['colPos']; 22 | if ($colPos >= ColumnNumberUtility::MULTIPLIER && !isset($columns['columns'][$colPos])) { 23 | $columns[$colPos] = 'Nested'; 24 | $columnList[] = (string) $colPos; 25 | } 26 | } 27 | $event->setColumns($columns); 28 | $event->setColumnList(array_values(array_unique($columnList))); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/Integration/Event/BeforeFlexFormDataStructureIdentifierInitializedEventListener.php: -------------------------------------------------------------------------------- 1 | resolveDataStructureIdentifier( 22 | $event->getTableName(), 23 | $event->getFieldName(), 24 | $event->getRow() 25 | ); 26 | if (!empty($identifier)) { 27 | $event->setIdentifier($identifier); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/Integration/Event/BeforeFlexFormDataStructureParsedEventListener.php: -------------------------------------------------------------------------------- 1 | parseDataStructureByIdentifier($event->getIdentifier()); 22 | if (!empty($structure)) { 23 | $event->setDataStructure($structure); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Classes/Integration/Event/BootCompletedEventListener.php: -------------------------------------------------------------------------------- 1 | processData(); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Classes/Integration/Event/IsContentUsedOnPageLayoutEventListener.php: -------------------------------------------------------------------------------- 1 | isRecordUsed()) { 19 | $event->setUsed($event->getRecord()['colPos'] >= ColumnNumberUtility::MULTIPLIER); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Classes/Integration/Event/ModifyNewContentElementWizardItemsEventListener.php: -------------------------------------------------------------------------------- 1 | wizardItemsManipulator = $wizardItemsManipulator; 21 | } 22 | 23 | public function manipulateWizardItems(ModifyNewContentElementWizardItemsEvent $event): void 24 | { 25 | $items = $event->getWizardItems(); 26 | $columnPosition = $event->getColPos(); 27 | $pageInfo = $event->getPageInfo(); 28 | $pageUid = $pageInfo['uid']; 29 | $event->setWizardItems( 30 | $this->wizardItemsManipulator->manipulateWizardItems($items, $pageUid, $columnPosition) 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Classes/Integration/Event/PageContentPreviewRenderingEventListener.php: -------------------------------------------------------------------------------- 1 | getTable(); 20 | $record = $event->getRecord(); 21 | 22 | if ($table !== 'tt_content') { 23 | return; 24 | } 25 | 26 | /** @var PreviewRenderer $renderer */ 27 | $renderer = GeneralUtility::makeInstance(PreviewRenderer::class); 28 | $preview = $renderer->renderPreview($record, null, $event->getPreviewContent()); 29 | if ($preview && !empty($preview[1])) { 30 | $event->setPreviewContent($preview[1]); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Classes/Integration/FormEngine/ColumnPositionNode.php: -------------------------------------------------------------------------------- 1 | initializeResultArray(); 20 | /** @var UserFunctions $userFunctions */ 21 | $userFunctions = GeneralUtility::makeInstance(UserFunctions::class); 22 | $return['html'] = $userFunctions->renderColumnPositionField($this->data); 23 | return $return; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Classes/Integration/FormEngine/ContentTypeValidatorNode.php: -------------------------------------------------------------------------------- 1 | initializeResultArray(); 14 | /** @var ContentTypeValidator $validator */ 15 | $validator = GeneralUtility::makeInstance(ContentTypeValidator::class); 16 | $return['html'] = $validator->validateContentTypeRecord( 17 | $this->data['parameterArray'] + ['row' => $this->data['databaseRow']] 18 | ); 19 | return $return; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Classes/Integration/FormEngine/HtmlOutputNode.php: -------------------------------------------------------------------------------- 1 | initializeResultArray(); 20 | /** @var UserFunctions $userFunctions */ 21 | $userFunctions = GeneralUtility::makeInstance(UserFunctions::class); 22 | $return['html'] = $userFunctions->renderHtmlOutputField($this->data['parameterArray']); 23 | return $return; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Classes/Integration/FormEngine/NormalizedDataConfigurationProvider.php: -------------------------------------------------------------------------------- 1 | 'passthrough']; 18 | } 19 | } 20 | return $result; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Classes/Integration/FormEngine/SelectOption.php: -------------------------------------------------------------------------------- 1 | label = $label; 23 | $this->value = $value; 24 | $this->icon = $icon; 25 | $this->namedKeys = version_compare(VersionNumberUtility::getCurrentTypo3Version(), '12.3', '>='); 26 | } 27 | 28 | public function toArray(): array 29 | { 30 | $option = [ 31 | 'label' => $this->label, 32 | 'value' => $this->value, 33 | ]; 34 | if ($this->icon !== null) { 35 | $option['icon'] = null; 36 | } 37 | if (!$this->namedKeys) { 38 | return array_values($option); 39 | } 40 | return $option; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Classes/Integration/FormEngine/TemplateSourceDumperNode.php: -------------------------------------------------------------------------------- 1 | initializeResultArray(); 14 | /** @var ContentTypeFluxTemplateDumper $dumper */ 15 | $dumper = GeneralUtility::makeInstance(ContentTypeFluxTemplateDumper::class); 16 | $return['html'] = $dumper->dumpFluxTemplate( 17 | $this->data['parameterArray'] + ['row' => $this->data['databaseRow']] 18 | ); 19 | return $return; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Classes/Integration/HookSubscribers/ContentUsedDecision.php: -------------------------------------------------------------------------------- 1 | = ColumnNumberUtility::MULTIPLIER; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Classes/Integration/HookSubscribers/EditDocumentController.php: -------------------------------------------------------------------------------- 1 | loadJavaScriptModule('@fluidtypo3/flux/FluxColPosAssignment.js'); 31 | } else { 32 | $pageRenderer->loadRequireJsModule('TYPO3/CMS/Flux/FluxColPosAssignmentLegacy'); 33 | } 34 | 35 | self::$assetLoaded = true; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Classes/Integration/HookSubscribers/TableConfigurationPostProcessor.php: -------------------------------------------------------------------------------- 1 | applicator = $applicator; 24 | } 25 | 26 | public function processData(): void 27 | { 28 | $this->applicator->processData(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/Integration/MiddleWare/RequestAvailability.php: -------------------------------------------------------------------------------- 1 | handle($request); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Classes/Integration/NormalizedData/AbstractImplementation.php: -------------------------------------------------------------------------------- 1 | settings = $settings; 16 | } 17 | 18 | /** 19 | * Default implementation applies to any record 20 | * that's not empty, given that the other to 21 | * appliesTo() methods have both returned TRUE. 22 | */ 23 | public function appliesToRecord(array $record): bool 24 | { 25 | return !empty($record); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Classes/Integration/NormalizedData/Converter/ConverterInterface.php: -------------------------------------------------------------------------------- 1 | refreshRequestIfNecessary(); 13 | 14 | parent::initializeConcreteConfigurationManager(); 15 | 16 | $this->frontendConfigurationManager = $this->objectManager->get(FrontendConfigurationManager::class); 17 | $this->backendConfigurationManager = $this->objectManager->get(BackendConfigurationManager::class); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Classes/Provider/Interfaces/BasicProviderInterface.php: -------------------------------------------------------------------------------- 1 | flexFormTools = $flexFormTools; 25 | } 26 | 27 | public function getDataStructureIdentifier( 28 | array $fieldTca, 29 | string $tableName, 30 | string $fieldName, 31 | array $row 32 | ): string { 33 | return $this->flexFormTools->getDataStructureIdentifier($fieldTca, $tableName, $fieldName, $row); 34 | } 35 | 36 | public function parseDataStructureByIdentifier(string $identifier): array 37 | { 38 | return $this->flexFormTools->parseDataStructureByIdentifier($identifier); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Classes/Proxy/IconFactoryProxy.php: -------------------------------------------------------------------------------- 1 | iconFactory = $iconFactory; 28 | } 29 | 30 | /** 31 | * @param string|IconSize $size 32 | * @param \TYPO3\CMS\Core\Type\Icon\IconState|IconState|null $state 33 | */ 34 | public function getIcon( 35 | string $identifier, 36 | $size, 37 | ?string $overlayIdentifier = null, 38 | $state = null 39 | ): Icon { 40 | return $this->iconFactory->getIcon($identifier, $size, $overlayIdentifier, $state); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Classes/Proxy/ResourceFactoryProxy.php: -------------------------------------------------------------------------------- 1 | resourceFactory = $resourceFactory; 26 | } 27 | 28 | public function getFileReferenceObject(int $uid): FileReference 29 | { 30 | return $this->resourceFactory->getFileReferenceObject($uid); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Classes/Proxy/TemplatePathsProxy.php: -------------------------------------------------------------------------------- 1 | =')) { 22 | return [ 23 | TemplatePaths::CONFIG_TEMPLATEROOTPATHS => $templatePaths->getTemplateRootPaths(), 24 | TemplatePaths::CONFIG_PARTIALROOTPATHS => $templatePaths->getPartialRootPaths(), 25 | TemplatePaths::CONFIG_LAYOUTROOTPATHS => $templatePaths->getLayoutRootPaths(), 26 | ]; 27 | } 28 | return $templatePaths->toArray(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Field/CheckboxViewHelper.php: -------------------------------------------------------------------------------- 1 | setItems($arguments['items']); 26 | return $component; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Form/Option/GroupViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('value', 'string', 'Name of the group'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Form/Option/SortingViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument( 25 | 'value', 26 | 'integer', 27 | 'Sorting value of form (how this is applied depends on the implementation using the Form instance; ' . 28 | 'see third-party feature documentation)' 29 | ); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Form/Option/StaticViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument( 28 | 'value', 29 | 'boolean', 30 | 'Configures caching of the DS resulting from the form. Default when used is TRUE which enables caching', 31 | false, 32 | true 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Configuration/JavaScriptModules.php: -------------------------------------------------------------------------------- 1 | ['core', 'backend'], 5 | 'imports' => [ 6 | '@fluidtypo3/flux/' => 'EXT:flux/Resources/Public/JavaScript/', 7 | ] 8 | ]; 9 | -------------------------------------------------------------------------------- /Configuration/RequestMiddlewares.php: -------------------------------------------------------------------------------- 1 | [ 4 | 'fluidtypo3/flux/request-availability' => [ 5 | 'target' => \FluidTYPO3\Flux\Integration\MiddleWare\RequestAvailability::class, 6 | 'before' => [ 7 | 'typo3/cms-core/normalized-params-attribute', 8 | ], 9 | ], 10 | ], 11 | ]; 12 | -------------------------------------------------------------------------------- /Configuration/TCA/Overrides/sys_template.php: -------------------------------------------------------------------------------- 1 | colPosListItemProcFunc' 8 | ); 9 | 10 | $GLOBALS['TCA']['tt_content']['columns']['pi_flexform']['label'] = 'LLL:EXT:flux/Resources/Private/Language/locallang.xlf:tt_content.pi_flexform'; 11 | 12 | // TYPO3v13 neglects to define that the tt_content table should store the UID of the original record when copying 13 | // a content record to a new page. Since Flux demands this column (the original record's details are looked up in 14 | // order to determine how to process children), we must define this instruction ourselves. 15 | $GLOBALS['TCA']['tt_content']['ctrl']['origUid'] = 't3_origuid'; 16 | 17 | if (\FluidTYPO3\Flux\Utility\ExtensionConfigurationUtility::getOption(\FluidTYPO3\Flux\Utility\ExtensionConfigurationUtility::OPTION_FLEXFORM_TO_IRRE)) { 18 | \FluidTYPO3\Flux\Integration\NormalizedData\FlexFormImplementation::registerForTableAndField('tt_content', 'pi_flexform'); 19 | } 20 | })(); 21 | -------------------------------------------------------------------------------- /Configuration/TypoScript/constants.txt: -------------------------------------------------------------------------------- 1 | # cat=FLUX/settings; type=boolean; label=Allow pages which have is_siteroot = 1 to inherit chosen template from parent. Disable this to prevent subsites in a multisite environment from using the same template as the immediate parent of that site root. 2 | plugin.tx_flux.siteRootInheritance = 1 3 | -------------------------------------------------------------------------------- /Configuration/TypoScript/setup.txt: -------------------------------------------------------------------------------- 1 | 2 | page = PAGE 3 | page.typeNum = 0 4 | page.5 = USER 5 | page.5.userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run 6 | page.5.extensionName = Flux 7 | page.5.vendorName = FluidTYPO3 8 | page.5.pluginName = Page 9 | 10 | plugin.tx_flux { 11 | siteRootInheritance = {$plugin.tx_flux.siteRootInheritance} 12 | } 13 | 14 | lib.default_menu = HMENU 15 | lib.default_menu.1 = TMENU 16 | lib.default_menu.1.NO = 1 17 | 18 | lib.default_content = CONTENT 19 | lib.default_content { 20 | table = tt_content 21 | select.where = colPos = 0 22 | } 23 | 24 | plugin.tx_flux.view { 25 | templateRootPaths.0 = design/Templates/ 26 | templateRootPaths.10 = EXT:flux/Resources/Private/Templates/ 27 | layoutRootPaths.0 = design/Layouts/ 28 | layoutRootPaths.10 = EXT:flux/Resources/Private/Layouts/ 29 | partialRootPaths.0 = design/Partials/ 30 | partialRootPaths.10 = EXT:flux/Resources/Private/Partials/ 31 | } 32 | 33 | module.tx_flux.view < plugin.tx_flux.view 34 | -------------------------------------------------------------------------------- /Documentation/Changelog.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | .. _changelog: 4 | 5 | Changelog 6 | ========= 7 | 8 | Please follow these links to find out which feature has been implemented or 9 | which bug has been fixed in which version. 10 | 11 | .. seealso:: 12 | 13 | The changelog files may have some rendering bugs as they are generated in 14 | Markdown format, which clashes a bit with the usual reST format. If in doubt, 15 | navigate to the `GitHub view `__. 16 | 17 | List of versions 18 | ---------------- 19 | 20 | .. toctree:: 21 | :maxdepth: 1 22 | :titlesonly: 23 | :glob: 24 | :reversed: 25 | 26 | Changelog/* 27 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.1 (2023/08/23) 2 | 3 | * 2023-08-17 [BUGFIX] Pass fieldArray as record when resolving Provider (Commit 2082e9ca3 by Claus Due) 4 | * 2023-08-16 [BUGFIX] Swallow PageNotFoundException during bootstrap (Commit 55805a1a7 by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2023/08/16" --until="2023/08/23" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.0...10.0.1 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.10.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.10 (2024/05/07 11:37:40) 2 | 3 | * 2024-05-07 [BUGFIX] Do not reuse TemplateView instance when reading available page templates (Commit 654b993a by Claus Due) 4 | * 2024-04-02 [BUGFIX] Fix warning "Undefined array key colPos" (#2156) (Commit d6ed7337 by CERDAN Yohann) 5 | * 2024-04-02 [BUGFIX] Handle possible DBALException (#2153) (Commit 066027a5 by Jan Storm) 6 | * 2024-03-19 [BUGFIX] Fix handling of drop-in templates (Commit dcf0795a by Claus Due) 7 | 8 | Generated by: 9 | 10 | ``` 11 | git log --since="2024/01/11 19:24:35" --until="2024/05/07 11:37:40" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 12 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 13 | ``` 14 | 15 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.9...10.0.10 16 | 17 | *Please note: the change list above does not contain any TASK commits since they are considered 18 | infrastructure-only and not relevant to end users. The full list includes these!* 19 | 20 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.2.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.2 (2023/08/25) 2 | 3 | * 2023-08-25 [BUGFIX] Also patch TCEforms wrapper on TYPO3 11.5 (Commit 8f5f28dbc by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2023/08/23" --until="2023/08/25" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.1...10.0.2 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.3.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.3 (2023/08/28 14:48:02) 2 | 3 | * 2023-08-28 [BUGFIX] Fix hairy issue with TS being destroyed by CLI-based use of TemplateService (Commit 47867f27 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2023/08/25 10:47:16" --until="2023/08/28 14:48:02" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.2...10.0.3 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.4.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.4 (2023/09/07 11:02:31) 2 | 3 | * 2023-09-06 [BUGFIX] Preserve virutal columns from ContentObject data (Commit bcec0b06 by Claus Due) 4 | * 2023-09-05 [BUGFIX] Replace specific implementation of ConfigurationManager in addition to interface alias (Commit d26fd1c9 by Claus Due) 5 | * 2023-09-04 [BUGFIX] Move misplaced class to correct folder (Commit 843526a2 by Claus Due) 6 | * 2023-09-04 [BUGFIX] Igore cache errors on cache entry removal (Commit 0c200bca by Claus Due) 7 | * 2023-09-04 [BUGFIX] Allow CacheService to function before cache table(s) exist (Commit a2c92087 by Claus Due) 8 | 9 | Generated by: 10 | 11 | ``` 12 | git log --since="2023/08/28 14:49:09" --until="2023/09/07 11:02:31" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 13 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 14 | ``` 15 | 16 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.3...10.0.4 17 | 18 | *Please note: the change list above does not contain any TASK commits since they are considered 19 | infrastructure-only and not relevant to end users. The full list includes these!* 20 | 21 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.5.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.5 (2023/09/08 10:35:07) 2 | 3 | * 2023-09-08 [BUGFIX] Set page layout header content only if non-empty (Commit 2c1b36b9 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2023/09/07 11:03:38" --until="2023/09/08 10:35:07" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.4...10.0.5 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.6.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.6 (2023/09/11 14:24:33) 2 | 3 | * 2023-09-11 [BUGFIX] Remove workaround for incompletely booted CLI contexts (Commit 2e8fa085 by Claus Due) 4 | * 2023-09-11 [BUGFIX] Assign "data" and "contentObject" template variables (Commit 254a190d by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2023/09/08 10:36:14" --until="2023/09/11 14:24:33" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.5...10.0.6 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.7.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.7 (2023/10/10 09:17:59) 2 | 3 | * 2023-10-10 [BUGFIX] Correct template lookup when page record is new (Commit 2eecad3d by Claus Due) 4 | * 2023-09-28 [BUGFIX] Remove "images" from softref parsers list in Text element (Commit c68381f6 by Claus Due) 5 | * 2023-09-11 [BUGFIX] Proxy setContentObject in ChimeraConfigurationManager (Commit 93241db6 by Claus Due) 6 | 7 | Generated by: 8 | 9 | ``` 10 | git log --since="2023/09/11 14:25:41" --until="2023/10/10 09:17:59" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 11 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 12 | ``` 13 | 14 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.6...10.0.7 15 | 16 | *Please note: the change list above does not contain any TASK commits since they are considered 17 | infrastructure-only and not relevant to end users. The full list includes these!* 18 | 19 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.8.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.8 (2023/11/27 10:26:12) 2 | 3 | * 2023-11-27 [BUGFIX] Null-coalesce possibly null flexform source in record (Commit 4bb1a1ce by Claus Due) 4 | * 2023-11-09 [BUGFIX] Prevent warnings if DataHandler received record has no language (Commit 5c10d642 by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2023/10/10 09:19:06" --until="2023/11/27 10:26:12" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.7...10.0.8 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.0.9.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.0.9 (2024/01/11 19:23:29) 2 | 3 | * 2023-12-14 [BUGFIX] Allow ItemProcessingService as param in MultipleItemsProcFunc (#2144) (Commit 9232d18a by Tobias Gräber) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2023/11/27 10:27:19" --until="2024/01/11 19:23:29" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.0.8...10.0.9 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/10.1.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 10.1.1 (2025/01/20 13:55:00) 2 | 3 | * 2025-01-15 [BUGFIX] Fix error when copying a page (Commit d78e45da by Christian Weiske) 4 | * 2025-01-12 [BUGFIX] Allow controller-based operation as COA_INT (Commit 5715135b by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2024/12/09 14:28:10" --until="2025/01/20 13:55:00" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/10.1.0...10.1.1 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/11.0.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 11.0.1 (2025/05/06 12:54:50) 2 | 3 | * 2025-05-06 [BUGFIX] Avoid deprecation method in newer Fluid (Commit 537d48b8 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2025/05/01 11:01:47" --until="2025/05/06 12:54:50" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/11.0.0...11.0.1 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/11.0.2.md: -------------------------------------------------------------------------------- 1 | ## Release: 11.0.2 (2025/05/06 13:26:52) 2 | 3 | * 2025-05-06 Revert "[BUGFIX] Avoid deprecation method in newer Fluid" (Commit 6e597874 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2025/05/06 12:55:57" --until="2025/05/06 13:26:52" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/11.0.1...11.0.2 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/11.0.3.md: -------------------------------------------------------------------------------- 1 | ## Release: 11.0.3 (2025/05/12 12:00:22) 2 | 3 | * 2025-05-12 [BUGFIX] Provider variables in Configuration section even if FF data is array (Commit bdfd22b6 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2025/05/06 13:28:00" --until="2025/05/12 12:00:22" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/11.0.2...11.0.3 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.10.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.10 (2012/11/08) 2 | 3 | * 2012-11-07 [BUGFIX] Version checks when reading $fieldName (Commit 88c86b8 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2012/11/07" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.9...4.7.10 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.11.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.11 (2012/11/13) 2 | 3 | * 2012-11-12 [FEATURE] Add "wizardTab" argument to flux:flexform (Commit 9948868 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2012/11/08" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.10...4.7.11 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.12.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.12 (2012/11/24) 2 | 3 | * 2012-11-23 [FEATURE] ConfigurationService to quickly get TypoScript (Commit 3a80392 by Claus Due) 4 | * 2012-11-22 [FEATURE] Record and block unregistered Providers (Commit 690449e by Claus Due) 5 | * 2012-11-22 [FEATURE] Add unregisterConfigurationProvider method (Commit 9b5081d by Claus Due) 6 | * 2012-11-21 [FEATURE] Added above/below 6.0 assertions in Version Utility (Commit 24f3251 by Claus Due) 7 | * 2012-11-20 [FEATURE] Allow "displayCond" on all field types (Commit 483df80 by Claus Due) 8 | 9 | Generated by: 10 | 11 | ``` 12 | git log --since="2012/11/13" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 13 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 14 | ``` 15 | 16 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.11...4.7.12 17 | 18 | *Please note: the change list above does not contain any TASK commits since they are considered 19 | infrastructure-only and not relevant to end users. The full list includes these!* 20 | 21 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.13.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.13 (2012/12/02) 2 | 3 | * 2012-12-02 [BUGFIX] Ensure that record row is passed to ConfigurationProviders even if row was empty (Commit 3a37264 by Claus Due) 4 | * 2012-12-01 [BUGFIX] Correct condition for reporting FlexForm field passing support, 4.x branches (Commit 22798c1 by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2012/11/23" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.12...4.7.13 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.14.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.14 (2012/12/16) 2 | 3 | * 2012-12-16 [BUGFIX] Fixes for copying and pasting elements using click menu items (Commit 4466a33 by Claus Due) 4 | * 2012-12-16 [BUGFIX] Correct condition when checking if child record uses old column name syntax (Commit 3753b78 by Claus Due) 5 | * 2012-12-13 [BUGFIX] Set template path instead of setting action as legacy support, Grid Widget Controller (Commit 0cce120 by Claus Due) 6 | * 2012-12-13 [BUGFIX] Set dratItem=FALSE in Preview to prevent "unknown CType" error (Commit 932dce6 by Claus Due) 7 | * 2012-12-02 [BUGFIX] Ensure that record row is passed to ConfigurationProviders even if row was empty (Commit 3a37264 by Claus Due) 8 | 9 | Generated by: 10 | 11 | ``` 12 | git log --since="2012/12/01" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 13 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 14 | ``` 15 | 16 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.13...4.7.14 17 | 18 | *Please note: the change list above does not contain any TASK commits since they are considered 19 | infrastructure-only and not relevant to end users. The full list includes these!* 20 | 21 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.5.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.5 (2012/10/22) 2 | 3 | * 2012-10-20 [BUGFIX] Load all fields into record from TceMain processing (Commit 996f1ea by Claus Due) 4 | * 2012-10-16 [BUGFIX] Backup of "parameters" template variable, html/custom fields (Commit 71eab87 by Claus Due) 5 | * 2012-10-16 [BUGFIX] Repeated use of flux:flexform.field.custom and .html (Commit d6feb10 by Claus Due) 6 | 7 | Generated by: 8 | 9 | ``` 10 | git log --since="2012/10/15" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 11 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 12 | ``` 13 | 14 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.4...4.7.5 15 | 16 | *Please note: the change list above does not contain any TASK commits since they are considered 17 | infrastructure-only and not relevant to end users. The full list includes these!* 18 | 19 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.6.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.6 (2012/10/30) 2 | 3 | * 2012-10-30 [BUGFIX] Ignore Provider field names on inconsistent TYPO3 versions (Commit ccfba44 by Claus Due) 4 | * 2012-10-29 [BUGFIX] Remove trailing comma, ext_tables.sql (Commit 2007a16 by Claus Due) 5 | * 2012-10-24 [BUGFIX] Prevent warnings when operating TceMain on non-records (Commit 112314d by Claus Due) 6 | 7 | Generated by: 8 | 9 | ``` 10 | git log --since="2012/10/21" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 11 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 12 | ``` 13 | 14 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.5...4.7.6 15 | 16 | *Please note: the change list above does not contain any TASK commits since they are considered 17 | infrastructure-only and not relevant to end users. The full list includes these!* 18 | 19 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.7.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.7 (2012/11/06) 2 | 3 | * 2012-11-06 [BUGFIX] Proper version detection, AbstractConfigurationProvider (Commit 0b7e93b by Claus Due) 4 | * 2012-11-05 [BUGFIX] Load all record data before calling ConfigurationProviderMethods (Commit 7dd305c by Claus Due) 5 | * 2012-11-05 [BUGFIX] Incorrect scope in Custom / Html Field ViewHelper closure (Commit 6ce6a34 by Claus Due) 6 | * 2012-10-30 [BUGFIX] Ignore Provider field names on inconsistent TYPO3 versions (Commit ccfba44 by Claus Due) 7 | * 2012-10-29 [BUGFIX] Remove trailing comma, ext_tables.sql (Commit 2007a16 by Claus Due) 8 | 9 | Generated by: 10 | 11 | ``` 12 | git log --since="2012/10/29" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 13 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 14 | ``` 15 | 16 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.6...4.7.7 17 | 18 | *Please note: the change list above does not contain any TASK commits since they are considered 19 | infrastructure-only and not relevant to end users. The full list includes these!* 20 | 21 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.8.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.8 (2012/11/07) 2 | 3 | * 2012-11-07 [BUGFIX] Set fieldName = NULL on inconsistent versions, BE Preview (Commit bfd6829 by Claus Due) 4 | * 2012-11-06 [BUGFIX] Proper version detection, AbstractConfigurationProvider (Commit 0b7e93b by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2012/11/05" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.7...4.7.8 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/4.7.9.md: -------------------------------------------------------------------------------- 1 | ## Release: 4.7.9 (2012/11/07) 2 | 3 | * 2012-11-07 [BUGFIX] Version checks when reading $fieldName (Commit 88c86b8 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2012/11/07" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.8...4.7.9 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/5.0.0.md: -------------------------------------------------------------------------------- 1 | ## Release: 5.0.0 (2012/12/16) 2 | 3 | * 2012-12-16 [BUGFIX] Fixes for copying and pasting elements using click menu items (Commit 4466a33 by Claus Due) 4 | * 2012-12-16 [BUGFIX] Correct condition when checking if child record uses old column name syntax (Commit 3753b78 by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2012/12/15" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/4.7.14...5.0.0 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/5.0.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 5.0.1 (2012/12/31) 2 | 3 | * 2012-12-29 [BUGFIX] Fix Flux FlexForm Service (Commit 2831aa3 by Claus Due) 4 | * 2012-12-29 [BUGFIX] Use 4.x legacy name of FlashMessage class for compatibility (Commit 9c9ea3a by Claus Due) 5 | * 2012-12-19 [FEATURE] Add argument subActions to pass additional action list (Commit bdc67b7 by Dominic Garms) 6 | 7 | Generated by: 8 | 9 | ``` 10 | git log --since="2012/12/15" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 11 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 12 | ``` 13 | 14 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/5.0.0...5.0.1 15 | 16 | *Please note: the change list above does not contain any TASK commits since they are considered 17 | infrastructure-only and not relevant to end users. The full list includes these!* 18 | 19 | -------------------------------------------------------------------------------- /Documentation/Changelog/5.0.2.md: -------------------------------------------------------------------------------- 1 | ## Release: 5.0.2 (2013/01/09) 2 | 3 | * 2013-01-06 [BUGFIX] Incorrect passing of paths array (Commit 66f2a66 by Claus Due) 4 | * 2013-01-06 [BUGFIX] Set language pointer to lDEF if empty value given (Commit 7c77154 by Claus Due) 5 | * 2013-01-06 [BUGFIX] Respect paths when fetching any configuration (Commit e213551 by Claus Due) 6 | * 2013-01-04 [BUGFIX] Catch exceptions in Grid Service, respect debug mode and log any warnings/errors (Commit 15073ee by Claus Due) 7 | * 2013-01-02 [BUGFIX] Avoid processing in ConfigurationService when no command was given (Commit 19ecb86 by Claus Due) 8 | * 2013-01-02 [BUGFIX] Decouple FlexForm Service from Extbase FlexForm Service again (Commit 6dabb52 by Claus Due) 9 | 10 | Generated by: 11 | 12 | ``` 13 | git log --since="2012/12/30" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 14 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 15 | ``` 16 | 17 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/5.0.1...5.0.2 18 | 19 | *Please note: the change list above does not contain any TASK commits since they are considered 20 | infrastructure-only and not relevant to end users. The full list includes these!* 21 | 22 | -------------------------------------------------------------------------------- /Documentation/Changelog/5.0.3.md: -------------------------------------------------------------------------------- 1 | ## Release: 5.0.3 (2013/01/10) 2 | 3 | * 2013-01-09 [BUGFIX] After saving FCE, nested content had invalid tx_flux_column (Commit 8925c79 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2013/01/08" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/5.0.2...5.0.3 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/5.1.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 5.1.1 (2013/01/20) 2 | 3 | * 2013-01-19 [FEATURE] Add ViewHelper to convert raw FlexForm XML into an array (Commit 1f38f81 by Björn Fromme) 4 | * 2013-01-19 [BUGFIX] Fixed implementation of preProcess() hook in 6.0 (Commit 0b5919f by Anders Gissel) 5 | * 2013-01-13 [FEATURE] Support NULL arrays when resolving ConfigurationProviders (Commit 3a3cfa7 by Claus Due) 6 | * 2013-01-13 [FEATURE] New method "clearCacheCommand" for all ConfigurationProvider types (Commit 2fdfdfc by Claus Due) 7 | 8 | Generated by: 9 | 10 | ``` 11 | git log --since="2013/01/13" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 12 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 13 | ``` 14 | 15 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/5.1.0...5.1.1 16 | 17 | *Please note: the change list above does not contain any TASK commits since they are considered 18 | infrastructure-only and not relevant to end users. The full list includes these!* 19 | 20 | -------------------------------------------------------------------------------- /Documentation/Changelog/5.2.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 5.2.1 (2013/02/22) 2 | 3 | * 2013-02-21 [BUGFIX] Correct returnUrl for TYPO3 sites not directly in DOCUMENT_ROOT (Commit ca02ece by Claus Due) 4 | * 2013-02-21 [BUGFIX] Row span description is wrong (Commit 32984e2 by ste101) 5 | * 2013-02-07 [BUGFIX] Avoid foreach() on glob() return which may be FALSE (Commit fa3f281 by Claus Due) 6 | * 2013-02-05 [BUGFIX] Avoid warnings when no "collapsed" state COOKIE exists (Commit 14d3726 by Claus Due) 7 | * 2013-02-03 [BUGFIX] Incorrect title of Color Picker Wizard sample element (Commit 0cd9320 by Claus Due) 8 | * 2013-02-02 [BUGFIX] Attribute "allowedExtensions" on flux:flexform.field.wizard.link not respected (Commit d932467 by Claus Due) 9 | 10 | Generated by: 11 | 12 | ``` 13 | git log --since="2013/02/02" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 14 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 15 | ``` 16 | 17 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/5.2.0...5.2.1 18 | 19 | *Please note: the change list above does not contain any TASK commits since they are considered 20 | infrastructure-only and not relevant to end users. The full list includes these!* 21 | 22 | -------------------------------------------------------------------------------- /Documentation/Changelog/5.3.0.md: -------------------------------------------------------------------------------- 1 | ## Release: 5.3.0 (2013/03/17) 2 | 3 | * 2013-03-09 [FEATURE] Support "paste" and "paste as reference" through clickable icons (Commit ca7bbd8 by Claus Due) 4 | * 2013-03-03 [FEATURE] Use ConfigurationProviders in FlexForm / Data ViewHelper (Commit 999f044 by Claus Due) 5 | * 2013-02-21 [BUGFIX] Correct returnUrl for TYPO3 sites not directly in DOCUMENT_ROOT (Commit ca02ece by Claus Due) 6 | 7 | Generated by: 8 | 9 | ``` 10 | git log --since="2013/02/21" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 11 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 12 | ``` 13 | 14 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/5.2.1...5.3.0 15 | 16 | *Please note: the change list above does not contain any TASK commits since they are considered 17 | infrastructure-only and not relevant to end users. The full list includes these!* 18 | 19 | -------------------------------------------------------------------------------- /Documentation/Changelog/6.0.4.md: -------------------------------------------------------------------------------- 1 | ## Release: 6.0.4 (2014/03/24) 2 | 3 | * 2014-03-21 [BUGFIX] Missing migration of colPos value/label relation (Commit 8f46d7c by Claus Due) 4 | * 2014-03-19 [BUGFIX] Fix base test issues with missing ObjectManager (Commit e5c12f8 by Claus Due) 5 | * 2014-03-18 [BUGFIX] Use extension name for request object (Commit 203ef09 by Danilo Bürger) 6 | 7 | Generated by: 8 | 9 | ``` 10 | git log --since="2014/03/11" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 11 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 12 | ``` 13 | 14 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/6.0.3...6.0.4 15 | 16 | *Please note: the change list above does not contain any TASK commits since they are considered 17 | infrastructure-only and not relevant to end users. The full list includes these!* 18 | 19 | -------------------------------------------------------------------------------- /Documentation/Changelog/7.0.0.md: -------------------------------------------------------------------------------- 1 | ## Release: 7.0.0 (2014/03/25) 2 | 3 | * 2014-03-25 [BUGFIX] Unclaus the claus, fixes c&p, adds world domination (Commit 43bc0c0 by Danilo Bürger) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2014/03/23" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/6.0.4...7.0.0 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/7.1.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 7.1.1 (2014/10/28) 2 | 3 | * 2014-10-16 [BUGFIX] Field.TextViewHelper should respect global RTE Settings by default (Commit 1734bee by mneuhaus) 4 | * 2014-10-23 [BUGFIX] Allow sub view configuration on implicit default configuration (Commit 92dc08e by Danilo Bürger) 5 | * 2014-10-06 [BUGFIX] Use hasOwnProperty to prevent JS errors (Commit 3c9dcfd by Cedric Ziel) 6 | * 2014-10-03 [BUGFIX] Manually assign settings array from plugin signature (Commit f3f8dfc by Claus Due) 7 | * 2014-09-18 [FEATURE] Per-package automatic Form resolving for models (Commit 81d6f1a by Claus Due) 8 | * 2014-09-18 [FEATURE] Method to detect Form class name from convention (Commit 94612d6 by Claus Due) 9 | * 2014-09-18 [FEATURE] Method to detect Form class name from convention (Commit 93c9edd by Claus Due) 10 | 11 | Generated by: 12 | 13 | ``` 14 | git log --since="2014/09/17" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 15 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 16 | ``` 17 | 18 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/7.1.0...7.1.1 19 | 20 | *Please note: the change list above does not contain any TASK commits since they are considered 21 | infrastructure-only and not relevant to end users. The full list includes these!* 22 | 23 | -------------------------------------------------------------------------------- /Documentation/Changelog/7.1.2.md: -------------------------------------------------------------------------------- 1 | ## Release: 7.1.2 (2014/10/31) 2 | 3 | * 2014-10-30 [BUGFIX] Type hint FormInterface for unsetInheritedValues to allow Sections and Containers (Commit b367e08 by Danilo Bürger) 4 | * 2014-10-29 [BUGFIX] Reintroduce variable removed during refactoring (Commit 5408f47 by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2014/10/27" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/7.1.1...7.1.2 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/7.2.3.md: -------------------------------------------------------------------------------- 1 | ## Release: 7.2.3 (2015/09/30) 2 | 3 | * 2015-09-28 [BUGFIX] Ensure valid paths on Windows and triggering in TemplatePaths (Commit 382be33 by Claus Due) 4 | * 2015-09-28 [BUGFIX] Explicitly set package name on cloned request in ViewContext (Commit dcd6132 by Claus Due) 5 | * 2015-09-25 [BUGFIX] Fix for not showing hidden content elements in grids anymore (Commit 8cb30d0 by Marc Neuhaus) 6 | * 2015-09-23 [BUGFIX] Set right tx_flux_parent for localized records if a deleted localization for the flux parent exists (Commit 8c886e2 by Alexander Bohndorf) 7 | 8 | Generated by: 9 | 10 | ``` 11 | git log --since="2015/09/19" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 12 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 13 | ``` 14 | 15 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/7.2.2...7.2.3 16 | 17 | *Please note: the change list above does not contain any TASK commits since they are considered 18 | infrastructure-only and not relevant to end users. The full list includes these!* 19 | 20 | -------------------------------------------------------------------------------- /Documentation/Changelog/8.2.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 8.2.1 (2017/04/24) 2 | 3 | * 2017-04-24 [BUGFIX] Fix composer constraint preventing v8 installs (Commit a4592190 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2017/04/23" --until="2017/04/24" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/8.2.0...8.2.1 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/9.1.0.md: -------------------------------------------------------------------------------- 1 | ## Release: 9.1.0 (2018/10/02) 2 | 3 | * 2018-10-02 [FEATURE] Declare support for TYPO3v9 LTS (Commit c88d194 by Claus Due) 4 | * 2018-07-25 [BUGFIX] Increase integer size of colPos SQL column (#1591) (Commit e1eacee by andinger) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2018/07/23" --until="2018/10/02" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/9.0.1...9.1.0 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/9.3.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 9.3.1 (2020/02/04) 2 | 3 | * 2020-01-31 [BUGFIX] Allow page template selection without site config (Commit f76a06d by Claus Due) 4 | * 2020-01-31 [BUGFIX] Handle public design directory as absolute path (Commit 2b193ae by Claus Due) 5 | * 2020-01-31 [BUGFIX] Prevent SiteNotFoundException in tstemplate module (Commit f1da162 by Claus Due) 6 | * 2020-01-31 [BUGFIX] Allow operation without site configuration (Commit 6d2dfac by Claus Due) 7 | * 2020-01-31 [BUGFIX] Swallow DirectoryNotFoundException from Finder (Commit 8628aaa by Claus Due) 8 | * 2020-01-31 [BUGFIX] Handle unlabeled CType / page template in Site config (Commit 39a93a3 by Claus Due) 9 | 10 | Generated by: 11 | 12 | ``` 13 | git log --since="2020/01/31" --until="2020/02/04" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 14 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 15 | ``` 16 | 17 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/9.3.0...9.3.1 18 | 19 | *Please note: the change list above does not contain any TASK commits since they are considered 20 | infrastructure-only and not relevant to end users. The full list includes these!* 21 | 22 | -------------------------------------------------------------------------------- /Documentation/Changelog/9.3.2.md: -------------------------------------------------------------------------------- 1 | ## Release: 9.3.2 (2020/02/08) 2 | 3 | * 2020-02-08 [BUGFIX] Disable drop-in templates for unexpected public paths (Commit ae43aeb2 by Claus Due) 4 | * 2020-02-08 [BUGFIX] Fix issues with callRenderMethod assumption (Commit 70642e3f by Claus Due) 5 | 6 | Generated by: 7 | 8 | ``` 9 | git log --since="2020/02/04" --until="2020/02/08" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 10 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 11 | ``` 12 | 13 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/9.3.1...9.3.2 14 | 15 | *Please note: the change list above does not contain any TASK commits since they are considered 16 | infrastructure-only and not relevant to end users. The full list includes these!* 17 | 18 | -------------------------------------------------------------------------------- /Documentation/Changelog/9.6.1.md: -------------------------------------------------------------------------------- 1 | ## Release: 9.6.1 (2022/05/02) 2 | 3 | * 2022-05-02 [BUGFIX] Fix unintentional overwrite of FlexForm DS (Commit 31a4c163 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2022/05/01" --until="2022/05/02" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/9.6.0...9.6.1 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Changelog/9.7.2.md: -------------------------------------------------------------------------------- 1 | ## Release: 9.7.2 (2022/11/28) 2 | 3 | * 2022-11-28 [BUGFIX] Ensure closure is present when ViewHelper is rendered statically (Commit 20ea0078 by Claus Due) 4 | 5 | Generated by: 6 | 7 | ``` 8 | git log --since="2022/11/17" --until="2022/11/28" --abbrev-commit --pretty='%ad %s (Commit %h by %an)' \ 9 | --date=short | egrep '(\[FEATURE|BUGFIX|REMOVAL\])+'` 10 | ``` 11 | 12 | Full list of changes: https://github.com/FluidTYPO3/flux/compare/9.7.0...9.7.2 13 | 14 | *Please note: the change list above does not contain any TASK commits since they are considered 15 | infrastructure-only and not relevant to end users. The full list includes these!* 16 | 17 | -------------------------------------------------------------------------------- /Documentation/Includes.rst.txt: -------------------------------------------------------------------------------- 1 | .. More information about this file: 2 | .. https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/GeneralConventions/FileStructure.html#includes-rst-txt 3 | 4 | .. ---------- 5 | .. text roles 6 | .. ---------- 7 | 8 | .. role:: aspect(emphasis) 9 | .. role:: bash(code) 10 | .. role:: css(code) 11 | .. role:: html(code) 12 | .. role:: js(code) 13 | .. role:: php(code) 14 | .. role:: rst(code) 15 | .. role:: sep(strong) 16 | .. role:: sql(code) 17 | 18 | .. role:: tsconfig(code) 19 | :class: typoscript 20 | 21 | .. role:: typoscript(code) 22 | .. role:: xml(code) 23 | :class: html 24 | 25 | .. role:: yaml(code) 26 | 27 | .. default-role:: code 28 | 29 | .. --------- 30 | .. highlight 31 | .. --------- 32 | 33 | .. By default, code blocks use PHP syntax highlighting 34 | 35 | .. highlight:: php 36 | -------------------------------------------------------------------------------- /Documentation/Sitemap.rst: -------------------------------------------------------------------------------- 1 | :template: sitemap.html 2 | 3 | .. include:: /Includes.rst.txt 4 | 5 | ======= 6 | Sitemap 7 | ======= 8 | 9 | .. The sitemap.html template will insert here the page tree automatically. 10 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluidTYPO3/flux/cf57e32dcbedb3bdb2301ddb404dcc12bc14d354/Documentation/ViewHelpers/.gitkeep -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Content/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ======= 4 | content 5 | ======= 6 | 7 | 8 | * 2 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | Get 15 | Render 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Field/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ===== 4 | field 5 | ===== 6 | 7 | 8 | * 15 ViewHelpers documented 9 | * 2 Sub namespaces 10 | 11 | .. toctree:: 12 | :titlesonly: 13 | :glob: 14 | 15 | */Index 16 | Checkbox 17 | ControllerActions 18 | Custom 19 | DateTime 20 | File 21 | Inline 22 | Input 23 | MultiRelation 24 | None 25 | Radio 26 | Relation 27 | Select 28 | Text 29 | Tree 30 | UserFunc 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Field/Inline/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ====== 4 | inline 5 | ====== 6 | 7 | 8 | * 1 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | Fal 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Field/Tree/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ==== 4 | tree 5 | ==== 6 | 7 | 8 | * 1 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | Category 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ==== 4 | form 5 | ==== 6 | 7 | 8 | * 9 ViewHelpers documented 9 | * 2 Sub namespaces 10 | 11 | .. toctree:: 12 | :titlesonly: 13 | :glob: 14 | 15 | */Index 16 | Container 17 | Content 18 | Data 19 | Object 20 | Option 21 | Render 22 | Section 23 | Sheet 24 | Variable 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Object/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ====== 4 | object 5 | ====== 6 | 7 | 8 | * 1 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | ColumnPosition 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Option.rst: -------------------------------------------------------------------------------- 1 | :navigation-title: form.option 2 | .. include:: /Includes.rst.txt 3 | 4 | .. _fluidtypo3-flux-form-option: 5 | 6 | =========================================== 7 | form.option ViewHelper `` 8 | =========================================== 9 | 10 | 11 | Form option ViewHelper 12 | 13 | 14 | .. _fluidtypo3-flux-form-option_arguments: 15 | 16 | Arguments 17 | ========= 18 | 19 | 20 | .. _form.option_value: 21 | 22 | value 23 | ----- 24 | 25 | :aspect:`DataType` 26 | string 27 | 28 | :aspect:`Required` 29 | false 30 | :aspect:`Description` 31 | Option value 32 | 33 | .. _form.option_name: 34 | 35 | name 36 | ---- 37 | 38 | :aspect:`DataType` 39 | string 40 | 41 | :aspect:`Required` 42 | true 43 | :aspect:`Description` 44 | Name of the option to be set 45 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Option/Group.rst: -------------------------------------------------------------------------------- 1 | :navigation-title: form.option.group 2 | .. include:: /Includes.rst.txt 3 | 4 | .. _fluidtypo3-flux-form-option-group: 5 | 6 | ======================================================= 7 | form.option.group ViewHelper `` 8 | ======================================================= 9 | 10 | 11 | Form group option ViewHelper 12 | 13 | Defines a logical group name for the Flux form, which can 14 | then be read by extensions supporting Flux forms. How the 15 | setting gets used is specific to the extension reading the 16 | Flux form - please consult that documentation to learn 17 | if/how the extension supports this option. 18 | 19 | 20 | .. _fluidtypo3-flux-form-option-group_arguments: 21 | 22 | Arguments 23 | ========= 24 | 25 | 26 | .. _form.option.group_value: 27 | 28 | value 29 | ----- 30 | 31 | :aspect:`DataType` 32 | string 33 | 34 | :aspect:`Required` 35 | false 36 | :aspect:`Description` 37 | Name of the group 38 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Option/Icon.rst: -------------------------------------------------------------------------------- 1 | :navigation-title: form.option.icon 2 | .. include:: /Includes.rst.txt 3 | 4 | .. _fluidtypo3-flux-form-option-icon: 5 | 6 | ===================================================== 7 | form.option.icon ViewHelper `` 8 | ===================================================== 9 | 10 | 11 | Icon option 12 | =========== 13 | 14 | Sets the `icon` option in the Flux form, which can then be read by 15 | extensions using Flux forms. Consult the documentation of extensions 16 | which use the `icon` setting to learn more about how icons are used. 17 | 18 | ``value`` needs to be the absolute path to the image file, e.g. 19 | ``/typo3conf/ext/myext/Resources/Public/Icons/Element.svg``. 20 | 21 | Example 22 | ------- 23 | 24 | 25 | 26 | 27 | .. _fluidtypo3-flux-form-option-icon_arguments: 28 | 29 | Arguments 30 | ========= 31 | 32 | 33 | .. _form.option.icon_value: 34 | 35 | value 36 | ----- 37 | 38 | :aspect:`DataType` 39 | string 40 | 41 | :aspect:`Required` 42 | false 43 | :aspect:`Description` 44 | Path and name of the icon file 45 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Option/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ====== 4 | option 5 | ====== 6 | 7 | 8 | * 5 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | Group 15 | Icon 16 | InheritanceMode 17 | Sorting 18 | Static 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Option/Sorting.rst: -------------------------------------------------------------------------------- 1 | :navigation-title: form.option.sorting 2 | .. include:: /Includes.rst.txt 3 | 4 | .. _fluidtypo3-flux-form-option-sorting: 5 | 6 | =========================================================== 7 | form.option.sorting ViewHelper `` 8 | =========================================================== 9 | 10 | 11 | Form sorting option ViewHelper 12 | 13 | 14 | .. _fluidtypo3-flux-form-option-sorting_arguments: 15 | 16 | Arguments 17 | ========= 18 | 19 | 20 | .. _form.option.sorting_value: 21 | 22 | value 23 | ----- 24 | 25 | :aspect:`DataType` 26 | integer 27 | 28 | :aspect:`Required` 29 | false 30 | :aspect:`Description` 31 | Sorting value of form (how this is applied depends on the implementation using the Form instance; see third-party feature documentation) 32 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Option/Static.rst: -------------------------------------------------------------------------------- 1 | :navigation-title: form.option.static 2 | .. include:: /Includes.rst.txt 3 | 4 | .. _fluidtypo3-flux-form-option-static: 5 | 6 | ========================================================= 7 | form.option.static ViewHelper `` 8 | ========================================================= 9 | 10 | 11 | Form static caching option ViewHelper 12 | 13 | Use this only when your Flux form is 100% static and 14 | will work when cached. 15 | 16 | 17 | .. _fluidtypo3-flux-form-option-static_arguments: 18 | 19 | Arguments 20 | ========= 21 | 22 | 23 | .. _form.option.static_value: 24 | 25 | value 26 | ----- 27 | 28 | :aspect:`DataType` 29 | boolean 30 | 31 | :aspect:`Default` 32 | true 33 | 34 | :aspect:`Required` 35 | false 36 | :aspect:`Description` 37 | Configures caching of the DS resulting from the form. Default when used is TRUE which enables caching 38 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Render.rst: -------------------------------------------------------------------------------- 1 | :navigation-title: form.render 2 | .. include:: /Includes.rst.txt 3 | 4 | .. _fluidtypo3-flux-form-render: 5 | 6 | =========================================== 7 | form.render ViewHelper `` 8 | =========================================== 9 | 10 | 11 | ## Main form rendering ViewHelper 12 | 13 | Use to render a Flux form as HTML. 14 | 15 | 16 | .. _fluidtypo3-flux-form-render_arguments: 17 | 18 | Arguments 19 | ========= 20 | 21 | 22 | .. _form.render_form: 23 | 24 | form 25 | ---- 26 | 27 | :aspect:`DataType` 28 | mixed 29 | 30 | :aspect:`Required` 31 | true 32 | :aspect:`Description` 33 | Form instance to render as HTML 34 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Form/Variable.rst: -------------------------------------------------------------------------------- 1 | :navigation-title: form.variable 2 | .. include:: /Includes.rst.txt 3 | 4 | .. _fluidtypo3-flux-form-variable: 5 | 6 | =============================================== 7 | form.variable ViewHelper `` 8 | =============================================== 9 | 10 | 11 | Sets an option in the Form instance 12 | 13 | 14 | .. _fluidtypo3-flux-form-variable_arguments: 15 | 16 | Arguments 17 | ========= 18 | 19 | 20 | .. _form.variable_value: 21 | 22 | value 23 | ----- 24 | 25 | :aspect:`DataType` 26 | mixed 27 | 28 | :aspect:`Required` 29 | false 30 | :aspect:`Description` 31 | Value of the option 32 | 33 | .. _form.variable_name: 34 | 35 | name 36 | ---- 37 | 38 | :aspect:`DataType` 39 | string 40 | 41 | :aspect:`Required` 42 | true 43 | :aspect:`Description` 44 | Name of the option - valid values and their behaviours depend entirely on the consumer that will handle the Form instance 45 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Grid/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ==== 4 | grid 5 | ==== 6 | 7 | 8 | * 2 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | Column 15 | Row 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | =============== 4 | fluidtypo3/flux 5 | =============== 6 | 7 | * 4 ViewHelpers documented 8 | * 4 Sub namespaces 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | */Index 15 | Field 16 | Form 17 | Grid 18 | Inline 19 | 20 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Inline.rst: -------------------------------------------------------------------------------- 1 | :navigation-title: inline 2 | .. include:: /Includes.rst.txt 3 | 4 | .. _fluidtypo3-flux-inline: 5 | 6 | ================================= 7 | inline ViewHelper `` 8 | ================================= 9 | 10 | 11 | Inline Fluid rendering ViewHelper 12 | 13 | Renders Fluid code stored in a variable, which you normally would 14 | have to render before assigning it to the view. Instead you can 15 | do the following (note, extremely simplified use case): 16 | 17 | $view->assign('variable', 'value of my variable'); 18 | $view->assign('code', 'My variable: {variable}'); 19 | 20 | And in the template: 21 | 22 | {code -> flux:inline()} 23 | 24 | Which outputs: 25 | 26 | My variable: value of my variable 27 | 28 | You can use this to pass smaller and dynamic pieces of Fluid code 29 | to templates, as an alternative to creating new partial templates. 30 | 31 | 32 | .. _fluidtypo3-flux-inline_arguments: 33 | 34 | Arguments 35 | ========= 36 | 37 | 38 | .. _inline_code: 39 | 40 | code 41 | ---- 42 | 43 | :aspect:`DataType` 44 | string 45 | 46 | :aspect:`Required` 47 | false 48 | :aspect:`Description` 49 | Fluid code to be rendered as if it were part of the template rendering it. Can be passed as inline argument or tag content 50 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Outlet.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | .. _fluidtypo3-flux-outlet: 4 | 5 | ====== 6 | outlet 7 | ====== 8 | 9 | 10 | ViewHelper to configure outlets 11 | 12 | see `` and `` ViewHelpers for more information 13 | 14 | Arguments 15 | ========= 16 | 17 | 18 | .. _outlet_enabled: 19 | 20 | enabled 21 | ------- 22 | 23 | :aspect:`DataType` 24 | boolean 25 | 26 | :aspect:`Default` 27 | true 28 | 29 | :aspect:`Required` 30 | false 31 | :aspect:`Description` 32 | If the outlet is enabled 33 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Outlet/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ====== 4 | outlet 5 | ====== 6 | 7 | 8 | * 3 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | Argument 15 | Form 16 | Validate 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Pipe/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ==== 4 | pipe 5 | ==== 6 | 7 | 8 | * 4 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | Controller 15 | Email 16 | FlashMessage 17 | TypeConverter 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Documentation/ViewHelpers/Wizard/Index.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ====== 4 | wizard 5 | ====== 6 | 7 | 8 | * 8 ViewHelpers documented 9 | 10 | .. toctree:: 11 | :titlesonly: 12 | :glob: 13 | 14 | Add 15 | ColorPicker 16 | Edit 17 | Link 18 | List 19 | Select 20 | Slider 21 | Suggest 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Documentation/genindex.rst: -------------------------------------------------------------------------------- 1 | .. include:: /Includes.rst.txt 2 | 3 | ===== 4 | Index 5 | ===== 6 | 7 | .. Sphinx will insert here the general index automatically. 8 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | ### Copyright notice 2 | 3 | > (c) 2014 Claus Due 4 | > All rights reserved 5 | 6 | This repository is part of the TYPO3 project. The TYPO3 project is 7 | free software; you can redistribute it and/or modify 8 | it under the terms of the GNU General Public License as published by 9 | the Free Software Foundation; either version 2 of the License, or 10 | (at your option) any later version. 11 | 12 | The GNU General Public License can be found at 13 | http://www.gnu.org/copyleft/gpl.html. 14 | 15 | This repository is distributed in the hope that it will be useful, 16 | but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | GNU General Public License for more details. 19 | 20 | This copyright notice MUST APPEAR in all copies of the repository! 21 | -------------------------------------------------------------------------------- /Resources/Private/Language/README.md: -------------------------------------------------------------------------------- 1 | Translations and Contribution Info 2 | ================================== 3 | 4 | The translations shipped with this extension are provided as-is, with no guarantee for correctness. Non-English 5 | translations will not be maintained _except through user contributions_. 6 | 7 | **Please do not open GitHub issues asking for translations to be corrected! If you wish a translation to be changed 8 | or added, open a pull request.** 9 | 10 | And do not request integration with Crowdin. That will not happen. 11 | 12 | Contributions 13 | ------------- 14 | 15 | You may contribute translations as pull request to add/change XLF files in the repository. But please observe these 16 | couple of basic rules: 17 | 18 | * Only submit translations if you are a native speaker of the language you are translating to. 19 | * Do not submit any AI or AI-assisted translations. You - a human - must know and understand the context of labels. 20 | * All translations must be in XLF format. 21 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/Default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Error/Backtrace.html: -------------------------------------------------------------------------------- 1 |

Backtrace

2 |
    3 | 4 |
  1. 5 |
    {step.class}->{step.function}()
    6 |
  2. 7 |
    8 |
-------------------------------------------------------------------------------- /Resources/Private/Partials/Error/Extended.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |

Detailed Exception Description for error #{error.code}

5 | {exceptionPartial} 6 |
7 |
8 |
-------------------------------------------------------------------------------- /Resources/Private/Partials/Error/Header.html: -------------------------------------------------------------------------------- 1 |
2 |

Fluid Pages Error #{error.code}

3 |

{class} says:

4 | {error.message} 5 |
-------------------------------------------------------------------------------- /Resources/Private/Partials/Error/Style.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Exception/1364685651.html: -------------------------------------------------------------------------------- 1 | You are seeing this particular error for one of the following reasons, starting with the most common reason: 2 | 3 |
    4 |
  • There really are no page template sets defined anywhere in the sytem. Add some.
  • 5 |
  • For some reason the TypoScript is not being recognised. Check your templates - using the Template Analyser if necessary. It might be a syntax problem, a typo or similar.
  • 6 |
  • Configuration does exist but consists of empty values - which can happen if the template collection uses TypoScript constants but these have not been filled or miss default values.
  • 7 |
  • The PageConfigurationProvider from EXT:fluidpages has been overridden, replaced, modified or made incompatible in some way.
  • 8 |
-------------------------------------------------------------------------------- /Resources/Private/Skeletons/Content/Standard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

Default Flux Content Type

11 |

Next steps:

12 |
    13 |
  1. Edit the design/Templates/Content/Default.html file
  2. 14 |
  3. Or copy the file to another filename and adjust to your likings
  4. 15 |
  5. Consult the Flux documentation and ViewHelper reference to learn about things like adding fields and creating nested content areas
  6. 16 |
17 |

Enjoy!

18 |
19 | -------------------------------------------------------------------------------- /Resources/Private/Skeletons/Page/Standard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 21 | 22 | 23 | Standard Flux page template 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Content/Proxy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {contentType.templateSource -> flux:inline()} 9 | 10 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Page/Default.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | Please select a page template in page properties. 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Page/Error.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Page/Render.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluidTYPO3/flux/cf57e32dcbedb3bdb2301ddb404dcc12bc14d354/Resources/Private/Templates/Page/Render.html -------------------------------------------------------------------------------- /Resources/Public/Icons/ColorWheel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluidTYPO3/flux/cf57e32dcbedb3bdb2301ddb404dcc12bc14d354/Resources/Public/Icons/ColorWheel.png -------------------------------------------------------------------------------- /Resources/Public/Icons/Extension.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Resources/Public/Icons/Layout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Resources/Public/Icons/Plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluidTYPO3/flux/cf57e32dcbedb3bdb2301ddb404dcc12bc14d354/Resources/Public/Icons/Plugin.png -------------------------------------------------------------------------------- /Resources/Public/Icons/relation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluidTYPO3/flux/cf57e32dcbedb3bdb2301ddb404dcc12bc14d354/Resources/Public/Icons/relation.gif -------------------------------------------------------------------------------- /Tests/Fixtures/Classes/AccessibleCore.php: -------------------------------------------------------------------------------- 1 | []]; 18 | } 19 | 20 | public static function setRegisteredProviders(array $providers): void 21 | { 22 | static::$providers = $providers; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Tests/Fixtures/Classes/AccessibleDataViewHelper.php: -------------------------------------------------------------------------------- 1 | 'foobar']; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Tests/Fixtures/Classes/AccessibleRecordBasedContentTypeDefinition.php: -------------------------------------------------------------------------------- 1 | values = $values; 26 | return $this; 27 | } 28 | 29 | public function getFlexFormValues(array $row, ?string $forField = null): array 30 | { 31 | return []; 32 | } 33 | 34 | public function getForm(array $row, ?string $forField = null): ?Form 35 | { 36 | return $this->form; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Tests/Fixtures/Classes/DummyRepository.php: -------------------------------------------------------------------------------- 1 | uninitializedViewHelper = $viewHelper; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Tests/Fixtures/Classes/InvalidConfigurationProvider.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | Hello world 23 | 24 | -------------------------------------------------------------------------------- /Tests/Fixtures/Partials/FormComponents.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/AbsolutelyMinimal.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/BasicGrid.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Preview text 13 | 14 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/CollidingGrid.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/CustomSection.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | This is a custom section. Do not change this placeholder text. 10 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/Default.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/DualGrid.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/Dummy.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluidTYPO3/flux/cf57e32dcbedb3bdb2301ddb404dcc12bc14d354/Tests/Fixtures/Templates/Content/Dummy.html -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/EmptyPreview.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/Preview.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Preview text 10 | 11 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/Sheets.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/UsesPartial.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Content/WithoutForm.html: -------------------------------------------------------------------------------- 1 | {namespace flux=FluidTYPO3\Flux\ViewHelpers} 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Page/Dummy.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluidTYPO3/flux/cf57e32dcbedb3bdb2301ddb404dcc12bc14d354/Tests/Fixtures/Templates/Page/Dummy.html -------------------------------------------------------------------------------- /Tests/Fixtures/Templates/Page/Nested/Dummy.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FluidTYPO3/flux/cf57e32dcbedb3bdb2301ddb404dcc12bc14d354/Tests/Fixtures/Templates/Page/Nested/Dummy.html -------------------------------------------------------------------------------- /Tests/Mock/Result.php: -------------------------------------------------------------------------------- 1 | =')) { 8 | class Result extends \Doctrine\DBAL\ForwardCompatibility\Result 9 | { 10 | use ResultTraitUnion; 11 | } 12 | } else { 13 | class Result extends \Doctrine\DBAL\ForwardCompatibility\Result 14 | { 15 | use ResultTrait; 16 | } 17 | } 18 | } else { 19 | if (version_compare(PHP_VERSION, '8', '>=')) { 20 | class Result extends \Doctrine\DBAL\Result 21 | { 22 | use ResultTraitUnion; 23 | } 24 | } else { 25 | class Result extends \Doctrine\DBAL\Result 26 | { 27 | use ResultTrait; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Tests/Mock/ResultTrait.php: -------------------------------------------------------------------------------- 1 | returns = $returns; 12 | } 13 | 14 | public function fetchAssociative() 15 | { 16 | return array_shift($this->returns); 17 | } 18 | 19 | public function fetchOne() 20 | { 21 | return array_shift($this->returns); 22 | } 23 | 24 | public function fetchAllAssociative(): array 25 | { 26 | return $this->returns; 27 | } 28 | 29 | public function rowCount(): int 30 | { 31 | return count($this->returns); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Tests/Mock/ResultTraitUnion.php: -------------------------------------------------------------------------------- 1 | returns = $returns; 12 | } 13 | 14 | public function fetchAssociative(): array|false 15 | { 16 | return array_shift($this->returns) ?: false; 17 | } 18 | 19 | public function fetchOne(): mixed 20 | { 21 | return array_shift($this->returns); 22 | } 23 | 24 | public function fetchAllAssociative(): array 25 | { 26 | return $this->returns; 27 | } 28 | 29 | public function rowCount(): int 30 | { 31 | return count($this->returns); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Tests/Unit/Attribute/DataTransformerTest.php: -------------------------------------------------------------------------------- 1 | identifier); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Tests/Unit/Content/ContentTypeFormTest.php: -------------------------------------------------------------------------------- 1 | createSheet('somesheet', 'Some Label'); 30 | self::assertInstanceOf( 31 | Form\Container\Sheet::class, 32 | $subject->get('somesheet') 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Tests/Unit/Content/TypeDefinition/SerializeSafeTraitTest.php: -------------------------------------------------------------------------------- 1 | getMockBuilder(SerializeSafeTrait::class)->getMockForTrait(); 19 | $subject->expects(self::once())->method('getForm'); 20 | $subject->expects(self::once())->method('getGrid'); 21 | 22 | $subject->__sleep(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Tests/Unit/Controller/ContentControllerTest.php: -------------------------------------------------------------------------------- 1 | performDummyRegistration(); 18 | } 19 | 20 | protected function createAndTestDummyControllerInstance(): ContentController 21 | { 22 | $this->performDummyRegistration(); 23 | $controllerClassName = ContentController::class; 24 | /** @var ContentController $instance */ 25 | $instance = $this->getMockBuilder($controllerClassName) 26 | ->onlyMethods(['getContentObject', 'getServerRequest']) 27 | ->setConstructorArgs($this->getConstructorArguments()) 28 | ->getMock(); 29 | $this->setInaccessiblePropertyValue($instance, 'extensionName', 'Flux'); 30 | return $instance; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Tests/Unit/Controller/PageControllerTest.php: -------------------------------------------------------------------------------- 1 | ['foo' => 'bar']]; 19 | /** @var PageController $subject */ 20 | $subject = $this->getMockBuilder(PageController::class) 21 | ->addMethods(['dummy']) 22 | ->disableOriginalConstructor() 23 | ->getMock(); 24 | $record = $subject->getRecord(); 25 | $this->assertSame(['foo' => 'bar'], $record); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Container/ColumnTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'columnPosition' => 1 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Container/RowTest.php: -------------------------------------------------------------------------------- 1 | createInstance(); 20 | $this->assertEmpty($instance->getColumns()); 21 | } 22 | 23 | /** 24 | * Override: this Component does not support LLL rewriting 25 | * and must skip this test which it otherwise inherits 26 | * 27 | * @disabledtest 28 | */ 29 | public function canAutoWriteLabel(): void 30 | { 31 | } 32 | 33 | /** 34 | * Override: this Component does not support LLL rewriting 35 | * and must skip this test which it otherwise inherits 36 | * 37 | * @disabledtest 38 | */ 39 | public function canUseShorthandLanguageLabel(): void 40 | { 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Container/SectionObjectTest.php: -------------------------------------------------------------------------------- 1 | 'test']); 25 | $container->createField('Input', 'test'); 26 | $this->assertCount(1, $container->getFields()); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/CheckboxTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | 'enabled' => true, 17 | 'default' => 1, 18 | 'requestUpdate' => true, 19 | ]; 20 | } 21 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/ColumnPositionTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | 'arguments' => [ 17 | 'foo' => 'bar' 18 | ] 19 | ]; 20 | 21 | /** 22 | * @test 23 | */ 24 | public function canUseClosure() 25 | { 26 | $self = $this; 27 | $arguments = [ 28 | 'closure' => function ($parameters) use ($self) { 29 | return 'Hello world'; 30 | } 31 | ]; 32 | $instance = $this->canChainAllChainableSetters($arguments); 33 | $closure = $instance->getClosure(); 34 | $this->assertSame($arguments['closure'], $closure); 35 | $output = $closure($arguments); 36 | $this->assertNotEmpty($output); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/DateTimeTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/FlexTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/MultiRelationTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | 'table' => 'pages', 17 | 'foreignLabel' => 'uid', 18 | 'filter' => [ 19 | 'test' => 'test' 20 | ], 21 | 'matchFields' => [ 22 | 'field' => 'value' 23 | ] 24 | ]; 25 | } 26 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/NoneTest.php: -------------------------------------------------------------------------------- 1 | 'none', 15 | 'size' => 10 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/PassthroughTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/RadioTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | 'enabled' => true, 17 | 'default' => 1, 18 | 'requestUpdate' => true, 19 | ]; 20 | } 21 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/RelationTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | 'table' => 'pages', 17 | 'foreignLabel' => 'uid', 18 | 'filter' => [ 19 | 'test' => 'test' 20 | ] 21 | ]; 22 | } 23 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/TreeTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | 'table' => 'pages', 17 | 'parentField' => 'pid', 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /Tests/Unit/Form/Field/UserFunctionTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'label' => 'Test field', 16 | 'function' => 'FluidTYPO3\Flux\UserFunction\NoFields->renderField', 17 | 'arguments' => [1, 2], 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /Tests/Unit/Hooks/HookSubscriberFixture.php: -------------------------------------------------------------------------------- 1 | getMockBuilder(PageLayoutContext::class)->disableOriginalConstructor()->getMock(); 20 | $subject = $this->getMockBuilder(BackendLayoutRenderer::class) 21 | ->setMethods(['dummy']) 22 | ->disableOriginalConstructor() 23 | ->getMock(); 24 | $subject->setContext($context); 25 | self::assertSame($context, $subject->getContext()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Tests/Unit/Integration/NormalizedData/AbstractImplementationTest.php: -------------------------------------------------------------------------------- 1 | getMockBuilder(AbstractImplementation::class) 19 | ->setConstructorArgs([]) 20 | ->getMockForAbstractClass(); 21 | self::assertTrue($subject->appliesToRecord(['uid' => 123])); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/AbstractFormViewHelperTest.php: -------------------------------------------------------------------------------- 1 | getMockBuilder(RenderingContextInterface::class)->getMockForAbstractClass(), 24 | [] 25 | ) 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Field/AbstractFieldViewHelperTestCase.php: -------------------------------------------------------------------------------- 1 | buildViewHelperInstance($this->defaultArguments); 22 | $component = $instance->getComponent( 23 | $this->renderingContext, 24 | $this->buildViewHelperArguments($instance, $this->defaultArguments), 25 | $this->callInaccessibleMethod($instance, 'buildRenderChildrenClosure') 26 | ); 27 | $this->assertInstanceOf(FieldInterface::class, $component); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Field/CheckboxViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'table' => 'tt_content', 16 | 'enabledControls' => [ 17 | 'new' => true, 18 | 'hide' => true 19 | ], 20 | 'foreignTypes' => [ 21 | 0 => [ 22 | 'showitem' => 'a,b,c' 23 | ] 24 | ] 25 | ]; 26 | } 27 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Field/MultiRelationViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'tt_content', 15 | 'name' => 'field', 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Field/NoneViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'tt_content', 15 | 'name' => 'field', 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Field/SelectViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | ]; 16 | 17 | /** 18 | * @test 19 | */ 20 | public function supportsPlaceholders() 21 | { 22 | $arguments = ['name' => 'test', 'placeholder' => 'test']; 23 | $instance = $this->buildViewHelperInstance($arguments); 24 | $component = $instance->getComponent( 25 | $this->getInaccessiblePropertyValue($instance, 'renderingContext'), 26 | $this->getInaccessiblePropertyValue($instance, 'arguments') 27 | ); 28 | $this->assertSame($arguments['placeholder'], $component->getPlaceholder()); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Field/Tree/CategoryViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'tt_content', 15 | 'name' => 'field', 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Field/UserFuncViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'test', 15 | 'userFunc' => '', 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/FieldViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'test', 17 | 'type' => 'input', 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Form/AbstractFormFieldTest.php: -------------------------------------------------------------------------------- 1 | getMockBuilder(AbstractFormField::class)->getMockForAbstractClass(); 19 | $subject->setDisplayCondition('condition'); 20 | $output = $subject->build(); 21 | self::assertSame('condition', $output['displayCond']); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Form/ContainerViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'test', 22 | 'label' => 'Test container' 23 | ]; 24 | $result = $this->executeViewHelper($arguments); 25 | $this->assertEmpty(trim($result)); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Form/Object/ColumnPositionViewHelperTest.php: -------------------------------------------------------------------------------- 1 | viewHelperVariableContainer->add( 21 | AbstractFormViewHelper::SCOPE, 22 | AbstractFormViewHelper::SCOPE_VARIABLE_CONTAINER, 23 | $this->getMockBuilder(ContainerInterface::class)->getMockForAbstractClass() 24 | ); 25 | $this->expectExceptionCode(1602693000); 26 | OptionViewHelper::renderStatic( 27 | ['value' => 'test'], 28 | function () { 29 | }, 30 | $this->renderingContext 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/Form/SectionViewHelperTest.php: -------------------------------------------------------------------------------- 1 | getMockBuilder(Form::class)->setMethods(['setVariable'])->getMock(); 23 | $containerMock->expects($this->once())->method('setVariable')->with('test', 'testvalue'); 24 | 25 | $this->viewHelperVariableContainer->addOrUpdate(FormViewHelper::class, 'container', $containerMock); 26 | $this->executeViewHelper(['name' => 'test', 'value' => 'testvalue']); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/FormViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'foobar', 18 | ]; 19 | 20 | public function testCreatesFormInstance(): void 21 | { 22 | $this->executeViewHelper($this->defaultArguments); 23 | 24 | self::assertInstanceOf( 25 | Form::class, 26 | $this->viewHelperVariableContainer->get(FormViewHelper::SCOPE, FormViewHelper::SCOPE_VARIABLE_FORM) 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/GridViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'grid', 17 | 'label' => 'Foo Bar', 18 | 'variables' => [], 19 | ]; 20 | 21 | public function testRenderStatic(): void 22 | { 23 | GridViewHelper::renderStatic($this->defaultArguments, function () { 24 | return ''; 25 | }, $this->renderingContext); 26 | 27 | self::assertNotEmpty( 28 | $this->viewHelperVariableContainer->get(GridViewHelper::SCOPE, GridViewHelper::SCOPE_VARIABLE_GRIDS) 29 | ); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Tests/Unit/ViewHelpers/InlineViewHelperTest.php: -------------------------------------------------------------------------------- 1 | 'Value: {variable}', 19 | ]; 20 | $output = $this->executeViewHelper($arguments, ['variable' => 'test']); 21 | self::assertSame('Value: test', $output); 22 | } 23 | 24 | public function testRendersInlineCodeFromChild(): void 25 | { 26 | $arguments = []; 27 | $output = $this->executeViewHelper($arguments, ['variable' => 'test'], new TextNode('Value: {variable}')); 28 | self::assertSame('Value: test', $output); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Tests/preflight.php: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | Classes/ 20 | 21 | 22 | 23 | 24 | Tests/ 25 | 26 | 27 | 28 | --------------------------------------------------------------------------------