Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Разработка расширений / TYPO3 extension development (http://forum.typo3.ru/forumdisplay.php?f=38)
-   -   Выбрать с 2-x selectbox в 3-й selectbox (http://forum.typo3.ru/showthread.php?t=10097)

brd 08.05.2012 17:36

Выбрать с 2-x selectbox в 3-й selectbox
 
есть ли возможность выбрать с 2-x selectbox,в них разная инфа, в 3-й selectbox в TCA? Примерно так http://remysharp.com/wp-content/uplo...lect-chain.php

dmartynenko 10.05.2012 12:52

Прямо в таком виде как на вашем примере нет, по крайней мере стандартными средствами.

Можно попробовать такие варианты:
1. Использовать treeview - есть среди стандартных элементов формы начиная с TYPO3 4.5. Ведь фактически три таких связанных списка берут данные из дерева с 2-мя уровнями вложенности.
2. Сделать три поля select одно под другим. Во втором поле будет условие видимости "значение первого поля не пустое" и в запросе на отбор записей для второго поля будет использоваться значение 1-го поля. 3-е поле аналогично связать со 2-м. Это все реализуется стандартными возможностями TCA. Минус один - после выбора значений в первом поле нужно сохранить форму что бы появилось второе поле, а после выбора во втором поле нужно опять сохранить что бы появилось третье поле. Хотя может быть этот недостаток можно нивелировать - в репозитории я как-то встречал экст который добавляет AJAX функциональность BE формам (но не пробовал).
3. Написать кастомный элемент для формы.

brd 16.05.2012 17:31

Цитата:

Сообщение от dmartynenko (Сообщение 33724)
Прямо в таком виде как на вашем примере нет, по крайней мере стандартными средствами.

Можно попробовать такие варианты:
1. Использовать treeview - есть среди стандартных элементов формы начиная с TYPO3 4.5. Ведь фактически три таких связанных списка берут данные из дерева с 2-мя уровнями вложенности.
2. Сделать три поля select одно под другим. Во втором поле будет условие видимости "значение первого поля не пустое" и в запросе на отбор записей для второго поля будет использоваться значение 1-го поля. 3-е поле аналогично связать со 2-м. Это все реализуется стандартными возможностями TCA. Минус один - после выбора значений в первом поле нужно сохранить форму что бы появилось второе поле, а после выбора во втором поле нужно опять сохранить что бы появилось третье поле. Хотя может быть этот недостаток можно нивелировать - в репозитории я как-то встречал экст который добавляет AJAX функциональность BE формам (но не пробовал).
3. Написать кастомный элемент для формы.

а как указать условия видимости для второго селекта, (ваше 2-е предложение), можно пример?

dmartynenko 16.05.2012 17:56

Смотрите http://typo3.org/documentation/docum.../1/3/#id384469 про параметр displayCond.

Пример кода из tca.php - поле publisher_title показывается только тогда, когда в поле publisher_id ничего не выбрано (там список). Это сделано для реализация функциии "выбери из списка или введи свое название".
Код:

               
'publisher_title' => array (
        // hide this field if publisher_id selected
        'displayCond' => 'FIELD:publisher_id:REQ:false', 
        ...


brd 21.05.2012 16:37

Цитата:

Сообщение от dmartynenko (Сообщение 33802)
Смотрите http://typo3.org/documentation/docum.../1/3/#id384469 про параметр displayCond.

Пример кода из tca.php - поле publisher_title показывается только тогда, когда в поле publisher_id ничего не выбрано (там список). Это сделано для реализация функциии "выбери из списка или введи свое название".
Код:

               
'publisher_title' => array (
        // hide this field if publisher_id selected
        'displayCond' => 'FIELD:publisher_id:REQ:false', 
        ...


А если мне нужно выбрать на основании того что выбрали в первом и сделать запрос и выдать во втором только то что относится к первому?

dmartynenko 21.05.2012 16:43

А документацию по TCA посмотреть ленитесь? Я вам даже ссылку дал.

brd 21.05.2012 16:51

Цитата:

Сообщение от dmartynenko (Сообщение 33843)
А документацию по TCA посмотреть ленитесь? Я вам даже ссылку дал.

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

dmartynenko 21.05.2012 16:57

Смотрите раздел ['columns'][field name]['config'] / TYPE: "select, параметр foreign_table_where, про ###REC_FIELD_[field name]###. И под таблицей описания параметров Example - Simple selector box with TSconfig markers.

brd 21.05.2012 19:01

Цитата:

Сообщение от dmartynenko (Сообщение 33845)
Смотрите раздел ['columns'][field name]['config'] / TYPE: "select, параметр foreign_table_where, про ###REC_FIELD_[field name]###. И под таблицей описания параметров Example - Simple selector box with TSconfig markers.

:):): Все дошло мне спс:)))) Я это находил в документации и даже пробывал но результата не дало такого как я хотел поэтому я и начал рыть дальше! А кода вы подтвердили что в этом месте собака зарыта я ее откопал:) Спасибо.


Часовой пояс GMT +4, время: 14:01.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot