Home
Les RENDERLETS
Les RENDERLETS
| Les RENDERLETS |
|
|
|
Ci dessous un exemple des possibilités de FORMIDABLE :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<formidable version="2.0.421">
xmlns:datahandler="http://www.ameos.com/formidable/2.0.421/datahandler"
xmlns:datasource="http://www.ameos.com/formidable/2.0.421/datasource"
xmlns:renderer="http://www.ameos.com/formidable/2.0.421/renderer"
xmlns:renderlet="http://www.ameos.com/formidable/2.0.421/renderlet"
xmlns:validator="http://www.ameos.com/formidable/2.0.421/validator"
xmlns:actionlet="http://www.ameos.com/formidable/2.0.421/actionlet">
<meta>
<name>fiche-essai</name>
<form formid="fiche"/>
<displaylabels>true</displaylabels>
<debug>false</debug>
<exportStyles>false</exportStyles>
<debugSendMail>unmail@ spammer.com</debugSendMail>
</meta>
<control>
<renderer:TEMPLATE>
<template>
<path>fileadmin/templates/formidable/FICHES/fiche-essai.html</path>
<subpart>###fiche###</subpart>
</template>
</renderer:TEMPLATE>
<datahandler:DB>
<tablename>tx_bdd_essais</tablename>
<keyname>uid</keyname>
<editEntry>
<userobj>
<php><![CDATA[/*<?php*/
$paramurl = t3lib_div::_GET();
return $paramurl['fiche'];
/*?>*/]]></php>
</userobj>
</editEntry>
<process>
<beforeEdition>
<userobj>
<php><![CDATA[
$aRowData = t3lib_div::_GET(); // récupère les paramètres de l'URL dans un tableau
$uid= $aRowData["fiche"]; // récupère l'uid de la fiche
$uid=($uid==true) ? $uid : 0;
$admin_condition = "0";
$groups = explode(",", $GLOBALS["TSFE"]->fe_user->user['usergroup']);
if (in_array("2", $groups) || in_array("3", $groups)) {
$admin_condition = "1";
}
$temp= $GLOBALS["TYPO3_DB"]->exec_SELECTgetRows(
"uid",
"tx_bdd_essais",
"deleted = 0 AND pid = 63 AND uid=".$uid ." AND ( ". $admin_condition ." OR cruser_id = " . $GLOBALS["TSFE"]->fe_user->user['uid'] .")",
"",
"");
if (sizeof($temp) == 0) { //pas habilité
header('Location: /index.php?id=30');
}
// changing tstamp
$aData = $this->getParams();
$data= $this->oDataHandler->getFormData();
//debugster($data);
switch ($aData["type_participants"]) {
case "1" : $aData['nb_volontaires_sains'] = 0; break;
case "2" : $aData['nb_volontaires_sains'] = $aData["nb_patient"]; $aData["nb_patient"] = 0; break;
}
$aData["tstamp"] = time();
if ($data["save-maj"] == 1) {
return $aData;
}
if ($data["save-and-send-submit"] == 1) {
$aData["hidden"] = "1";
} else {
$aData["hidden"] = "3";
}
return $aData;
]]></php>
</userobj>
</beforeEdition>
<afterEdition>
<userobj>
<php><![CDATA[
$paramurl = t3lib_div::_GET();
$data= $this->oDataHandler->getFormData();
if ($data["save-and-send-submit"] == 1) {
$this->oForm->sendMail(
"adresse@ destinaire.com",
"Bonjour, <BR/>Ceci est le contenu HTML du message.<BR/>L'équipe",
"TItre du message",
"from@ chez-moi.com",
"Truc Webmaster",
"reply_to@ chez_moi.com",
"Truc Reply service"
);
$this->oSandBox->message = "Les modifications ont bien été enregistrées dans le protocole. Elles viennent d\'être envoyées à l\'administrateur pour validation.";
} else {
if ($data["save-maj"] == 1) {
$this->oSandBox->message = 'le protocole a bien été mis à jour.';
} else {
$this->oSandBox->message = 'Les modifications ont bien été enregistrées dans le protocole. Elles sont sauvegardées en brouillon.';
}
}
$GLOBALS["TSFE"]->fe_user->setKey("ses", "confirmation_message", $this->oSandBox->message);
$GLOBALS["TSFE"]->fe_user->storeSessionData();
return $this->getParams();
]]></php>
</userobj>
</afterEdition>
</process>
</datahandler:DB>
<actionlets>
<actionlet:REDIRECT>
<pageid>53</pageid>
</actionlet:REDIRECT>
</actionlets>
<sandbox>
<userobj>
<php><![CDATA[
var $liste_regions = "init";
var $message = "";
]]></php>
</userobj>
</sandbox>
</control>
<!-- ****************** CONTENU FICHE ESSAI ************************** -->
<elements>
<renderlet:BOX name="confirm" >
<html>
<userobj>
<php>
<![CDATA[
$html = "";
if ($this->oSandBox->message != "") {
//$html = '<script type="text/javascript"> alert(\'' . $this->oSandBox->message . "');</script>";
//$this->oSandBox->message = "";
}
return $html;
]]></php>
</userobj>
</html>
</renderlet:BOX>
<renderlet:BOX name="debug" html=""/>
<renderlet:BOX defaultWrap="false" name="encapsulation" >
<childs>
<template path="fileadmin/templates/formidable/FICHES/fiche-essai.html" subpart="###encapsulation###" />
<renderlet:TEXT defaultWrap="false" name="uid" label="N°" readOnly="true" />
<renderlet:TEXTAREA defaultWrap="false" name="nom" label="Nom du protocole d'essai *" activeListable="true">
<validators>
<validator:STANDARD>
<required message="champ obligatoire" />
</validator:STANDARD>
</validators>
</renderlet:TEXTAREA>
<renderlet:BOX defaultWrap="false" name="cruser_id" label="Créateur" readOnly="true" >
<html>
<userobj>
<php>
<![CDATA[
$uid = $this->oDataHandler->getStoredData();
$uid = $uid['cruser_id'];
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTgetRows(
"username",
"fe_users",
"uid = " . $uid,
"",
"");
return $res[0]['username'];
]]>
</php>
</userobj>
</html>
</renderlet:BOX>
<renderlet:DATE defaultWrap="false" name="crdate" label="Créé le" readOnly="true" >
<data>
<datetime format="%d/%m/%y"/>
</data>
</renderlet:DATE>
<renderlet:DATE defaultWrap="false" name="tstamp" label="Modifié le" readOnly="true" >
<data>
<datetime format="%d/%m/%y"/>
</data>
</renderlet:DATE>
<renderlet:BOX defaultWrap="false" name="statut" renderonly="true" label="Statut" readOnly="true" >
<html>
<userobj>
<php><![CDATA[
$data= $this->oDataHandler->_getStoredData();
if ($data['deleted'] == 1)
return "Supprimé";
switch ($data['hidden']) {
case "0": return "Publié";
case "1": return "En cours de validation";
case "3": return "Brouillon";
case "4": return "Expiré";
default : return "Incorrect";
}
]]></php>
</userobj>
</html>
</renderlet:BOX>
<renderlet:LISTBOX label="Domaine de santé" defaultWrap="false" name="domaine_sante" activeListable="true">
<validators>
<validator:STANDARD when="after-init-datahandler">
<custom message="Une pathologie ou un domaine de santé est requis">
<userobj>
<php><![CDATA[
$data= $this->oDataHandler->getFormData();
if ( ($data["encapsulation"]["pathologie"] == "") &&
($data["encapsulation"]["domaine_sante"] == "")) {
return FALSE;
}
return TRUE;
]]></php>
</userobj>
</custom>
</validator:STANDARD>
</validators>
<onchange runat="ajax" params="domaine_sante_param">
<userobj>
<php><![CDATA[/*<?php*/
//$domaine = $this->oMajixEvent->getParam("domaine_sante_param");
$tab_values = split('"', $this->oMajixEvent->aRequest['value']);
$domaine = $tab_values[3];
$this->aORenderlets["encapsulation"]->aChilds["domaine_sante"]->setValue($tab_values[3]);
$aItems = $this->aORenderlets["encapsulation"]->aChilds["pathologie"]->_getItems();
return array($this->aORenderlets["encapsulation"]->aChilds["pathologie"]->majixReplaceData($aItems));
/*?>*/]]></php>
</userobj>
</onchange>
<data>
<items>
<item caption="Choisissez un domaine" value="" />
</items>
<userobj>
<php><![CDATA[
return $GLOBALS["TYPO3_DB"]->exec_SELECTgetRows(
"uid as value, category as caption",
"sys_dmail_category",
"pid=108 AND hidden=0 AND deleted=0",
"",
"caption ASC"
);
]]></php>
</userobj>
</data>
</renderlet:LISTBOX>
<renderlet:LISTBOX defaultWrap="false" name="pathologie" label="Pathologie" activeListable="true">
<validators>
<validator:STANDARD when="after-init-datahandler">
<custom message="Une pathologie ou un domaine de santé est requis">
<userobj>
<php><![CDATA[
$data= $this->oDataHandler->getFormData();
if ( ($data["encapsulation"]["pathologie"] == "") &&
($data["encapsulation"]["domaine_sante"] == "")) {
return FALSE;
}
return TRUE;
]]></php>
</userobj>
</custom>
</validator:STANDARD>
</validators>
<data>
<items>
<item caption="Choisissez une pathologie" value="" />
</items>
<userobj>
<php><![CDATA[/*<?php*/
// $domaine = " AND id_cat = " . $this->aORenderlets["encapsulation"]->aChilds["domaine_sante"]->getValue();
return $GLOBALS["TYPO3_DB"]->exec_SELECTgetRows(
"uid as value, pathologie as caption",
"tx_bdd_pathologies",
"pid=63 AND hidden=0 AND deleted=0 ",// . $domaine,
"",
"caption ASC"
);
/*?>*/]]></php>
</userobj>
</data>
</renderlet:LISTBOX>
<renderlet:RADIOBUTTON defaultWrap="false" name="type_pathologie" label="Type" activeListable="true" >
<data>
<items>
<item caption="Gériatrie" value="1" />
<item caption="Pédiatrie" value="2" />
<item caption="Aucun des deux" value="3" />
</items>
</data>
</renderlet:RADIOBUTTON>
<renderlet:CHECKBOX defaultWrap="false" name="phase" label="Phase *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="La phase est requise." />
</validator:STANDARD>
</validators>
<data>
<items>
<item caption="1" value="1" />
<item caption="2" value="2" />
<item caption="3" value="3" />
<item caption="4" value="4" />
</items>
</data>
</renderlet:CHECKBOX>
<renderlet:TEXT defaultWrap="false" name="centre_coordonateur" label="Centre coordonateur *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Centre coordonateur requis." />
</validator:STANDARD>
</validators>
</renderlet:TEXT>
<renderlet:TEXT defaultWrap="false" name="promu_par" label="Organisme promoteur *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Organisme promoteur requis." />
</validator:STANDARD>
</validators>
</renderlet:TEXT>
<renderlet:CHECKSINGLE defaultWrap="false" name="affiche_organisme" label="Cochez cette case si vous souhaitez que ce champ soit affiché en Front Office." activeListable="true" />
<renderlet:TEXT defaultWrap="false" name="reference_affsaps" label="Référence AFSSAPS (ou EUDRACT) *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Référence requise." />
</validator:STANDARD>
</validators>
</renderlet:TEXT>
<renderlet:TEXT defaultWrap="false" name="reference_cpp" label="Référence CPP *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Référence CPP requise." />
</validator:STANDARD>
</validators>
</renderlet:TEXT>
<renderlet:TEXTAREA defaultWrap="false" name="objectif_rationnel" label="Objectif de l'étude *" activeListable="true">
<validators>
<validator:STANDARD>
<required message="Objectif rationel requis." />
</validator:STANDARD>
</validators>
</renderlet:TEXTAREA>
<renderlet:DATE defaultWrap="false" name="date_debut" label="Date de début de l'essai *" activeListable="true" >
<data>
<datetime format="%d/%m/%y" locale="fr_FR" />
</data>
<validators>
<validator:STANDARD>
<required message="Une date de début requise." />
</validator:STANDARD>
</validators>
</renderlet:DATE>
<renderlet:DATE defaultWrap="false" name="date_cloture_recrutement" label="Date de clôture prévisionnelle du recrutement" activeListable="true" >
<data>
<datetime format="%d/%m/%y" locale="fr_FR" />
</data>
</renderlet:DATE>
<renderlet:SELECTOR defaultWrap="false" name="region" style="height : 200px" class="selector" label="Regions *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Sélectionnez au moins une région pour obtenir la liste des département correspondant. Cette informations est requise." />
</validator:STANDARD>
</validators>
<available>
<data>
<userobj>
<php><![CDATA[
$result= $GLOBALS["TYPO3_DB"]->exec_SELECTgetRows(
"uid as value, region as caption",
"tx_bdd_regions",
"pid = 63", //AND tx_bdd_departements.id_region = " . $numregion ,
"",
"region ASC");
return $result;
]]></php>
</userobj>
</data>
<onChange runat="ajax" params="encapsulation.region" when="before-init-renderlets" >
<userobj>
<php><![CDATA[
$aParams = func_get_arg(1);
$sText = implode(',', array_merge($aParams["encapsulation.region"]["selected"], $aParams["encapsulation.region"]["available_active"] ));
$this->oSandBox->liste_regions = $sText;
$aItems = $this->aORenderlets["encapsulation"]->aChilds["departement"]->_getItems();
return $this->aORenderlets["encapsulation"]->aChilds["departement"]->majixReplaceData($aItems);
//return array($this->aORenderlets["encapsulation"]->aChilds["departement.available"]->majixRepaint());
]]></php>
</userobj>
</onChange>
</available>
<buttonRemove type="IMAGE" label="" path="EXT:ameos_formidable/api/base/rdt_selector/res/img/remove.gif" >
<onClick runat="ajax" params="encapsulation.region" when="before-init-renderlets" >
<userobj>
<php><![CDATA[
$aParams = func_get_arg(1);
//return $this->majixDebug($aParams["encapsulation.region"]);
$sText = implode(',', $aParams["encapsulation.region"]["selected"]);
$this->oSandBox->liste_regions = $sText;
$aItems = $this->aORenderlets["encapsulation"]->aChilds["departement"]->_getItems();
return $this->aORenderlets["encapsulation"]->aChilds["departement"]->majixReplaceData($aItems);
]]></php>
</userobj>
</onClick>
</buttonRemove>
</renderlet:SELECTOR>
<renderlet:LISTBOX multiple="true" defaultWrap="false" name="departement" class="selector" label="CTRL + clic pour en sélectionner plusieurs" style="float:left;" activeListable="true" >
<data>
<userobj>
<php><![CDATA[
//$aRow = $this->oDataHandler->getStoredData();
//$regions = $aRow["region"];
if ($this->oSandBox->liste_regions == "init" ) {
$aRow = $this->oDataHandler->getStoredData();
$regions = $aRow["region"];
} else {
$regions = $this->oSandBox->liste_regions;
}
$regions = explode(",", $regions);
$result = array();
//debugster($regions);
foreach($regions as $une_region) {
$res = $GLOBALS["TYPO3_DB"]->exec_SELECTgetRows(
"uid as value, CONCAT(' ', numero, ' - ',departement ) as caption, departement",
"tx_bdd_departements",
"id_region = " . $une_region ,
"",
"");
foreach ($res as $value) {
$result[$value['departement']] = $value;
}
}
sort($result);
return $result;
]]></php>
</userobj>
</data>
</renderlet:LISTBOX>
<renderlet:TEXTAREA defaultWrap="false" name="villes" label="Villes" activeListable="true" />
<renderlet:TEXTAREA defaultWrap="false" name="conditions_detailllees" label="Description des conditions détaillées de l'essai pour le patient *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Conditions détaillées requises." />
</validator:STANDARD>
</validators>
</renderlet:TEXTAREA>
<renderlet:TEXTAREA defaultWrap="false" name="inclusion_exlusion" label="Critères d'inclusion et d'exclusion *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Critères d'inclusion et d'exclusion requis." />
</validator:STANDARD>
</validators>
</renderlet:TEXTAREA>
<renderlet:RADIOBUTTON defaultWrap="false" name="type_participants" submit="false" label="" >
<data><items>
<item caption="Patients" value="1"/>
<item caption="Volontaires sains" value="2"/>
</items></data>
<validators>
<validator:STANDARD>
<required message="Veuillez choisir un type de participants." />
</validator:STANDARD>
</validators>
</renderlet:RADIOBUTTON>
<renderlet:TEXT defaultWrap="false" name="nb_patient" label="Nombre de participants *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Nombre de participants requis." />
</validator:STANDARD>
</validators>
</renderlet:TEXT>
<!--renderlet:TEXT defaultWrap="false" name="nb_volontaires_sains" label="Nombre de volontaires sains" activeListable="true" style="display : none;" /-->
<renderlet:TEXT defaultWrap="false" name="nb_patients_en_france" label="France *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Nombre de patients en France requis." />
</validator:STANDARD>
<validator:NUM>
<isnum>
<message>Veuillez entrer un nombre.</message>
</isnum>
</validator:NUM>
<validator:STANDARD when="after-init-datahandler">
<custom message="Le nombre de patients en France + le nombre de patients à l'étranger doit être égal au nombre de participants.">
<userobj>
<php><![CDATA[
$aData = $this->getUserObjParams();
if(intval($this->rdt('nb_patient')->getValue()) != (intval($this->rdt('nb_patients_en_france')->getValue()) + intval($this->rdt('nb_patients_monde')->getValue()))) {
return FALSE;
}
return TRUE;
]]></php>
</userobj>
</custom>
</validator:STANDARD>
</validators>
</renderlet:TEXT>
<renderlet:TEXT defaultWrap="false" name="nb_patients_monde" label="Reste du monde" activeListable="true" >
<validators>
<validator:NUM>
<isnum>
<message>Veuillez entrer un nombre.</message>
</isnum>
</validator:NUM>
<validator:STANDARD when="after-init-datahandler">
<custom message="Le nombre de patients en France + le nombre de patients à l'étranger doit être égal au nombre de participants.">
<userobj>
<php><![CDATA[
$aData = $this->getUserObjParams();
if(intval($this->rdt('nb_patient')->getValue()) != (intval($this->rdt('nb_patients_en_france')->getValue()) + intval($this->rdt('nb_patients_monde')->getValue()))) {
return FALSE;
}
return TRUE;
]]></php>
</userobj>
</custom>
</validator:STANDARD>
</validators>
</renderlet:TEXT>
<renderlet:TEXT defaultWrap="false" name="mail_contact" label="Email du contact *" activeListable="true" >
<validators>
<validator:STANDARD>
<email message="Veuillez entrer un email valide." />
<required message="Un mail de contact est requis." />
</validator:STANDARD>
</validators>
</renderlet:TEXT>
<renderlet:CHECKSINGLE defaultWrap="false" name="affiche_mail" label="Affichage du mail en front office" class="radio" activeListable="true" />
<renderlet:RADIOBUTTON defaultWrap="false" name="mode_contact" class="radio" label="Mode de contact *" activeListable="true" >
<validators>
<validator:STANDARD>
<required message="Veuillez choisir un mode de contact." />
</validator:STANDARD>
</validators>
<data defaultvalue ="2" >
<items>
<item caption="Par téléphone (visible en Front Office)" value="1" />
<item caption="Par formulaire (envoyé à l'adresse du contact)" value="2" />
</items>
</data>
</renderlet:RADIOBUTTON>
<renderlet:TEXT defaultWrap="false" name="prenom_contact" label="Personne à contacter" activeListable="true" >
</renderlet:TEXT>
<renderlet:TEXT defaultWrap="false" name="tel_contact" label="Téléphone du contact" activeListable="true" >
<validators>
<validator:NUM>
<isnum>
<message>Veuillez entrer un numéro valide.</message>
</isnum>
</validator:NUM>
</validators>
</renderlet:TEXT>
</childs>
</renderlet:BOX>
<renderlet:SUBMIT defaultWrap="false" name="save-submit" label="Enregistrer comme brouillon (hors ligne)" class="btn-edit"/>
<renderlet:SUBMIT defaultWrap="false" name="save-and-send-submit" label="Enregistrer et demander la validation de l'essai" class="btn-edit"/>
<renderlet:SUBMIT defaultWrap="false" name="save-maj" label="Mettre à jour" class="btn-edit"/>
<renderlet:BUTTON name="button_del" label="Supprimer" class="submit">
<onclick params="uid" runat="server" confirm="Voulez-vous supprimer ce protocole ?" when="after-init-renderlets">
<userobj>
<php><![CDATA[
$paramurl = t3lib_div::_GET(); // récupère les paramètres de l'URL dans un tableau
$idpageretour = $paramurl[pageretour];
$GLOBALS["TYPO3_DB"]->exec_UPDATEquery( "tx_bdd_essais", "uid='" . $paramurl['fiche'] . "'", array('deleted' => 1));
return header('Location: /index.php?id=' . $paramurl['pageretour'] );
]]></php>
</userobj>
</onclick>
<process>
<userobj>
<php><![CDATA[
$groups = explode(",", $GLOBALS["TSFE"]->fe_user->user['usergroup']);
if (in_array("2", $groups) || in_array("3", $groups)) {
return true;
}
return false;
]]></php>
</userobj>
</process>
</renderlet:BUTTON>
<renderlet:LINK name ="annuler" label="Retour à la liste" class="btn">
<url>
<userobj>
<php><![CDATA[
$paramurl = t3lib_div::_GET(); // récupère les paramètres de l'URL dans un tableau
$idpageretour = $paramurl[pageretour];
return "index.php?id=".$idpageretour;
]]></php>
</userobj>
</url>
</renderlet:LINK>
</elements>
</formidable>
|
| Mise à jour le Lundi, 08 Mars 2010 04:04 |

