Utiliser "Ma propre balise" avec le champ file

8 years 9 months ago #1402 by bastou
Bonjour,
une petite astuce pour pouvoir utiliser sa propre balise avec le champ file.
En effet, il n'est pas possible de le faire à l'heure actuelle :( , et pour des contraintes sur mon site (affichage des fichier dans une liste), il m'a fallu modifier du code dans le plugin de FLEXIcontent.
Allez, c'est partie!! :P

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

Ce fichier permet d'afficher les paramètres spécifiques du champ file dans le backend.
C'est ici que nous allons ajouter la possibilité de choisir ça propre balise.
Pour cela, il faut repérer le paramètre "separatorf" à la ligne 23 et ajouter une option:
Avant :
<param name="separatorf" type="list" default="1" label="FLEXI_FIELD_SEPARATOR_FRONTEND" description="FLEXI_FIELD_SEPARATOR_FRONTEND_DESC">
			<option value="0">FLEXI_SPACE</option>
			<option value="1">FLEXI_LINE_BREAK</option>
			<option value="2">FLEXI_PIPE</option>
			<option value="3">FLEXI_COMMA</option>
		</param>
Après :
<param name="separatorf" type="list" default="1" label="FLEXI_FIELD_SEPARATOR_FRONTEND" description="FLEXI_FIELD_SEPARATOR_FRONTEND_DESC">
			<option value="0">FLEXI_SPACE</option>
			<option value="1">FLEXI_LINE_BREAK</option>
			<option value="2">FLEXI_PIPE</option>
			<option value="3">FLEXI_COMMA</option>
			<option value="4">FLEXI_FIELD_TAG_CUSTOM</option>
		</param>
Il nous faut ensuite ajouter les paramètres de "Balise ouvrante" et "Balise fermante". Ca se passe juste après le paramètre "separatorf":
<param name="opentag" type="text" default="" label="FLEXI_FIELD_TAG_OPEN" description="FLEXI_FIELD_TAG_OPEN_DESC" />
		<param name="closetag" type="text" default="" label="FLEXI_FIELD_TAG_CLOSE" description="FLEXI_FIELD_TAG_CLOSE_DESC" />
C'est fini pour ce fichier :D !

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

Dans ce fichier, nous allons modifier la fonction onDisplayFieldValue.
En gros, cette fonction récupère les informations des fichiers dans la base de données et créer la vue pour l'affichage des fichiers dans le frontend.

Il nous faut en premier lieu récupérer les deux paramètres de balise ouvrante et fermante. Pour cela, il faut ajouter les lignes de code suivante après la déclaration des autres paramètres:
$opentag			= $field->parameters->get( 'opentag', '' ) ;
		$closetag			= $field->parameters->get( 'closetag', '' ) ;
Ensuite, dans le switch qui est juste après, il faut ajouter un "case":
case 4:
			$separatorf = $closetag . $opentag;
			break;
Maintenant, il nous faut aller tout en bas de la fonction, dans le "else", juste après cette ligne de cote:
$field->{$prop} = implode($separatorf, $field->{$prop});
On ajoute, cette ligne de code:
$field->{$prop} = $opentag . $field->{$prop} . $closetag;
Voilou. Il reste plus cas tester si ça marche.
Normalement, oui :P :

File Attachment:


Nécessitez pas à poser des questions ou remarque.

Cordialement,
bastou.

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

8 years 9 months ago #1404 by micker
cool merci !
clair et très bien documenté.

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 #1421 by kim
Yep, super sympa!
J'en ai pas besoin à l'heure actuelle, mais au moins, j'ai l'astuce :)
Merci...

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

8 years 9 months ago #1423 by vistamedia
Merci beaucoup pour ce partage, mais une toute petite question me vient à l'esprit...
Ou mets-tu les balises <ul></ul> ? ;-)
Arfff, je sais que je suis chiant :)
Manu.

FLEXIcontent lead developer.
http://www.vistamedia.fr web agency and custom development.
http://www.joomla.fr co-administrator.
Please no PM for support request, use the forum for that!!!

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

8 years 9 months ago #1431 by bastou
Hihi,
merci de vos compliments.

Manu:
Mes balises ul sont dans le template :D :
<?php if (isset($this->fields['fichiers'])) : ?>
							<ul>
								<?php echo $this->fields['fichiers']->display; ?>
							</ul>
						<?php endif; ?>

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

8 years 9 months ago #1436 by vistamedia
Arrrf tu triches là et tu ne dis pas tout ;)
Je vais de toute façon intégrer cette possibilité dans la prochaine release pour tous les champs à valeurs multiples.
Manu.

FLEXIcontent lead developer.
http://www.vistamedia.fr web agency and custom development.
http://www.joomla.fr co-administrator.
Please no PM for support request, use the forum for that!!!

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

Moderators: vistamediajoomlacornerggppdk
© 2018 Flexicontent. All Rights Reserved.