J3.x

J3.x:Creating a simple module - Formuliervelden toevoegen

From Joomla! Documentation

< J3.x:Creating a simple module
This page is a translated version of the page J3.x:Creating a simple module/Adding Form Fields and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎Bahasa Indonesia • ‎Nederlands • ‎русский
Joomla! 
3.x
Handleiding
Een eenvoudige module maken

Dit is een serie artikelen over het ontwikkelen van een module voor Joomla! versie Joomla 3.x. U kunt navigeren binnen de artikelen in deze serie met behulp van het navigatie drop-down menu.

Begin met de Introductie en navigeer door de artikelen van de serie door middel van de navigatieknop onderaan of het vak rechts (Artikelen in deze serie).



Formuliervelden creëren een grote mate van maatwerk in Joomla. Ze zijn de enige manier waarop gebruikers de module aan de eisen van hun site kunnen aanpassen.

Formuliervelden toevoegen aan de module

In dit geval gaan we ons eerdere voorbeeld met de database uitbreiden, om een lijst met talen aan de gebruiker te presenteren waar hij uit kan kiezen. Om dit mogelijk te maken gebruiken we het het SQL formulierveld type (de details staan op de SQL Form Field documentatie pagina).

Allereerst voegen we een formulierveld toe aan ons xml-bestand. Weet u nog dat we in config tags hebben toegevoegd? In die tags voegen we de volgende code toe:

<fields name="params">
    <fieldset name="basic">
        <field
               name="lang"
               type="sql"
               default="1"
               label="Select a language"
               query="SELECT id AS value, lang FROM #__helloworld" />
    </fieldset>
</fields>

Hiermee selecteert u de talen uit de database tabel en geeft de gebruiker de mogelijkheid er een te kiezen via een selectielijst.

Als u de module zou installeren zoals hij nu is en er in de Joomla backend naar kijkt, zou u zien dat er een dropdown verschijnt (hoewel een optie kiezen op dit moment nog geen effect heeft op de module).

Let op: De formulierveld parameters worden voor elke module opgeslagen als json-encoded string in de #__modules tabel, onder het params veld.

Nu gaan we het formulierveld iets laten doen!

Laten we naar de mod_helloworld.php gaan en de parameter ophalen (let op: u kunt de parameter niet ophalen in de helper) en geef het daarna door aan de helper functie.

/**
  * This retrieves the lang parameter we stored earlier. Note the second part
  * which states to use the default value of 1 if the parameter cannot be
  * retrieved for some reason
**/
$language = $params->get('lang', '1');
$hello    = modHelloWorldHelper::getHello( $language );

Bewerk nu onze database query in het helper bestand om de parameter keuze op te halen.

// Obtain a database connection
$db = JFactory::getDbo();
// Retrieve the shout - note we are now retrieving the id not the lang field.
$query = $db->getQuery(true)
            ->select($db->quoteName('hello'))
            ->from($db->quoteName('#__helloworld'))
            ->where('id = '. $db->Quote($params));
// Prepare the query
$db->setQuery($query);
// Load the row.
$result = $db->loadResult();
// Return the Hello
return $result;

Conclusie

Formuliervelden bieden de gebruiker een makkelijke manier om de module aan te passen aan de site-instellingen. Dit geeft de mogelijkheid het bereik van de module uit te breiden tot veel talen en toepassingen.