Hulp met php/smarty

Een board om T&T's te plaatsen m.b.t. CMSMS, PHP of Smarty

Moderators: velden, Rolf

Post Reply
musicscore
Power Poster
Power Poster
Posts: 417
Joined: Wed Jan 25, 2006 11:53 am
Location: Netherlands

Hulp met php/smarty

Post by musicscore »

Hallo,
Ik ben een module aan het bouwen en schiet als newbee al aardig op.
De module werkt grotendeels maar ik loop nog tegen een zaakje op.

Ik wil graag de optie bieden aan gebruikers om zelf velden bij een product toe te voegen. Daarbij wil ik de gebruiker de keuze geven wanneer hij een veld wilt aanmaken om te kiezen uit bv (doch niet alleen) een tekst veld, een image veld, een optie (dropdown) veld, etc.

Nu wil ik, wanneer de gebruiker een veld type kiest, onder dat veld meteen alleen de extra velden zien die nodig zijn bij dat type veld.

Dus kiest de gebruiker voor een tekst veld, dan wil ik alleen de lengte van het veld kunnen invoeren.
Kies hij bv een optie (dropdown) veld, dan wil ik alleen een veld zien waarin hij de opties kan invoeren.

Dus het selecteerd bv veld type "tekst" en het scherm sprint om naar alleen de velden bij die bij het veldtpe tekst horen.

Hoe vlieg ik dat aan? Zelf dacht ik al aan een jquery scriptje waarbij ik kijk naar een wijziging van het veldtype veld.

Graag jullie tips/adviezen.

Ik heb al een gekeken bij andere modules maar kom daar niet tot een goed resultaat.

TIA

Musicscore
deactivated010521

Re: Hulp met php/smarty

Post by deactivated010521 »

Een module als LISE werkt met 'custom fields'. De configuratie van field types komt in een fielddef database. De ingevulde waardes in fieldval.

Het mooie van LISE is dat deze 'custom fields' functionaliteit redelijk generiek is. Veldtypes zijn ook nog uit te breiden.

De interface is redelijk dummy proof je selecteert een veldtype en de interface past zich aan. Op de select/option zit een javascript functie die vanuit de back-end (afhankelijk van het veldtype) een template met al dan niet aangepaste velden toont.

Het schrijven van custom field functionaliteit is wegens het gebruik van verschillende veldtypes best veel werk.

Ik heb zelf LISE afgeleide helper classes geschreven die ik in een Utils module heb ondergebracht. Deze utils module verzorgt de presentatie (interface) maar ook het ophalen en opslaan van data (database laag). Hiermee kunnen custom fields redelijk eenvoudig aan andere modules toegevoegd worden.

Een beperking van LISE is dat custom fields alleen voor 'main items' werken. Door een fields_group veld te introduceren kan je custom fields ook aan bijvoorbeeld een 'category' of andere module tab-hangen.

Op dit moment ben ik bezig met een oplossing die gebasseerd is op JSON-schema. Om dynamische interfaces te bouwen (een sortable repeater field module) is het niet altijd handig om in zowel PHP als JavaScript userland bezig te zijn. Het user interface gedeelte wat voor een klassieke custom fields implementatie in PHP geschreven is heb ik hiermee verplaatst naar de front-end: https://json-schema.org/understanding-json-schema/
Post Reply

Return to “Tips en Trucs”