Maandagavond 11 maart. Een week later in verband met carnaval. Onder het genot van een kopje koffie maken we ons klaar voor een avondje Joomla!. Iets na 19:30 nam Hans Kuijpers eenieder mee in de wondere wereld van RSForm Pro. Wederom waren er slides bij betrokken.

RSForm!Pro

De slides behorende bij de presentatie RSForm!Pro, meer dan een contactformulier - JUG073 maart 2019.

Dokter Joomla

vraag: hoe kan ik RSForm Pro formulier instellen, zodat er niet meer dan x aantal stoelen gereserveerd kunnen worden
antwoord: via RSForm Pro > Formulier > Eigenschappen > Scripts > PHP Scripts > "Script dat opgeroepen wordt wanneer het formulier zichtbaar is".
Hieronder de oplossing zoals onze vaste bezoeker Ernst Sangen hem gemaakt heeft:

<?php
$db = JFactory::getDbo();
$db->setQuery(true);
$db->setQuery("SELECT sum(`fieldvalue`) FROM #__rsform_submission_values WHERE FieldName = 'aantal leden' and FormId='" . (int) $formId . "'");
$aantalLeden = $db->loadResult();
$db->setQuery(true);
$db->setQuery("SELECT sum(`fieldvalue`) FROM #__rsform_submission_values WHERE FieldName = 'aantal niet leden' and FormId='" . (int) $formId . "'");
$aantalNietLeden = $db->loadResult();
$aantalTotaal    = $aantalLeden + $aantalNietLeden;

if ($aantalTotaal > 240)
{
	$formLayout = '<p>Max aantal inschrijvingen</p>';
}
else
{
	$formLayout .= "Op dit moment hebben zich " . $aantalLeden . " leden en " . $aantalNietLeden . " niet leden, dus in totaal " . $aantalTotaal . ", zich ingeschreven. ";
}
?>

vraag: hoe kan RSForm Pro formulier instellen, zodat een ingelogde user niet zijn/haar eigen naam meer hoeft in te vullen in de formulieren?
antwoord: wordt besproken in example 1 van de documentatie van RSForm.

vraag: hoe kan ik RSForm Pro formulier instellen dat het pas verschijnt na een bepaalde datum/tijd
antwoord: via RSForm Pro > Formulier > Eigenschappen > Scripts > PHP Scripts > "Script dat opgeroepen wordt wanneer het formulier zichtbaar is".

<?php 
use Joomla\CMS\Factory;

$available = 999;
$debug     = false;

$time          = time();
// let op... de servertijd ligt twee uur in het verleden. 
$date          = '21-09-2018 09:11:00';
$formOnlineTxt = $date;

//echo date('l j F H:i', $time);
//echo date('l j F H:i', strtotime($date));

if ($debug)
{
	$msg = 'Op dit moment wordt het formulier nog getest. Inschrijvingen tellen niet mee. ';
	$type = 'info';
	Factory::getApplication()->enqueueMessage($msg, $type);
}

if (strtotime($date) > $time)
{
	$msg = 'Nog even geduld. Het inschrijfformulier komt pas na ' . $formOnlineTxt . ' online';
	//$msg = 'Nog even geduld. Het inschrijfformulier is nog niet klaar';
	$type = 'warning';
	Factory::getApplication()->enqueueMessage($msg, $type);

	$formLayout = '';
}
?>

vraag: hoe toon ik de RSForm Pro submissions op de website?
antwoord: RSJoomla heeft een module gemaakt waarmee je submissions van een formulier op een bepaalde modulepositie kunt tonen. https://www.rsjoomla.com/support/documentation/rsform-pro/plugins-and-modules/modrsformlist-display-submissions-in-a-module-position.html Let op de privacy gegevens.

vraag: kan ik een RSForm Pro formulier ook in een artikel tonen?
antwoord: ja, middels de systeem plugin RSForm kun je een formulier in een artikel opnemen. De code hiervoor is {rsform #}. Je kunt een RSForm Pro formulier middels een module ook opnemen in een modulepositie.
idee: een editor plugin om eenvoudig een formulier te kunnen selecteren zou handig zijn.

vraag: kan ik in RSForm Pro formulier veld voorkomen dat men de inhoud van een veld wijzigt?
antwoord: bewerk het betreffende veld en plaats bij overige attributen de waarde readonly. Het veld zal nu niet meer te wijzigen zijn.

Handige links

  • niet aan bod gekomen

De volgende keer

Dinsdag 2 april is de volgende bijeenkomst van Joomla Gebruikersgroep 's-Hertogenbosch. Presentatie over Contentbeheer door Anja de Crom.

Reageer

1000 Resterende tekens