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!!
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 :
Code:
<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 :
Code:
<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":
Code:
<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
!
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:
Code:
$opentag = $field->parameters->get( 'opentag', '' ) ;
$closetag = $field->parameters->get( 'closetag', '' ) ;
Ensuite, dans le switch qui est juste après, il faut ajouter un "case":
Code:
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:
Code:
$field->{$prop} = implode($separatorf, $field->{$prop});
On ajoute, cette ligne de code:
Code:
$field->{$prop} = $opentag . $field->{$prop} . $closetag;
Voilou. Il reste plus cas tester si ça marche.
Normalement, oui
:
Nécessitez pas à poser des questions ou remarque.
Cordialement,
bastou.