[TYPO3-core] RFC #6872: Add suggest-like feature to TCEforms

Rupert Germann rupi at gmx.li
Sat Sep 5 22:33:36 CEST 2009


hi,

now I tested if the patch does what the (preliminary) documentation 
advertizes.

it does only partly.

so I'm rewriting the docs and the patch now to match each other and also 
to fit better to existing concepts how things are done in TYPO3.

if you want to test this feature please wait until v12 which will have a 
documentation - giving you much more features to play around with ;-)

greets
rupert



Rupert Germann schrieb:
> hi,
> 
> Steffen Kamper schrieb:
>> +1 on reading and testing on the latest patch (v11)
>>
>> Som remarks that should be fixed later:
> 
> should have been fixed yesterday ... ;-)
> 
> ...
> 
>> Documentation is very important, is it already written?
> 
> partly (thanks to benni) -> see below
> 
> I'm wondering about "TCEMAIN" mentioned in the tsConfig settings. How is 
> that supposed to work? function processAjaxRequest() takes only 
> "TCEFORM" into account. did I overlook something?
> 
> 
> 
> Here's bennis documentation:
> 
> 
> === Documentation (preliminary)
> 
> The suggest-feature is implemented as a wizard to TCEforms.
> 
> It can be added like any other wizard, basically by modifying the TCA. 
> As an example, I will use the "storage_pid" field of the "pages" table.
> 
> To get the suggest-feature up and running, please add this to your 
> extTables.php.
> 
> $TCA['pages']['columns']['storage_pid']['config']['wizards']['suggest'] 
> = array('type' => 'suggest');
> 
> The suggest field should now show up when editing page properties. When 
> typing something in (at least 2-3 characters), there is a list (sorted 
> alphabetically) of max. 10 items that can be selected.
> 
> The tables that are queried to be shown up are the ones used in 
> $TCA['pages']['columns']['storage_pid']['config']['allowed']
> 
> The following options are available to be set by TCA, and then 
> overridden the following way (the last one takes precedence of the former):
> 
> // TCA
> 1. 
> $TCA[$table]["columns"][$field]["config"]["wizards"]["suggest"]["default"]
> 2. 
> $TCA[$table]["columns"][$field]["config"]["wizards"]["suggest"][$queryTable] 
> 
> 
> // TSconfig:
> 3. TCEMAIN.default.suggest
> 4. TCEMAIN.$queryTable.suggest
> 5. TCEFORM.$table.$field.suggest.default
> 6. TCEFORM.$table.$field.suggest.$queryTable
> 
> For the storage_pid example, this looks like the following (table=pages, 
> field=storage_pid, queryTable=pages):
> 
> $TCA["pages"]["columns"][$field]["config"]["wizards"]["suggest"]["default"]
> $TCA["pages"]["columns"][$field]["config"]["wizards"]["suggest"]["pages"]
> TCEMAIN.default.suggest
> TCEMAIN.pages.suggest
> TCEFORM.pages.storage_pid.suggest.default
> TCEFORM.pages.storage_pid.suggest.pages
> 
> The following options are avilable:
> 
> TCEMAIN.default.suggest {
>     # (intList) Limit the search to certain PIDs (and their subpages)
>     pidList = 1,2,3,45
> 
>     # (int) the number of levels of the subpages of the pidList that 
> should be used as well
>     pidDepth = 4
> 
>     # (int+) max. numbers of characters to display when a path element 
> is too long
>     maxPathTitleLength = 30
> 
>     # (bool) whether to do a LIKE=%mystring% (searchWholePhrase = 1) or 
> a LIKE=mystring% (to do a real find as you type), default: 0
>     searchWholePhrase = 1
> 
>     # additional WHERE clause (no AND needed to prepend)
>     searchCondition = doktype=255
> 
>     # add a CSS class to every list item, default: ''
>     cssClass = myclass
> 
>     # PHP class alternative receiver class - the file that holds the 
> class needs to be included manually before calling the suggest feature 
> (default: t3lib_tceforms_suggest_defaultreceiver), should be derived 
> from "t3lib_tceforms_suggest_defaultreceiver"
>     receiverClass = tx_myext_receiverclass
> }
> 
> # This TCA value can only be overriden by TCEFORM. TSconfig not by 
> TCEMAIN. TSconfig, as this is only valid for the visibility of the 
> suggest field, not for the querying
> TCEFORM.$table.$field.suggest.default {
>     # (int) Minimum number of characters needed when the AJAX call 
> starts to run
>     minimumCharacters = 2
>     # (bool) Hide the suggest field
>     hide =  0/1
> }
> 
> =======
> 
> 
> 
> greets
> rupert


More information about the TYPO3-team-core mailing list