Documentation RBS Change : [Résolu] Utilisation du Module Forum

  • 50944.1

    31/01/2012 09:50


    guiom
    Rang : Expert
    Bonjour,

    Je ne parviens pas à me servir des titres dans le forum. J'ai créer 3 titres et je ne sais pas comment les affecter aux membres.

    Merci pour votre aide.
  • 50944.2

    31/01/2012 14:52


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    Bonjour,

    Pour ajouter un titre à un membre cela se fait depuis le backoffice. Pour ce faire :
    - on créé d'abord le titre
    - on recherche ensuite via le moteur de recherche backoffice (en haut à droite) le membre du forum auquel on souhaite ajouter le titre
    - on édite le membre
    - a la fin de la section "Propriétés principales" on trouve le champ "Titre", il suffit alors de cocher les titre que l'on souhaite affecter au membre

    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
  • 50944.3 en réponse à 50944.2 écrit par Jean-Michel

    31/01/2012 15:09


    guiom
    Rang : Expert
    Bonjour,

    Merci, cela fonctionne parfaitement. Par contre, je m'attendais à avoir un onglet forum dans les propriétés de l'utilisateur permettant justement de modifier un "membre". Le passage par le moteur de recherche ne me semble pas être des plus intuitif.

    Dans la même optique, je ne trouve pas le moyen de permettre aux membres de changer leur avatar. Y-a-t-il un bloque particulier ? un tag ?

    Merci
  • 50944.4 en réponse à 50944.3 écrit par guiom

    31/01/2012 16:24


    Jean-Michel
    Titre : Community Manager
    Rang : Expert
    Pour affecter les titres aux utilisateurs une simplification sera introduite en v4, il sera possible de gérer les titres à partir de l'utilisateur via un onglet "Forums".

    Pour changer l'avatar, les membres du forum peuvent passer par Gravatar. Si cela n'est pas suffisant, il faut développer la possibilité du choix de l'avatar définit soit par Gravatar soit par une image uploadée par l'utilisateur. On pense à ajouter ce comportement aux forums, mais pour l'heure nous n'avons pas de version à communiquer sur ce sujet.

    Pour une meilleure réponse, pensez à indiquer la version sur laquelle vous rencontrez des difficultés, ainsi que son type (CMS ou eCommerce core).
    Pour tout problème d'installation indiquez le nom de l'hébergeur et s'il s'agit d'un serveur mutualisé ou dédié.
  • 50944.5

    31/01/2012 19:30


    Darathor
    Rang : Membre
    Personnellement j'ai implémenté la fonctionnalité d'upload d'avatar depuis le site en spécifique sur le mien en alternative à gravatar. Ce n'est pas très compliqué :

    - injecter le membre du forum pour ajouter un champ avatar :
    <add name="avatar" type="modules_media/media" preserve-old-value="true" />

    - surcharger le template d'édition pour y ajouter le champ (Forums-Block-EditMemberProfile-Input.all.all.html) :
    			<li>
    				<label change:fieldlabel="name avatar"></label>
    				<input change:uploadfield="name avatar" labeled="false" accept="png,jpg,jpeg" />
    				<p class="help-text">${trans:m.forums.document.member.avatar-help,ucf}</p>
    			</li>

    - surcharger la méthode getGravtarUrl du membre pour en tenir compte :
    	/**
    	 * @param Integer $size
    	 * @param String $defaultImageUrl
    	 * @param String $rating
    	 * @return String
    	 */
    	public function getGravatarUrl($size = '32', $defaultImageUrl = '', $rating = 'g')
    	{
    		$avatar = $this->getAvatar();
    		if ($avatar === null)
    		{
    			return parent::getGravatarUrl($size, $defaultImageUrl, $rating);
    		}
    		
    		$format = array(
    			'max-width' => $size . 'px',
      			'max-height' => $size . 'px'
    		);
    		return LinkHelper::getDocumentUrl($avatar, null, $format);
    	}

    - enfin dans le service du membre j'ai surchargé les méthodes preSave et postSave pour bien gérer le champ (en convertissant le tmpfile en média et supprimant l'ancien en cas de changement) :
    	/**
    	 * @param forumsextended_persistentdocument_forummember $document
    	 * @param Integer $parentNodeId Parent node ID where to save the document (optionnal => can be null !).
    	 * @return void
    	 */
    	protected function preSave($document, $parentNodeId)
    	{
    		parent::preSave($document, $parentNodeId);
    		
    		if ($document->getAvatar() instanceof media_persistentdocument_tmpfile)
    		{
    			$avatar = media_MediaService::getInstance()->importFromTempFile($document->getAvatar());
    			$document->setAvatar($avatar);
    		}
    	}
    	
    	/**
    	 * @param forumsextended_persistentdocument_forummember $document
    	 * @param Integer $parentNodeId Parent node ID where to save the document.
    	 * @return void
    	 */
    	protected function postUpdate($document, $parentNodeId)
    	{
    		parent::postUpdate($document, $parentNodeId);
    			
    		$oldId = $document->getAvatarOldValueId();
    		$avatar = $document->getAvatar();
    		if ($oldId && ($avatar === null || $oldId !== $avatar->getId()))
    		{
    			DocumentHelper::getDocumentInstance($oldId)->delete();
    		}
    	}

    Je crois que c'est tout... ça peut être testé ici : http://test.funomanciens.fr

    Édité par Jean-Michel 11/07/2012 11:21

 
Merci de prendre connaissance et de respecter les règles des forums.
 
1362 membres
Aucun membre connecté