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,
|
|
Fairy-zozo
Membre actif
|
Messages : 59
Sujets : 18
Inscription : Sep 2012
|
|
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}&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}&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.
|
|
Messages dans ce sujet |
Mettre du Flash en Avatar - Fairy-zozo - 01-11-2013, 1:47
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)