[Typo3-UG Denmark] To-vejs MM-tabeller

Christian Jul Jensen christian at jul.net
Thu Mar 31 07:15:50 CEST 2005


Hej Peter

Peter Makholm <peter at makholm.net> writes:

> Hvis jeg nu lader mit felt have typen 'select' i stedet for 'group',
> så har jeg mulighed for at kalde en funktion itemsProcFunc. Bliver den
> kaldt begge veje, altså både når min opdateringsform bliver genereret
> og når brugeren trykker 'Save'? 

Nej, den bliver kan kaldt til at generere den liste af elementer du
kan vælge imellem i selectorboxen. Men der findes et hook i TCEmain,
hvor du kan registrere en funktion som bliver kaldt ved updates af
records.

Bortset fra det vil du helt sikkert bruge 'select' til det her af
hensyn til redaktørerne, da de på den måde direkte får en liste
direkte på siden og ikke skal åbne et vindue, og vælge siden hvor de
elementerne er.

> Kunne man så bruge dette som hook til at synkronisere de to
> MM-tabeller? (lidt et hack, IMHO).

Ja, på en måde.

Jeg ville nok gøre en af to ting, begge dele er hacks, da TYPO3
ikke rigtig understøtter det du gerne vil ha' men antager at den ene
tabel er primær.

Begge måder kræver at du definerer begge tabeller uafhængigt i TCA,
altså:
$TCA['tabel1']['type'] = 'select';
$TCA['tabel1']['MM'] = 
                         ...
                         ...
$TCA['tabel2']['type'] = 'select';
$TCA['tabel2']['MM'] = 
                         ...
                         ...

1: definere to MM tabeller: tabel1_tabel2_mm, og tabel2_tabel1_mm, og
via ovennævnte save-hook i TCEmain, sikre integritet mellem de to
tabeller.

2: kun definere en tabel, og ved at XCLASSe t3lib_db swappe uid_local
og uid_foreign på den ene af tabellerne.

Mulighed 2 er nok det cleaneste, men giver et lille overhead på alle DB
forespørgsler, hvilket I måske ikke er interesseret i.

> Jeg kan heller ikke helt se den teknisk dybere forskel mellem 'select'
> og 'group'. Brugergrænsefladen er lidt forskellig, men når alle mine
> elementer er samlet i en lang flad liste er 'select'-boksen vel det
> bedste.

Præcis, det er interfacet der er forskelligt.

--
-julle



More information about the TYPO3-UG-denmark mailing list