![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
#1 |
|
Продвинутый
Регистрация: 16.06.2011
Сообщений: 96
|
Пишу такой код в своем TCA:
Код:
$TCA['fe_users']['columns']['telephone']['config']['type'] = 'select'; $TCA['fe_users']['columns']['telephone']['config']['foreign_table'] = 'tx_contacts_main'; |
|
|
|
|
|
#2 |
|
Senior Member
|
Изменить можно все.
Почему может у вас не получаться: 1. Там где ваш код не объявлена глобальная переменная $TCA 2. Ваш код подключается до загрузки $TCA для fe_users |
|
|
|
|
|
#3 | |
|
Продвинутый
Регистрация: 16.06.2011
Сообщений: 96
|
Цитата:
Код:
$GLOBALS['TCA'] ['fe_users']['columns']['telephone']['config']['type'] = 'select'; |
|
|
|
|
|
|
#4 |
|
Продвинутый
Регистрация: 16.06.2011
Сообщений: 96
|
|
|
|
|
|
|
#5 |
|
Senior Member
|
|
|
|
|
|
|
#6 |
|
Senior Member
|
Может у вас еще что-то не задано для select? Поэтому ядро и не понимает, а выводить что-то по дефолту (просто поле).
Вы можете кикстартером сделать экст, который добавляет ваше собственное поле в fe_users нужного вам типа. И посмотрите как и что он сгенерит для этого. А потом можете повторить то же самое на существующем поле. |
|
|
|
|
|
#7 |
|
Продвинутый
Регистрация: 16.06.2011
Сообщений: 96
|
Спасибо за то что направили в нужное русло все получилось.
Все таки проблема была в : 1. $GLOBALS['TCA'] – это первый мой вывод; 2. Нужно было ее обновлять не в myext/tca.php, a myext/ext_tables.php Вот как все выгладить в коде: Код:
global $GLOBALS;
t3lib_div::loadTCA('fe_users');
$GLOBALS['TCA']['fe_users']['columns']['telephone']['config']['type'] = 'select';
$GLOBALS['TCA']['fe_users']['columns']['telephone']['config']['foreign_table'] = 'tx_contacts_main';
|
|
|
|
|
|
#8 |
|
Продвинутый
Регистрация: 16.06.2011
Сообщений: 96
|
Но тут логически просто для понимания всей картины возникает вопрос:
1. В чём разница между Код:
$GLOBALS['TCA'] ['fe_users']['columns']['telephone']['config']['type'] = 'select'; Код:
$TCA['fe_users']['columns']['telephone']['config']['type'] = 'select'; 2. И почему я прописывал для других расширений Код:
$TCA['таблица]['columns']['поле']['config']['type'] = 'select'; Код:
GLOBALS['TCA'] ['fe_users']['columns']['telephone']['config']['type'] = 'select'; |
|
|
|
|
|
#9 |
|
Senior Member
|
Если вы в начале своего кода объявите global $TCA; то разницы никакой. В таком случае переменная с локальной видимостью $TCA становиться ссылкой на $GLOBALS['TCA']. По умолчанию переменная $TCA (и ей подобные) не объявлены.
Что касается порядка. Возможно (это мое предположение!) сначала все xxx/tca.php подключаются, потом все xxx/ext_tables.php. Если оказывается что ваш экст подключается после изменяемого, то изменение сработает через любой файл. А если до - то только через ext_tables.php |
|
|
|
|
|
#10 | |
|
Продвинутый
Регистрация: 16.06.2011
Сообщений: 96
|
Цитата:
Код:
global $TCA; $TCA['fe_users']['columns']['telephone']['config']['type'] = 'select'; $TCA['fe_users']['columns']['telephone']['config']['foreign_table'] = 'tx_contacts_main'; |
|
|
|
|
![]() |
|
|
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Вывод данных в TCA | brd | Разработка расширений / TYPO3 extension development | 2 | 23.02.2012 12:56 |
| Как создать свой тип поля в TCA, либо перехватить данные при сохранении формы. | almaz | Разработка расширений / TYPO3 extension development | 2 | 16.06.2011 16:46 |
| НУЖНА ПОМОЩЬ!!! ИЗМЕНИТЬ СЛОВО В ШАБЛОНЕ!!! УБИЛСЯ насмерть - не могу найти - где???? | ACROBAT | Общие вопросы | 1 | 24.04.2010 17:30 |
| Модификация TCA при помощи Dynaflex | reva2 | Общие вопросы | 2 | 17.01.2008 14:54 |
| не могу изменить значение memory_limit | D Sydorovich | Установка | 6 | 18.10.2004 08:59 |