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


Messages dans ce sujet
Mettre du Flash en Avatar - Fairy-zozo - 01-11-2013, 1:47
RE: Mettre du Flash en Avatar - spyto - 01-11-2013, 19:20



Utilisateur(s) parcourant ce sujet : 2 visiteur(s)

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