1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Mettre du Flash en Avatar
Mots-clés » flash, avatar
01-11-2013, 1:47,
#1
Mettre du Flash en Avatar

Bonjour/Bonsoir !


Je viens chercher de l'aide sur le forum mybb pour une nouvelle chose cette fois-ci, je m'explique.

Je cherche un moyen de remplacer l'affichage des avatars actuels (fichiers images), par un fichier flash (qui représente un personnage), s'il est en flash c'est pour la simple et bonne raison qu'il est sur un serveur web distant, et qu'il serait mis à jour automatiquement si mon personnage venait à changer de look.

Voici un exemple très concret car je souhaiterai mettre en place exactement la même chose sur mon forum :
http://forum.alliance-wtf.com/viewtopic.php?f=32&t=26

On voit ici que l'avatar utilisé est le fichier flash disponible ici :
http://staticns.ankama.com/dofus/www//game/DofusPersos.swf

J'ai demandé à l'auteur de ce forum comment avait-il mis en place ce système, je sais qu'il utilise un champs de profil personnalisé pour récupérer le pseudo du personnage qui sera recherché par son script pour afficher l'avatar de la bonne personne il m'a répondu ceci (et c'est là que je comprends pas comment je peux intégrer la même chose sur MyBB) :

Citation :Récupère l'apparence via les pages persos ou la DB.

Code :
<?php

const SERVER_ID = 23;

function get_perso_id($name){

    $url = 'http://www.dofus.com/fr/persos-guildes/resultat?na='.$name.'&s='.SERVER_ID.'&type=char';
    
    $ctx=stream_context_create(array('http'=>
        array(
            'timeout' => 2 // 5 secondes
        )
    ));

    $content = file_get_contents($url, false, $ctx);
    
    $pattern = '/ title="'.$name.' Hel Munster" href="\/fr\/perso\/hel-munster\/([a-zA-Z\-]+)-([0-9]*)/i';
    
    preg_match($pattern, $content, $matches);
    
    if(count($matches)<3)
        return FALSE;
    return $matches[2];
}


function get_perso($name){

    global $db;

    $name = strtolower(strip_tags($name));

    $sql = 'SELECT *
            FROM persos_cache
            WHERE name LIKE \'' . $name . '\'';
            
    $result = $db->sql_query_limit($sql, 1);
    $row = $db->sql_fetchrow($result);
    
    if($row == NULL){
    
        $id = get_perso_id($name);
        
        if(!$id)
            return FALSE;
        
        $url = 'http://www.dofus.com/fr/perso/hel-munster/'.$name.'-'.$id;
        
        $ctx=stream_context_create(array('http'=>
            array(
                'timeout' => 5 // 5 secondes
            )
        ));
        
        $content = file_get_contents($url, false, $ctx);
        
        $pattern = '/value="look=(.*)"/';
    
        preg_match($pattern, $content, $matches);
        
        if(count($matches) < 1)
            return FALSE;
        
        //$style = strstr($matches[0], '{');
        
        $style = substr($matches[0], 12, strlen($matches[0]) - 13);
        
        $sql = "INSERT INTO persos_cache".
                " VALUES($id, '$name', '$style', NULL)";

        $db->sql_query($sql);

    } else {
    
        $style = $row['style'];
        $db->sql_freeresult($result);
    }
    
    return $style;
}

?>
Modification de viewtopic.php

Ou j'utilise le script précédent + le champ personnalisé pour récupérer l'apparence associé au pseudo et je le rajoute dans les paramètres passés à la vue.


Code :
    // Load Dofus Avatar if set //////////////// OPTIMISER CHARGEMENT
    if (!empty($cp_row['blockrow']))
    {
        $name = NULL;
        $use = NULL;
        
        foreach ($cp_row['blockrow'] as $field_data){
            
            if(isset($field_data['S_PROFILE_CHAR_NAME']))
                $name = $field_data['PROFILE_FIELD_VALUE'];
            else if(isset($field_data['S_PROFILE_USE_CHAR']))
                $use = $field_data['PROFILE_FIELD_VALUE'] == 'Oui';
        }
        
        if($name && $use)
            $postrow['PERSO_STYLE'] = get_perso($name);
    }
Morceau de viewtopic_body.html pour afficher le swf avec les parametres passés.


Code :
                <!-- IF postrow.PERSO_STYLE -->
                    <div class="illu_perso">
                    <!--[if !IE]> -->
                    <object type="application/x-shockwave-flash" data="http://alliance-wtf.com/ankama/DofusPersos.swf" id="inventory_avatar_container" width="168" height="217">
                    <!-- <![endif]-->
                    <!--[if IE]>
                        <object class="fix" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="9.0.0 id="inventory_avatar_container" width="200" height="259">
                        <param name="movie" value="http://alliance-wtf.com/ankama/DofusPersos.swf" />
                        <param name="allowscriptaccess" value="always" />
                        <param name="flashvars" value="look={postrow.PERSO_STYLE}&amp;render=direct"/>
                        <param name="wmode" value="transparent" />
                        <param name="enablejs" value="true" />
                        <!--><!--dgx-->
                        <param name="allowscriptaccess" value="always">
                        <param name="flashvars" value="look={postrow.PERSO_STYLE}&amp;render=direct">
                        <param name="wmode" value="transparent">
                        <param name="enablejs" value="true">
                        <p><a target="_blank" href="http://www.adobe.com/go/getflashplayer">Get flash player</a></p>
                    </object>
                    <!-- <![endif]-->
                    </div>  
                <!-- ELSE -->
                    <!-- IF postrow.POSTER_AVATAR -->
                        <!-- IF postrow.U_POST_AUTHOR --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF --><br />
                    <!-- ENDIF -->
                <!-- ENDIF -->

Si quelqu'un peut m'éclairer sur le sujet, ce serait très sympathique de sa part, j'ai essayé tout ce que je pouvais, mais rien n'y fait.
Répondre
01-11-2013, 19:20,
#2
RE: Mettre du Flash en Avatar
C'est un travail trop conséquent pour être du simple support mybb !

Le site donné en exemple est un forum phpBB. Il faut dont "adapter" le code en conséquence, ce qui n'est pas une mince affaire.

De plus, les codes donnés modifient un fichier du noyau, ce qui n'est pas conseillé car lors d'une mise à jour... plus de modif... écrasée.

Le mieux est d'utiliser un plugin et personnellement je n'en connais pas. Et je n'en ai pas trouvé sur Internet.

[Image: spyto.png]
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
01-11-2013, 19:39,
#3
RE: Mettre du Flash en Avatar
Merci de votre réponse.

Je viens de trouver un moyen d'afficher ça comme je veux, mais ce n'est malheureusement pas automatique, il faut que je fasse un tutoriel pour dire aux membres de récupérer leur ID de look sur leur page perso et de l'entrer dans leur profil, un problème est que, du coup, si le personnage vient à changer d'apparence, il faudrait refaire la manipulation.

Répondre




Utilisateur(s) parcourant ce sujet :

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique