diff --git a/DependencyInjection/eZDemoExtension.php b/DependencyInjection/eZDemoExtension.php index 75c0b33..a6ae7d7 100644 --- a/DependencyInjection/eZDemoExtension.php +++ b/DependencyInjection/eZDemoExtension.php @@ -13,8 +13,9 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; use Symfony\Component\Config\FileLocator; +use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface; -class eZDemoExtension extends Extension +class eZDemoExtension extends Extension implements PrependExtensionInterface { /** * Loads a specific configuration. @@ -35,7 +36,33 @@ public function load( array $config, ContainerBuilder $container ) // Base services override $loader->load( 'services.yml' ); - // Base fieldtypes override - $loader->load( 'fieldtypes.yml' ); + } + + /** + * Automatically imports the layouts and the blocks + * + * @param ContainerBuilder $container + */ + public function prepend( ContainerBuilder $container ) + { + $loader = new YamlFileLoader( + $container, + new FileLocator( __DIR__ . '/../Resources/config' ) + ); + $loader->load( 'ezpage.yml' ); + + $container->prependExtensionConfig( + 'ezpublish', + array( + 'ezpage' => array( + 'layouts' => $container->getParameter( 'ezdemo.ezpage.layouts' ), + 'blocks' => $container->getParameter( 'ezdemo.ezpage.blocks' ), + // by default, all layouts and blocks are enabled when + // DemoBundle is enabled + 'enabledLayouts' => array_keys( $container->getParameter( 'ezdemo.ezpage.layouts' ) ), + 'enabledBlocks' => array_keys( $container->getParameter( 'ezdemo.ezpage.blocks' ) ) + ) + ) + ); } } diff --git a/Resources/config/ezpage.yml b/Resources/config/ezpage.yml new file mode 100644 index 0000000..5840b6a --- /dev/null +++ b/Resources/config/ezpage.yml @@ -0,0 +1,56 @@ +parameters: + +# List of layouts provided by the DemoBundle +# to be usable, they have to be enabled in +# ezpublish.system..ezpage.enabledLayouts + ezdemo.ezpage.layouts: + GlobalZoneLayout: + name: Global zone layout + template: globalzonelayout.tpl + 2ZonesLayout1: + name: 2 zones (layout 1) + template: 2zoneslayout1.tpl + 2ZonesLayout2: + name: 2 zones (layout 2) + template: 2zoneslayout2.tpl + 2ZonesLayout3: + name: 2 zones (layout 3) + template: 2zoneslayout3.tpl + 3ZonesLayout1: + name: 3 zones (layout 1) + template: 3zoneslayout1.tpl + 3ZonesLayout2: + name: 3 zones (layout 2) + template: 3zoneslayout2.tpl + CallForActionLayout: + name: Call For Action zone layout + template: callforactionlayout.tpl + +# List of blocks provided by the DemoBundle +# to be usable, they have to be enabled in +# ezpublish.system..ezpage.enabledBlocks + ezdemo.ezpage.blocks: + Campaign: + name: Campaign + MainStory: + name: Main story + ContentGrid: + name: Content Grid + Gallery: + name: Gallery + Banner: + name: Banner + Video: + name: Video + TagCloud: + name: Tag cloud + Poll: + name: Poll + ItemList: + name: Item list + FeedReader: + name: Feed reader + FeedbackForm: + name: Feedback Form + HighlightedItem: + name: Highlighted Item diff --git a/Resources/config/fieldtypes.yml b/Resources/config/fieldtypes.yml deleted file mode 100644 index ab6f901..0000000 --- a/Resources/config/fieldtypes.yml +++ /dev/null @@ -1,185 +0,0 @@ -parameters: - ezpublish.fieldtype.ezpage.zoneDefinition: - globalZoneLayout: - zoneTypeName: Global zone layout - zones: - main: - name: Global zone - zoneThumbnail: globalzone_layout.gif - template: globalzonelayout.tpl - availableForClasses: [global_layout] - 2zonesLayout1: - zoneTypeName: 2 zones (layout 1) - zones: - left: - name: Left zone - right: - name: Right zone - zoneThumbnail: 2zones_layout1.gif - template: 2zoneslayout1.tpl - availableForClasses: [frontpage] - 2zonesLayout2: - zoneTypeName: 2 zones (layout 2) - zones: - left: - name: Left zone - right: - name: Right zone - zoneThumbnail: 2zones_layout2.gif - template: 2zoneslayout2.tpl - availableForClasses: [frontpage] - 3zonesLayout1: - zoneTypeName: 3 zones (layout 1) - zones: - left: - name: Left zone - right: - name: Right zone - bottom: - name: Bottom zone - zoneThumbnail: 3zones_layout1.gif - template: 3zoneslayout1.tpl - availableForClasses: [frontpage] - 3zonesLayout2: - zoneTypeName: 3 zones (layout 2) - zones: - left: - name: Left zone - right: - name: Right zone - bottom: - name: Bottom zone - zoneThumbnail: 3zones_layout2.gif - template: 3zoneslayout2.tpl - availableForClasses: [frontpage] - 4zonesLayout1: - zoneTypeName: 4 zones (layout 1) - zones: - left: - name: Left zone - right: - name: Right zone - bottomleft: - name: Bottom left zone - bottomright: - name: Bottom right zone - zoneThumbnail: 4zones_layout1.gif - template: 4zoneslayout1.tpl - availableForClasses: [frontpage] - ezpublish.fieldtype.ezpage.blockDefinition: - campaign: - name: Campaign - numberOfValidItems: 5 - numberOfArchivedItems: 5 - manualAddingOfItems: enabled - views: - default: - name: Default - mainStory: - name: Main story - numberOfValidItems: 1 - numberOfArchivedItems: 5 - manualAddingOfItems: enabled - views: - default: - name: Default - highligted: - name: Highligted - contentGrid: - name: Content Grid - numberOfValidItems: 8 - numberOfArchivedItems: 8 - nanualAddingOfItems: enabled - views: - default: - name: Default - 1column4rows: - name: 1 column 4 rows - 2columns2rows: - name: 2 columns 2 rows - 3columns1row: - name: 3 columns 1 row - 3columns2rows: - name: 3 columns 2 rows - 4columns1row: - name: 4 columns 1 row - 4columns2rows: - name: 4 columns 2 rows - gallery: - name: Gallery - numberOfValidItems: 8 - numberOfArchivedItems: 5 - manualAddingOfItems: enabled - views: - default: - Name: Default - banner: - name: Banner - numberOfValidItems: 1 - numberOfArchivedItems: 5 - manualAddingOfItems: disabled - views: - default: - name: URL - code: - name: Code - video: - name: Video - numberOfValidItems: 1 - numberOfArchivedItems: 5 - manualAddingOfItems: enabled - views: - default: - name: Default - tagCloud: - name: Tag cloud - manualAddingOfItems: disabled - customAttributes: - subtreeNodeId: - useBrowseMode: true - views: - default: - name: Default - poll: - name: Poll - manualAddingOfItems: disabled - customAttributes: - pollNodeId: - useBrowseMode: true - views: - default: - name: Default - itemList: - name: Item list - numberOfValidItems: 12 - numberOfArchivedItems: 5 - manualAddingOfItems: enabled - views: - default: - name: Default - feedReader: - Name: Feed reader - manualAddingOfItems: disabled - customAttributes: - source: {} - limit: {} - offset: {} - views: - default: - name: Default - feedbackForm: - Name: Feedback Form - numberOfValidItems: 1 - numberOfArchivedItems: 5 - manualAddingOfItems: enabled - views: - default: - name: Default - highlightedItem: - name: Highlighted Item - numberOfValidItems: 1 - numberOfArchivedItems: 5 - manualAddingOfItems: enabled - views: - default: - name: Default