Kickstart command
The command make:
creates a bare-minimum Content Block.
This is actually an alias for content-
, which is inspired
by the EXT:
extension.
Options
content-type
-
- Type
- string
- Required
true
- Default
- content-element
content-
,element page-
ortype record-
type
vendor
-
- Type
- string
- Required
true
- Default
- (vendor of root composer.json)
Your vendor name. Lowercase, separated by dashes.
name
-
- Type
- string
- Required
true
Your Content Block name (this is not the title). Lowercase, separated by dashes.
extension
-
- Type
- string
- Required
true
The host extension, where to store your new Content Block.
title
-
- Type
- string
The human-readable title for your Content Block.
type-name
-
- Type
- string|int
Custom type name. Required for content-type
page-
(must be int).type Important
The
type-
option is required and has to be an integer value, if you choose thename page-
content type.type
skeleton-path
-
- Type
- string
- Default
- content-blocks-skeleton
A path relative to the current working directory, which holds a skeleton of a Content Block. Only needed, if you want to use a different name or path other than
content-
.blocks- skeleton Learn more about Content Blocks skeleton
config-path
-
- Type
- string
- Default
- content-blocks.yaml
A path to a yaml config file path, which contains defaults for this command.
Learn more about Content Blocks defaults
This will give you an overview of all available options:
vendor/bin/typo3 make:content-block --help
Example creating a Content Block skeleton in one line:
vendor/bin/typo3 make:content-block --content-type="content-element" --vendor="my-vendor" --name="my-name" --title="My shiny new Content Element" --extension="my_sitepackage"
Alternatively, the command can guide you through the creation by omitting the required options:
vendor/bin/typo3 make:content-block
On non-composer installations use:
typo3/sysext/core/bin/typo3 make:content-block
Example interaction:
Choose the content type of your content block [Content Element]:
[content-element] Content Element
[page-type ] Page Type
[record-type ] Record Type
> content-element
Enter your vendor name:
> my-vendor
Enter your content block name:
> my-content-block-name
Choose an extension in which the content block should be stored:
[sitepackage] Test Package for content blocks
> sitepackage
After running the make command
In order to create newly added database tables or fields, you have to clear the caches and then run the database compare. You can do the same in the TYPO3 Backend by using the Database Analyzer. Repeat this step every time you add new fields to your Content Block definition.
vendor/bin/typo3 cache:flush -g system
vendor/bin/typo3 extension:setup --extension=my_sitepackage
Content Block skeleton
New in version 1.1
It is now possible to define a "skeleton" for your Content Blocks. To do this
create a folder called content-
in your project root. This
folder may contain default templates or assets for one or more Content Types. It
is used as a base when creating new types with the make:
command. In order to add a skeleton for Content Elements, create a folder called
content-
within that directory. Then, the structure is identical to
your concrete Content Block as you know it. You may place any files there. They
will simply be copied when a new Content Block is created. It is not possible to
define language/
or config.
this way, as they are dynamically
generated based on your arguments.
In case you want to name the skeleton folder differently or place it somewhere
else, you can override the default folder by providing the option
--
with a relative path to your current working directory.
vendor/bin/typo3 make:content-block --skeleton-path="my-alternative-skeleton-path"
Defaults
New in version 1.1
It is now possible to define default options for this command via a yaml config
file. By default, the command looks for a file called content-
in
the current working directory. The location and name can be overridden with the
--
option.
vendor/bin/typo3 make:content-block --config-path="some-folder/my-config.yaml"
An example yaml config file contents may look like this:
vendor: nh
extension: content_blocks_examples
content-type: record-type
skeleton-path: folder1/content-block-skeletons
This config sets defaults for vendor
, skeleton-
,
extension
and content-
. These are all possible options right
now.
Now, whenever you run this command, these options will be set by default. This
does not mean, the questions for these options will be skipped, only that they
are the default value, if you just press Enter
without any input. They will
be visible in brackets at the very right [default value]
.