Использование `TCA_DESCR` для строки `tt_content` в зависимости от ее `CType`

Конфигурация в TCA_DESCR используется для текста справки CSH; что-то вроде $GLOBALS['TCA_DESCR'][$table]['columns'][$field] = array('description' => ...). Предоставляет ли TYPO3 CMS что-либо для использования этой конфигурации для подтипов (CType) tt_content?

Я спрашиваю, потому что вы можете изменить метку поля для строки в tt_content в зависимости от ее подтипа (CType). Например. именование поля header объекта контента с типом Foo как Bar вместо Header. Но кажется, что вы не можете изменить текст справки CSH, потому что, когда я просматриваю FormEngine::getSingleField(), вспомогательная функция BackendUtility::wrapInHelp() используется только с тремя параметрами, и поэтому используется текст справки CSH по умолчанию. Это не имеет никакого смысла, IMO, потому что, когда я определяю настраиваемый подтип с помощью настраиваемого внешнего шаблона, я точно знаю, для чего в этом случае используется это поле, и оно может немного отличаться от другого подтипа.

Так что единственная возможность, которую я вижу, это написать уродливый обработчик для хука getSingleField_postProcess из $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tceforms.php'], чтобы получить то, что мне нужно. Я прав?


person witrin    schedule 01.04.2015    source источник


Ответы (1)


Ты прав. Описание таблицы привязано к каждой таблице/полю. Поэтому вы не можете заставить его измениться на основе какого-либо условия, если только вы не подключитесь к ядру и не сделаете это самостоятельно.

person pgampe    schedule 05.04.2015
comment
К сожалению, в хуке, о котором я упоминал выше, я получу визуализированную разметку, поэтому я не пойду по этому пути. Вместо этого я просто добавляю новые поля, когда это требуется для пользовательского типа контента. Но немного любопытно, что вы можете изменить метку на основе некоторых условий, но текст справки остается постоянно. - person witrin; 05.04.2015
comment
Причина, по которой вы можете изменить метку, заключается в том, что вы можете использовать поле для разных данных, в зависимости от выбранного (под)типа записи. Примером может быть tt_content. Я рекомендую не делать этого, а использовать больше полей и отображать только необходимые поля в вашем текущем подтипе или вообще использовать разные таблицы. - person pgampe; 10.04.2015
comment
Точно! И эта возможность наполовину испечена, когда вы не можете сделать то же самое для помощи лейбла. Таким образом, ИМО либо вы можете полностью «неправильно использовать» существующее поле для своих целей, либо нет, но текущее состояние является чем-то средним. Во всяком случае, я уже написал то, что вы предлагаете, из-за отсутствия поддержки путем изменения метки справки существующих полей мне приходится писать для каждого свойства моего пользовательского типа новые поля (столбцы); что в некоторых случаях немного глупо (например, что-то вроде title). - person witrin; 10.04.2015