Есть ли разница между синтаксисом, используемым для констант TypoScript, и синтаксисом «Конфигурация расширения»? - PullRequest
0 голосов
/ 20 февраля 2020

Для «констант TypoScript» и «Конфигурации расширения» (как определено в ext_conf_template.txt) используйте общий синтаксис. Они задокументированы здесь:

Пример:

# cat=basic; type=string; label=Some title
title = 

Строка 1 описывает тип данных, категория et c. переменной.

В качестве альтернативы у нас может быть что-то вроде этого:

tx_plugins.my_plugin {
    # cat=basic; type=string; label=Some title
    title = 

}

Помимо этого довольно простого примера, есть еще несколько вещей, которые вы можете сделать с этим.

Где константы TypoScript и Extension Configuration хранятся, и то, как они используются, совершенно отличается, но мне интересно, если мы просто посмотрим на синтаксис и функции, которые вы можете использовать - это одно и то же?

например

  • доступные типы данных (логические, целые и т. Д. c.)
  • , для которых нельзя использовать многострочные значения
  • , для которых можно использовать переменные среды
  • как доступ к файлам
  • как сделать локализацию

Причина, по которой я спрашиваю: упростить документацию, а также я использую это в своих собственных расширениях.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Краткий ответ

Синтаксис, используемый для констант шаблона TS и конфигурации расширений, одинаков, но в настоящее время существуют некоторые незначительные различия для доступных типов.

Глубокий анализ

Конфигурация расширения

Для TYPO3 CMS версии 6 менеджер расширений и конфигурация были переписаны с нуля на основе Extbase и с использованием FormEngine. Доступны следующие типы:

  • int: целочисленные значения
  • int+: только положительные целые значения
  • integer: псевдоним для int
  • color: средство выбора цвета
  • wrap: перенос, строки окончательно разделяются на | для сохраненного значения
  • offset: поле смещения
  • options: выберите
  • boolean: флажок
  • user: пользовательская функция используется для рендеринга
  • small: небольшое текстовое поле
  • string: текстовое поле
  • input: псевдоним для string, только для обратной совместимости, многие расширения зависят от этого
  • default: псевдоним для string , только для обратной совместимости, многие расширения зависят от того, *

Источник доступен здесь: https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/ViewHelpers/Form/TypoScriptConstantsViewHelper.php#L36

Редактор констант шаблона TypoScript

С другой стороны, редактор констант шаблона TypoScript никогда не был переписан для использования FormEngine и имеет собственную реализацию. Здесь дополнительно доступны следующие типы:

  • comment: флажок для переключения константы
  • files: выбор файла

Источник доступно здесь: https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/core/Classes/TypoScript/ExtendedTemplateService.php#L993

Другие вопросы

  • о невозможности использования многострочных значений

Это почти верно для редактор констант TS, но есть тип wrap для достижения многопоточной функциональности. Для конфигурации расширения есть типы small и string.

По остальным вопросам, о которых я в настоящее время не знаю, и я должен сначала немного глубже исследовать:

  • что вы можете использовать переменные окружения
  • как получить доступ к файлам
  • как сделать локализацию
0 голосов
/ 21 февраля 2020

Поскольку Typoscript - это конфигурация, ее можно использовать несколькими способами. И TYPO3 использует его по-разному. Таким образом, вы должны различать.

Константы могут использоваться только для рендеринга внешнего интерфейса. там они являются ярлыком для использования заданного значения в разных местах.
Или для простой настройки чего-либо (расширения) без знания подробных настроек. Поэтому у вас есть редактор констант, где вы можете определить константы, которые получили специальную информацию / комментарий. Это как TCA, помощь в построении форм и автоматическое использование некоторых валидаторов для данных. поскольку TS-константы являются только строками, которые можно использовать в настройках, у вас нет реальных типов данных. это просто конфигурация для проверки в редакторе констант.
Помимо некоторой рекурсивной замены (до уровня 10) констант в определении констант, у вас больше нет опций для вычисления значения.

В настройках Typoscript (в то же время) функциональность stdWrap есть практически везде.

Но особенно расширения не оценивают его везде. поэтому в некоторых местах у вас есть конфигурация расширения в настройке, где вы можете вставить только фиксированные строки. (как в константах)


с другой стороны:
как можно настроить расширение (с помощью инструментов TYPO3)?

Помимо настройки Typoscript (где вы Можно использовать константы), который в основном используется для рендеринга внешнего интерфейса (*) у вас есть глобальная опция для настройки расширений с помощью менеджера расширений.
Эти данные хранятся в сериализованном виде typo3conf/LocalConfiguration.php. поскольку TYPO3 9 не сериализован.
К нему можно получить доступ во внешнем интерфейсе и бэкэнде, и он работает глобально, в то время как внешний текст или TSconfig зависит от страницы (и пользователя).


Это приводит нас к третья часть конфигурации: TSconfig

У нас есть page-TSconfig и user-TSconfig. В pages, be_users и be_groups вы можете определить конфигурацию с синтаксисом Typoscript. Это можно улучшить с помощью «глобального» кода расширений PHP, который вводит дальнейшие настройки в ext_localconf.php и ext_tables.php (или преемники в /Configuration/TCA/ и /Configuration/TCA/Overrides/)



(*) некоторые расширения оценивают опечатку внешнего интерфейса для конфигурации внутренних модулей или плагинов-опций

...