Modifier les champs pour les commentaires

Lau029Lau029 Member
Bonjour,

Je souhaiterais personnaliser et modifier certains champs du formulaire de la partie commentaires (ajouter + supprimer).

Pouvez-vous me dire dans quels fichiers (en plus du Template commentaires.php) je dois intervenir, afin que tout s'affiche correctement ?

Merci d'avance.

Réponses

  • La gestion des commentaires fait partie du core de PluXml, mais on va en terrain vaseux quand on commence à toucher au cœur du CMS !

    Le plus simple est de se débrouiller en modifiant commentaires.php, éventuellement en interceptant le contenu affiché pour le changer :
    [== PHP ==]
    <?php
      ob_start();
      $plxShow->comAuthor('link');
      $texte = ob_get_clean();
    
      // modification du contenu récupéré dans $texte
    
      echo $texte;
    ?>
    
  • Lau029Lau029 Member
    Bonjour,

    Merci !

    J'ai modifié commentaire.php, ainsi que comment.php dans la partie ADMIN, mais je ne vois pas à quel endroit je peux ajouter le code pour que le texte saisi du nouveau champ s'inscrive dans le fichier xml...

    Quelqu'un peut m'aider ???

    Merci d'avance...
  • Lau029Lau029 Member
    mai 2015 modifié
    Bonjour,

    J'ai finalement réussi à ajouter un champ et à faire que les données de ce champ soient inscrites dans le fichier xml des commentaires.

    Maintenant le souci que je rencontre est que je n'arrive pas à afficher les données de ce nouveau champ dans la partie admin "Edition d'un commentaire"... Le champ du formulaire reste vide, bien que les données aient bien été sauvegardées dans le fichier XML.

    Dans la partie admin (édition d'un commentaire - mise à jour), si j'entre une donnée dans le nouveau champ (qui ne s'affiche pas, bien que l'info est enregistrée dans le fichier XML), la nouvelle info est bien enregistrée dans le fichier XML, mais toujours rien dans le champ de mon formulaire...

    J'ai tout vérifié de nombreuses fois (principalement les noms des variables), mais je ne vois pas ce qui cloche...

    Toute aide serait la bienvenue... Merci !!!
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour

    Ajoute la récupération de tes champs dans:
    [list=*]
    [*]fichier: core/lib/class.plx.motor.php[/*]
    [*]méthode: parseCommentaire() [/*]
    [/list]

    Exemple:
    $com['mon_champs'] = trim($values[ $iTags['mon_champs'][0] ]['value']);
    

    Tu pourras ensuite accéder aux infos à partir du thème avec cette syntaxe
    $plxShow->plxMotor->plxRecord_coms->f('mon_champs');
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Lau029Lau029 Member
    Merci beaucoup Stéphane !

    Effectivement, j'avais oublié de rajouter la ligne...
    [== Indéfini ==]
    $com['mon_champs'] = trim($values[ $iTags['mon_champs'][0] ]['value']);
    

    Maintenant, je retrouve bien mes données dans le formulaire admin...
  • JoséJosé Member
    Bonsoir

    j essaie moi aussi de modifier les champs des commentaires sur la version 5-5.
    J'ai modifié les deux formulaires:
    theme/defaut/commentaires.php
    core/admin/comment.php

    Est ce que la modification suivante suffit
    fichier: core/lib/class.plx.motor.php
    méthode: parseCommentaire()
    [== PHP ==]
    $com['mon_champs'] = trim($values[ $iTags['mon_champs'][0] ]['value']);
    

    Cette seule modification me crée l'erreur
    Notice: Undefined index: in C:\Wamp\www\PluXml\core\lib\class.plx.motor.php on line 748

    Quelle autre modification dois-je faire?

    José
  • JoséJosé Member
    Bonjour

    je vous livre l'ensemble des modifications nécessaires pour ajouter un champ aux commentaires. Pour ceux que cela intéresse:

    - Bien évidemment ces modifications se font principalement dans le coeur du système , elles ne seront donc pas reprises lors de la prochaine version.
    - toute erreur dans la transcription , plante le systeme : alors prudence...

    Ici j'ai ajouté le champ "genre" ( Garçon ou Fille que je traite depuis par bouton-radio )
    [== PHP ==]
    Modification des champs commentaires
    
      le champ nouvellement créé doit aussi être créé et présent dans les fichiers Xml des commentaires déjà existants
      
    ..\themes\erasmus\commentaires.php
    
    			<div class="grid">
    				<div class="col sml-12 lrg-6">
    					<label for="id_name"><?php $plxShow->lang('NAME') ?> :</label>
    					<input id="id_name" name="name" type="text" size="20" value="<?php $plxShow->comGet('name',''); ?>" maxlength="30" />
    				</div>
    				<div class="col sml-12 lrg-6" style=" padding-top:0px;">
    					<label for="id_genre">Genre :</label>
    					<input id="id_genre" name="genre" type="text" size="20" value="<?php $plxShow->comGet('genre',''); ?>" />
    				</div>
    			</div>
    			
    ..\core\admin\comment.php	
    		
    		<div class="grid">
    			<div class="col sml-12">
    				<label for="id_author"><?php echo L_COMMENT_AUTHOR_FIELD ?> :</label>
    				<?php plxUtils::printInput('author',plxUtils::strCheck($plxAdmin->plxRecord_coms->f('author')),'text','40-255') ?>
    			</div>
    		</div>
    		<div class="grid">
    			<div class="col sml-12">
    				<label for="id_genre">Genre:</label>
    				<?php plxUtils::printInput('genre',plxUtils::strCheck($plxAdmin->plxRecord_coms->f('genre')),'text','40-255') ?>
    			</div>
    		</div>
    
    		
    ..\core\admin\comment_new.php	ligne  143
    
    		<li><?php echo L_COMMENT_AUTHOR_FIELD ?> : <strong><?php echo plxUtils::strCheck($plxAdmin->aUsers[$_SESSION['user']]['name']); ?></strong></li>
    				<div class="grid">
    			<div class="col sml-12">
    				<label for="id_genre">Genre :</label>
    				<?php plxUtils::printInput('genre',plxUtils::strCheck($plxAdmin->plxRecord_coms->f('')),'text','40-255') ?>
    			</div>
    		</div>		
    ..\core\lib\class.plx.show.php    ligne 1100
    
    	/**
    	 * Méthode qui affiche le genre du commentaire 
    	 *
    	 * @return	stdout
    	 * @scope	article
    	 * @author	Florent MONTHEL
    	 **/
    	public function comGenre() {
    
    		echo $this->plxMotor->plxRecord_coms->f('genre');
    	}
    	
    	
    ..\core\lib\class.plx.motor.php  
    
    	ligne 750
    
    		$com['ip'] = plxUtils::getValue($values[$iTags['ip'][0]]['value']);
    		$com['genre'] = plxUtils::getValue($values[ $iTags['genre'][0]]['value']);
    		
    	ligne 871
    
    		$comment['genre'] = plxUtils::strCheck(trim($content['genre']));
    	
    	ligne 924
    	
    		$xml .= "\t<genre><![CDATA[".plxUtils::cdataCheck($content['genre'])."]]></genre>\n";
    		
    
    ..\core\lib\class.plx.admin.php
    
    	ligne 892
    	
    			# On génère le contenu du commentaire
    		$comment=array();
    		$comment['author'] = plxUtils::strCheck($this->aUsers[$_SESSION['user']]['name']);
    		$comment['genre'] = $content['genre'];
    		
    	ligne 936
    	
    			# Formatage des données
    		$comment['author'] = plxUtils::strCheck(trim($content['author']));
    		$comment['genre'] = plxUtils::strCheck(trim($content['genre']));
    

    Cela fonctionne sur site testé en local

    José
Connectez-vous ou Inscrivez-vous pour répondre.