Creating a Theme package (theme_masonry, Part 1)

In the first part we want to create the Theme base.

First of all, create an extension with the name theme_masonry. During our theme development the extension will get step by step the following directory structure:

  1. theme_masonry
  2. |____Meta
  3. | |____Screenshots
  4. |____Configuration
  5. | |____Elements
  6. | | |____FlexForms
  7. | | |____PageTS
  8. | | |____TypoScript
  9. | |____BackendLayouts
  10. | |____PageTS
  11. | | |____Library
  12. | |____TypoScript
  13. | | |____Library
  14. | |____UserTS
  15. |____Resources
  16. | |____Private
  17. | | |____Dyncss
  18. | | | |____Library
  19. | | | | |____Elements
  20. | | | | |____Variants
  21. | | |____Partials
  22. | | | |____Elements
  23. | | | |____Content
  24. | | | |____Area
  25. | | |____Layouts
  26. | | |____Templates
  27. | | | |____ViewHelpers
  28. | | | |____Theme
  29. | | |____Extensions
  30. | | |____Language
  31. | |____Public
  32. | | |____Images
  33. | | |____Contrib
  34. | | |____Stylesheets
  35. | | |____JavaScript
  36. | | |____Fonts
  37. | | |____Extensions
  38. | | |____Icons
  1. <?php
  2. $EM_CONF[$_EXTKEY] = array(
  3. 'title' => 'Theme-Masonry',
  4. 'description' => 'New Theme, generated by EXT:FTM',
  5. 'category' => 'templates',
  6. 'shy' => 0,
  7. 'version' => '0.0.1',
  8. 'dependencies' => '',
  9. 'conflicts' => '',
  10. 'priority' => 'bottom',
  11. 'loadOrder' => '',
  12. 'module' => '',
  13. 'state' => 'beta',
  14. 'uploadfolder' => 0,
  15. 'createDirs' => '',
  16. 'modify_tables' => '',
  17. 'clearcacheonload' => 0,
  18. 'lockType' => '',
  19. 'author' => '',
  20. 'author_email' => '',
  21. 'author_company' => '',
  22. 'CGLcompliance' => '',
  23. 'CGLcompliance_note' => '',
  24. 'constraints' => array(
  25. 'depends' => array(
  26. 'typo3' => '7.0.0-7.99.99',
  27. 'themes' => '1.0.1-7.99.99',
  28. ),
  29. 'conflicts' => array(
  30. ),
  31. 'suggests' => array(
  32. ),
  33. ),
  34. '_md5_values_when_last_written' => ''
  35. );
  36.  
  37. ?>

Create the required Theme configuration yaml file, which is necessary for the Theme selection.

File: theme_masonry/Configuration/Meta/theme.yaml

  1. title: Theme-Masonry
  2. description: "New Theme, generated by FTM\nInherit from: none\n"
  3. parentTheme:
  4.   name: none
  5.   version: ''
  6. version: 0.0.1
  7.  

File: theme_masonry/Configuration/TypoScript/setup.txt

  1. <INCLUDE_TYPOSCRIPT: source="DIR:EXT:theme_masonry/Configuration/Elements/TypoScript/" extensions="setupts">
  2. <INCLUDE_TYPOSCRIPT: source="DIR:EXT:theme_masonry/Configuration/TypoScript/Library/" extensions="setupts">

File: theme_masonry/Configuration/TypoScript/constants.txt

  1. <INCLUDE_TYPOSCRIPT: source="DIR:EXT:theme_masonry/Configuration/TypoScript/Library/" extensions="constantsts">

File: theme_masonry/Configuration/PageTS/tsconfig.txt

  1. <INCLUDE_TYPOSCRIPT: source="DIR:EXT:theme_masonry/Configuration/PageTS/Library/" extensions="pagets">
  2. <INCLUDE_TYPOSCRIPT: source="DIR:EXT:theme_masonry/Configuration/BackendLayouts/" extensions="pagets">
  3. <INCLUDE_TYPOSCRIPT: source="DIR:EXT:theme_masonry/Configuration/Elements/PageTS/" extensions="pagets">