Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TASK] Overhaul module chapter #1167

Merged
merged 2 commits into from
Apr 4, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 79 additions & 61 deletions Documentation/TopLevelObjects/Module.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.. include:: /Includes.rst.txt
.. index:: Top-level objects; module
.. include:: /Includes.rst.txt
.. index:: Top-level objects; module

.. _tlo-module:
.. _tlo-module:

======
module
Expand All @@ -18,6 +18,7 @@ settings should be done globally and not changed on a per-page basis.
Therefore they are usually done in the file
:ref:`EXT:my_extension/ext_typoscript_setup.typoscript <t3coreapi:ext_typoscript_setup_typoscript>`.

.. _module-options:

Options for simple backend modules
===================================
Expand All @@ -26,108 +27,125 @@ In simple backend modules extension authors can decide how to use this
namespace. By convention settings should go in the subsection
:typoscript:`settings`.

.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript
.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript

module.tx_myextension_somemodule {
settings {
enablesomething = 1
}
}
module.tx_myextension_somemodule {
settings {
enablesomething = 1
}
}

.. _tlo-module-options-extbase:

Options for Extbase backend modules
===================================

Most configuration options that can be done for Extbase frontend plugins
can also be done for Extbase backend modules.
linawolf marked this conversation as resolved.
Show resolved Hide resolved
can also be done for Extbase backend modules:

.. contents::
:local:

.. index:: module; view.templateRootPaths
.. _tlo-module-properties-templaterootpaths:
.. index:: module; view.templateRootPaths
.. _tlo-module-properties-templaterootpaths:

view.templateRootPaths
----------------------

.. rst-class:: dl-parameters
.. confval:: view.templateRootPaths.[array]
:name: module-view-templateRootPaths
:type: file path with :ref:`stdWrap <stdwrap>`

view.templateRootPaths
:sep:`|` :aspect:`Data type:` array of file paths with :ref:`stdWrap <stdwrap>`
:sep:`|`
Used to define several paths for templates, which are executed in reverse
order (the paths are searched from bottom to top). The first folder where
the desired layout is found is immediately used. If the array keys are numeric, they
are first sorted and then executed in reverse order.

Used to define several paths for templates, which are executed in reverse
order (the paths are searched from bottom to top). The first folder where
the desired layout is found is immediately used. If the array keys are numeric, they
are first sorted and then executed in reverse order.
.. _tlo-module-properties-templaterootpaths-example:

**Example:**
Example: Set the template root paths
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript
.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript

module.tx_somebackend_module {
view {
module.tx_somebackend_module {
view {
templateRootPaths {
100 = EXT:my_extension/Resources/Private/Templates/Backend
100 = EXT:my_extension/Resources/Private/Templates/Backend
}
}
}
}
}

.. index:: module; view.partialRootPaths
.. _tlo-module-properties-partialRootPaths:
.. index:: module; view.partialRootPaths
.. _tlo-module-properties-partialRootPaths:

view.partialRootPaths
----------------------

.. rst-class:: dl-parameters
.. confval:: view.partialRootPaths.[array]
:name: module-view-partialRootPaths
:type: file path with :ref:`stdWrap <stdwrap>`

Used to define several paths for partials, which will be executed in reverse
order. The first folder where the desired partial is found, is used. The
keys of the array define the order.

view.partialRootPaths
:sep:`|` :aspect:`Data type:` array of file paths with :ref:`stdWrap <stdwrap>`
:sep:`|`

Used to define several paths for partials, which will be executed in reverse
order. The first folder where the desired partial is found, is used. The
keys of the array define the order.
**Example:**
Example: Set the partial root paths
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript
.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript

module.tx_somebackend_module {
view {
partialRootPaths {
100 = EXT:my_extension/Resources/Private/Partials/Backend
}
}
}
module.tx_somebackend_module {
view {
partialRootPaths {
100 = EXT:my_extension/Resources/Private/Partials/Backend
}
}
}


.. index:: module; settings
.. _tlo-module-properties-settings:

settings
--------

.. confval:: settings
:name: module-settings
:type: array<string, mixed>

Here resides all of the settings. These settings are
available in the Controller of the backend module as the array variable
available in the controller of the backend module as the array variable
:php:`$this->settings`.

Example:
Example: Limit pagination in the backend
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Show 25 news records in the backend module of the news extension:

.. code-block:: typoscript
.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript

module.tx_news {
settings.list.paginate.itemsPerPage = 25
}

Example: Register YAML file
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Register your EXT:form configuration for the backend via TypoScript.
Register your :doc:`typo3/cms-form:Index` configuration for the backend via TypoScript.

.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript
.. code-block:: typoscript
:caption: EXT:my_extension/ext_typoscript_setup.typoscript

module.tx_form {
settings {
yamlConfigurations {
100 = EXT:my_extension/Configuration/Form/CustomFormSetup.yaml
}
}
}
module.tx_form {
settings {
yamlConfigurations {
100 = EXT:my_extension/Configuration/Form/CustomFormSetup.yaml
}
linawolf marked this conversation as resolved.
Show resolved Hide resolved
}
}
Loading