{"id":19114850,"url":"https://github.com/namelesscoder/patternlab-fluid-typo3-export","last_synced_at":"2025-07-20T11:32:29.406Z","repository":{"id":57023494,"uuid":"112854604","full_name":"NamelessCoder/patternlab-fluid-typo3-export","owner":"NamelessCoder","description":"TYPO3 CMS extension template asset exporting for Pattern Lab Fluid Edition","archived":false,"fork":false,"pushed_at":"2020-04-27T12:45:36.000Z","size":12,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-14T01:38:56.772Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NamelessCoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-02T15:47:11.000Z","updated_at":"2022-04-25T15:48:11.000Z","dependencies_parsed_at":"2022-08-23T13:50:54.261Z","dependency_job_id":null,"html_url":"https://github.com/NamelessCoder/patternlab-fluid-typo3-export","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/NamelessCoder/patternlab-fluid-typo3-export","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessCoder%2Fpatternlab-fluid-typo3-export","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessCoder%2Fpatternlab-fluid-typo3-export/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessCoder%2Fpatternlab-fluid-typo3-export/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessCoder%2Fpatternlab-fluid-typo3-export/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NamelessCoder","download_url":"https://codeload.github.com/NamelessCoder/patternlab-fluid-typo3-export/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessCoder%2Fpatternlab-fluid-typo3-export/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266117487,"owners_count":23879074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T04:44:42.454Z","updated_at":"2025-07-20T11:32:25.916Z","avatar_url":"https://github.com/NamelessCoder.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Pattern Lab Fluid Engine: TYPO3 CMS export\n==========================================\n\nPackage which hooks into the [Pattern Lab Fluid Edition](https://github.com/NamelessCoder/patternlab-fluid-edition) to \nwrite your patterns as proper TYPO3 CMS Fluid template files into an extension folder - which then is more or less\nplug and play.\n\nThe basics\n----------\n\nAdding this package to a Pattern Lab Fluid Edition means that when you generate templates (either by watching files or\nmanually generating) your files get copied and adjusted so they fit into a TYPO3 CMS extension's `Resources` folder.\n\nThe following rules are in place:\n\n* Atoms are copied to `Resources/Private/Partials/Atoms` that you can easily render from any of your templates.\n* Molecules are copied to `Resources/Private/Partials/Molecules` - and are also partials.\n* Organisms are copied to `Resources/Private/Partials/Organisms` - and are also partials.\n* Templates are copied to `Resources/Private/Templates/Default` - which emulates a \"DefaultController\" to scope templates.\n* Pages are copied to `Resources/Private/Templates/Page` - which emulates a \"PageController\" to scope templates.\n\nLayouts are handled specially and separately. If any of your `Templates` or `Pages` use a Fluid layout, then this is\nalso extracted, rewritten and copied to `Resources/Private/Layouts/`.\n\nNote here that while Pattern Lab allows you to use a Layout for every pattern down to the Atoms type, the Layout is only\nrespected in TYPO3 CMS for the `Templates` and `Pages` types. Though they do get copied, they still contain the Layout\nreference, and most likely only can be rendered by rendering a specific section. **This means that in order to render\nan Atom, Molecule or Organism which in Pattern Lab uses a Layout, in almost all cases you will have to call `f:render`\nwith both a `section` AND `partial` argument!**. This package does not correct the render statements in this case;\nthough that may be added as a feature at a later time.\n\n\nDefining the export target folder\n---------------------------------\n\nOnce installed, your Pattern Lab Fluid Edition's `config/config.yml` file can be edited to add:\n\n```yml\nfluidTYPO3ExtensionExportPath: /path/to/my_extension\n``` \n\nDefine the target path pointing to the *root of the extension folder*. The rest, e.g. `Resources/Private`, is implied.\n\nAttempting to generate your templates without this parameter present will trigger an exception asking you to add the\nconfiguration option.\n\n\nUsing the exported TYPO3 CMS templates\n--------------------------------------\n\nOnce your templates are exported, how you render them will depend largely on your preferred integration method (either\nas controller action templates, as `FLUIDTEMPLATE` objects or other) but there are a couple of hints to achieve the\nmost transparent integration:\n\n1. Generating templates into an extension which only has this single responsibility, carrying template files, means you\n   can add the paths for this extension to those of a secondary extension - for example a customer specific extension.\n2. Alternatively, generating into an extension which also contains other template files is possible, but should be done\n   carefully as to avoid overwriting any manually added partials. Consider a separate set of folders for the manually\n   added templates if this is your use case.\n3. The exported templates can also be used as content types with very little adaptation: for example, `Fluid Styled\n   Content` allows you to override templates using TypoScript. You can use this to your advantage, by letting Pattern\n   Lab generate core content type templates for example as the `Template` pattern type.\n4. The safest way to integrate the templates will always be to *pre-process all variables that are used in the template\n   so that your assigned variables completely match the structure of the JSON dummy data associated with the pattern.*\n   This is the method that involves the absolute minimum effort in terms of having to edit the generated templates.\n\n\nLimitations / future features\n-----------------------------\n\n* Extension manifest files are not generated and must be created manually before the extension can be loaded.\n* The Pattern Lab JSON data is not copied, but can be manually copied and assigned as dummy data until real data exists.\n  Future versions may do this for you by creating dummy TypoScript and correcting references to variables.\n* The exporting logic will indiscriminately overwrite any existing files; future versions may be configurable to either\n  ask or selectively overwrite only some of the templates.\n* Nothing in terms of configuration (TypoScript, global config, etc.) is currently written and must be manually created.\n* Although PatternLab supports writing ViewHelpers into the edition's source files, these classes are currently not\n  exported - future versions are very likely to begin doing this for you. Until such time, copy the classes into your\n  extension of choice and register that extension's ViewHelper classes folder using the `plio` namespace name.\n\n\nCredits\n-------\n\nThis work was kindly sponsored by [Busy Noggin](http://busynoggin.com/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamelesscoder%2Fpatternlab-fluid-typo3-export","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnamelesscoder%2Fpatternlab-fluid-typo3-export","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamelesscoder%2Fpatternlab-fluid-typo3-export/lists"}