Encore une astuce sur les champs !

8 years 9 months ago - 8 years 9 months ago #1437 by bastou
Oyé oyé brave gens!

J'ai encore une astuce qui nécessite la modification d'un plugin dans FLEXIcontent.
Cette astuce permet de mettre un champ texte comme séparateur entre un champ de type texte en mode multi valeurs :roll: ...
Je sais, pas facile à comprendre ce qu'il dit le garçon là :lol: :lol: !

Ok, j'illustre alors!
Imaginons que nous voulons afficher des numéros de séries et qu'entre chaque numéro de série nous voulons qui est le champ texte 'et' qui s'affiche:

A noter que les espaces entre les champs et le séparateur sont mis automatiquement par le plugin.

Mais comment faire ça?? Nous allons voir ça tout de suite.

I - Modification du fichier plugins/flexicontent_fields/text.xml :

comme pour l'astuce précédente, il faut ajouter une option au paramètre identifiable par le nom "separatorf". Nous ajoutons donc cette ligne de commande:
<option value="5">FLEXI_FIELD_TAG_STRING</option>
J'ai ensuite choisi de créer un autre champ (input) pour indiquer le séparateur. Pour cela, il faut ajouter un paramètre comme ceci:
<param name="texttag" type="text" default="" label="FLEXI_FIELD_TAG_TEXT" description="FLEXI_FIELD_TAG_TEXT_DESC" />
que j'ai mis juste après le paramètre "closetag".
Passons au fichier suivant :) .

II - Modificaton du fichier plugins/flexicontent_fields/text.php :

Alors, dans ce fichier c'est comme pour l'autre astuce, tous ce passe dans la fonction onDisplayFieldValue.
Il nous faut d'abord récupérer le séparateur texte avec cette ligne de code à mettre après la récupération des autres paramètres:
$texttag			= $field->parameters->get( 'texttag', '' ) ;

On va ensuite ajouter un "case" dans notre fameux "switch":
case 5:
			$separatorf = '&nbsp;'.$texttag.'&nbsp;';
			break;

II - Modificaton des fichiers administrator/language/en-GB/en-GB.com_flexicontent.ini et administrator/language/fr-FR/fr-FR.com_flexicontent.ini:

Il faut rajouter dans ces deux fichiers les variables qui vont afficher les informations sur les champs et les tooltips.

Pour le fichier anglais:
FLEXI_FIELD_TAG_TEXT=Separating text
FLEXI_FIELD_TAG_TEXT_DESC=If you have choosen 'field text' in the above dropdown, please enter here the text which will separate the fields.
FLEXI_FIELD_TAG_STRING=Field text
Pour la version française:
FLEXI_FIELD_TAG_TEXT=Texte séparateur
FLEXI_FIELD_TAG_TEXT_DESC=Si vous avez choisi 'Champ texte' dans la liste déroulante ci dessus, spécifiez le texte qui séparera les champs.
FLEXI_FIELD_TAG_STRING=Champ texte

Et voilou! Ce n'est pas plus compliquer que ça :D !
Voici le résultat:
File Attachment:


Comme dab, j'atends vos remarques.

Cordialement,
bastou.

Please Log in or Create an account to join the conversation.

8 years 9 months ago #1438 by bastou
D'ailleurs,
j'ai une petite question pour Manu :P .

Comme j'ai rajouté un paramètre, je me suis dit qu'il fallait que je recherche la fonction qui fait la sauvegarde dans la base de données quand on sauvegarde le champ en backend afin de rajouter la valeur du champ dans le requête.
Avant, j'ai testé pour voir et par magie sa marche sans modif :o !
Donc je comprends bien que ton code vois tout seul qui a un nouveau paramètre et c'est super mais j'aurais voulu savoir comment tu a fait :D .

Merci ! pour ton travail !

Please Log in or Create an account to join the conversation.

8 years 9 months ago #1459 by micker
cool merci beaucoup pour l'explication très claire !
A regarder si manu ne vas l'intégrer dans la prochaine relase aussi ! 8-)
a+

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

8 years 9 months ago #1462 by yopyop001
Salut Bastou,

Merci pour ces petites astuces, c'est bien intéressant.

Pour le stockage des paramètres, tu peux retrouver les informations du xml dans le champs attribs de la table #__flexicontent_fields (comme les paramètres de menu, de module,... dans les champs params pour les tables #__menu, #__module,...). Dans ton cas, tu auras separatorf='5' dans le champs 'attribs' de ton champs.

C'est vrai que ça a un coté magique, en tout cas, ça fait plaisir d'avoir un composant bien codé.

Bonne journée

Please Log in or Create an account to join the conversation.

Moderators: vistamediajoomlacornerggppdk
© 2018 Flexicontent. All Rights Reserved.